summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2013-09-17 22:45:28 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2013-09-17 22:45:28 +0000
commit3775441379ecd84bb2cdea9796a86e63e55cd67d (patch)
treec01142f3596d39568a72f14d292484bfebbc122d /clang/lib/AST
parentf6c6505eaa7a9dfb37cd57f9c6d0349829557a99 (diff)
downloadbcm5719-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.cpp8
-rw-r--r--clang/lib/AST/MicrosoftMangle.cpp12
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;
}
OpenPOWER on IntegriCloud