diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp index bbad876575d1..a14733aba02e 100644 --- a/clang/lib/CodeGen/CodeGenModule.cpp +++ b/clang/lib/CodeGen/CodeGenModule.cpp @@ -973,7 +973,7 @@ void CodeGenModule::EmitGlobalVarDefinition(const VarDecl *D) { GV->setLinkage(llvm::GlobalVariable::WeakAnyLinkage); } else if (Linkage == GVA_TemplateInstantiation) GV->setLinkage(llvm::GlobalVariable::WeakAnyLinkage); - else if (!CodeGenOpts.NoCommon && + else if (!getLangOptions().CPlusPlus && !CodeGenOpts.NoCommon && !D->hasExternalStorage() && !D->getInit() && !D->getAttr()) { GV->setLinkage(llvm::GlobalVariable::CommonLinkage); diff --git a/clang/lib/Driver/CC1Options.cpp b/clang/lib/Driver/CC1Options.cpp index f2a8492f0a8b..9a2b5e622181 100644 --- a/clang/lib/Driver/CC1Options.cpp +++ b/clang/lib/Driver/CC1Options.cpp @@ -190,11 +190,6 @@ static void ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args, Opts.MainFileName = getLastArgValue(Args, OPT_main_file_name); - // FIXME: Implement! - // FIXME: Eliminate this dependency? -// if (Lang.CPlusPlus) -// Opts.NoCommon = 1; - // FIXME: Put elsewhere? #ifdef NDEBUG Opts.VerifyModule = 0; diff --git a/clang/tools/clang-cc/Options.cpp b/clang/tools/clang-cc/Options.cpp index ed491d8e977c..f1a90b7349c3 100644 --- a/clang/tools/clang-cc/Options.cpp +++ b/clang/tools/clang-cc/Options.cpp @@ -826,10 +826,6 @@ void clang::InitializeCodeGenOptions(CodeGenOptions &Opts, Opts.UnwindTables = MUnwindTables; Opts.RelocationModel = MRelocationModel; - // FIXME: Eliminate this dependency? - if (Lang.CPlusPlus) - Opts.NoCommon = 1; - #ifdef NDEBUG Opts.VerifyModule = 0; #endif