diff options
Diffstat (limited to 'clang/lib/CodeGen/ItaniumCXXABI.cpp')
-rw-r--r-- | clang/lib/CodeGen/ItaniumCXXABI.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/clang/lib/CodeGen/ItaniumCXXABI.cpp b/clang/lib/CodeGen/ItaniumCXXABI.cpp index fd299d14c13..8d74faf1797 100644 --- a/clang/lib/CodeGen/ItaniumCXXABI.cpp +++ b/clang/lib/CodeGen/ItaniumCXXABI.cpp @@ -1711,8 +1711,10 @@ void ItaniumCXXABI::EmitGuardedInit(CodeGenFunction &CGF, // The ABI says: It is suggested that it be emitted in the same COMDAT group // as the associated data object - if (!D.isLocalVarDecl() && var->isWeakForLinker() && CGM.supportsCOMDAT()) { - llvm::Comdat *C = CGM.getModule().getOrInsertComdat(var->getName()); + if (var->isWeakForLinker() && CGM.supportsCOMDAT()) { + StringRef ComdatName = + D.isLocalVarDecl() ? CGF.CurFn->getName() : var->getName(); + llvm::Comdat *C = CGM.getModule().getOrInsertComdat(ComdatName); guard->setComdat(C); var->setComdat(C); CGF.CurFn->setComdat(C); |