From: Timur Iskhodzhanov Date: Mon, 26 Nov 2012 08:55:48 +0000 (+0000) Subject: Fix PR14413 - incorrect mangling of anonymous namespaces with -cxx-abi microsoft X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=79b7cc59658ca477cd943561d2d30cdfe9e09a5a;p=clang Fix PR14413 - incorrect mangling of anonymous namespaces with -cxx-abi microsoft git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168583 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/AST/MicrosoftMangle.cpp b/lib/AST/MicrosoftMangle.cpp index 7a12c4da95..d91f512538 100644 --- a/lib/AST/MicrosoftMangle.cpp +++ b/lib/AST/MicrosoftMangle.cpp @@ -453,7 +453,7 @@ MicrosoftCXXNameMangler::mangleUnqualifiedName(const NamedDecl *ND, if (const NamespaceDecl *NS = dyn_cast(ND)) { if (NS->isAnonymousNamespace()) { - Out << "?A"; + Out << "?A@"; break; } } diff --git a/test/CodeGenCXX/mangle-ms.cpp b/test/CodeGenCXX/mangle-ms.cpp index 0edb4b4339..6441d67a75 100644 --- a/test/CodeGenCXX/mangle-ms.cpp +++ b/test/CodeGenCXX/mangle-ms.cpp @@ -3,6 +3,7 @@ // CHECK: @"\01?a@@3HA" // CHECK: @"\01?b@N@@3HA" +// CHECK: @"\01?anonymous@?A@N@@3HA" // CHECK: @c // CHECK: @"\01?d@foo@@0FB" // CHECK: @"\01?e@foo@@1JC" @@ -24,10 +25,16 @@ int a; -namespace N { int b; } +namespace N { + int b; + + namespace { + int anonymous; + } +} static int c; -int _c(void) {return c;} +int _c(void) {return N::anonymous + c;} // CHECK: @"\01?_c@@YAHXZ" class foo {