diff options
author | David Majnemer <david.majnemer@gmail.com> | 2013-09-17 22:45:28 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2013-09-17 22:45:28 +0000 |
commit | 3775441379ecd84bb2cdea9796a86e63e55cd67d (patch) | |
tree | c01142f3596d39568a72f14d292484bfebbc122d /clang/lib/AST | |
parent | f6c6505eaa7a9dfb37cd57f9c6d0349829557a99 (diff) | |
download | bcm5719-llvm-3775441379ecd84bb2cdea9796a86e63e55cd67d.tar.gz bcm5719-llvm-3775441379ecd84bb2cdea9796a86e63e55cd67d.zip |
Revert "[-cxx-abi microsoft] Mangle local TagDecls appropriately"
This reverts commit r190892.
llvm-svn: 190895
Diffstat (limited to 'clang/lib/AST')
-rw-r--r-- | clang/lib/AST/Decl.cpp | 8 | ||||
-rw-r--r-- | clang/lib/AST/MicrosoftMangle.cpp | 12 |
2 files changed, 7 insertions, 13 deletions
diff --git a/clang/lib/AST/Decl.cpp b/clang/lib/AST/Decl.cpp index dbbf4753dcc..0fa1b980f31 100644 --- a/clang/lib/AST/Decl.cpp +++ b/clang/lib/AST/Decl.cpp @@ -3084,7 +3084,7 @@ TagDecl* TagDecl::getCanonicalDecl() { } void TagDecl::setTypedefNameForAnonDecl(TypedefNameDecl *TDD) { - NamedDeclOrQualifier = TDD; + TypedefNameDeclOrQualifier = TDD; if (TypeForDecl) assert(TypeForDecl->isLinkageValid()); assert(isLinkageValid()); @@ -3141,7 +3141,7 @@ void TagDecl::setQualifierInfo(NestedNameSpecifierLoc QualifierLoc) { if (QualifierLoc) { // Make sure the extended qualifier info is allocated. if (!hasExtInfo()) - NamedDeclOrQualifier = new (getASTContext()) ExtInfo; + TypedefNameDeclOrQualifier = new (getASTContext()) ExtInfo; // Set qualifier info. getExtInfo()->QualifierLoc = QualifierLoc; } else { @@ -3149,7 +3149,7 @@ void TagDecl::setQualifierInfo(NestedNameSpecifierLoc QualifierLoc) { if (hasExtInfo()) { if (getExtInfo()->NumTemplParamLists == 0) { getASTContext().Deallocate(getExtInfo()); - NamedDeclOrQualifier = (TypedefNameDecl*) 0; + TypedefNameDeclOrQualifier = (TypedefNameDecl*) 0; } else getExtInfo()->QualifierLoc = QualifierLoc; @@ -3164,7 +3164,7 @@ void TagDecl::setTemplateParameterListsInfo(ASTContext &Context, // Make sure the extended decl info is allocated. if (!hasExtInfo()) // Allocate external info struct. - NamedDeclOrQualifier = new (getASTContext()) ExtInfo; + TypedefNameDeclOrQualifier = new (getASTContext()) ExtInfo; // Set the template parameter lists info. getExtInfo()->setTemplateParameterListsInfo(Context, NumTPLists, TPLists); } diff --git a/clang/lib/AST/MicrosoftMangle.cpp b/clang/lib/AST/MicrosoftMangle.cpp index 119bc86be29..8506c4c8dde 100644 --- a/clang/lib/AST/MicrosoftMangle.cpp +++ b/clang/lib/AST/MicrosoftMangle.cpp @@ -563,15 +563,9 @@ MicrosoftCXXNameMangler::mangleUnqualifiedName(const NamedDecl *ND, break; } - if (TD->hasDeclaratorForAnonDecl()) - // Anonymous types with no tag or typedef get the name of their - // declarator mangled in. - Out << "<unnamed-type-" << TD->getDeclaratorForAnonDecl()->getName() - << ">@"; - else - // Anonymous types with no tag, no typedef, or declarator get - // '<unnamed-tag>@'. - Out << "<unnamed-tag>@"; + // When VC encounters an anonymous type with no tag and no typedef, + // it literally emits '<unnamed-tag>@'. + Out << "<unnamed-tag>@"; break; } |