Fix PR14413 - incorrect mangling of anonymous namespaces with -cxx-abi microsoft

llvm-svn: 168583
This commit is contained in:
Timur Iskhodzhanov 2012-11-26 08:55:48 +00:00
parent dd2ca571ae
commit 09848e709c
2 changed files with 10 additions and 3 deletions

View File

@ -453,7 +453,7 @@ MicrosoftCXXNameMangler::mangleUnqualifiedName(const NamedDecl *ND,
if (const NamespaceDecl *NS = dyn_cast<NamespaceDecl>(ND)) {
if (NS->isAnonymousNamespace()) {
Out << "?A";
Out << "?A@";
break;
}
}

View File

@ -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 {