diff options
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
-rw-r--r-- | clang/lib/CodeGen/CodeGenModule.cpp | 22 |
1 files changed, 0 insertions, 22 deletions
diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp index 5feb6b4d768..c726d90f2e3 100644 --- a/clang/lib/CodeGen/CodeGenModule.cpp +++ b/clang/lib/CodeGen/CodeGenModule.cpp @@ -2437,28 +2437,6 @@ CodeGenModule::GetOrCreateLLVMGlobal(StringRef MangledName, D->getType().isConstant(Context) && isExternallyVisible(D->getLinkageAndVisibility().getLinkage())) GV->setSection(".cp.rodata"); - - // Check if we a have a const declaration with an initializer, we may be - // able to emit it as available_externally to expose it's value to the - // optimizer. - if (Context.getLangOpts().CPlusPlus && GV->hasExternalLinkage() && - D->getType().isConstQualified() && !GV->hasInitializer() && - !D->hasDefinition() && D->hasInit() && !D->hasAttr<DLLImportAttr>()) { - const auto *Record = - Context.getBaseElementType(D->getType())->getAsCXXRecordDecl(); - bool HasMutableFields = Record && Record->hasMutableFields(); - if (!HasMutableFields) { - const VarDecl *InitDecl; - const Expr *InitExpr = D->getAnyInitializer(InitDecl); - if (InitExpr) { - GV->setConstant(true); - GV->setLinkage(llvm::GlobalValue::AvailableExternallyLinkage); - ConstantEmitter emitter(*this); - GV->setInitializer(emitter.tryEmitForInitializer(*InitDecl)); - emitter.finalize(GV); - } - } - } } auto ExpectedAS = |