Skip to content

Commit b13d257

Browse files
committed
Revert 374967 "[Concepts] ConceptSpecializationExprs mangling"
This reverts commit 5e34ad1. The mangling test fails on Windows: http://lab.llvm.org:8011/builders/clang-x64-ninja-win7/builds/15944 It also fails on ppc64le: http://lab.llvm.org:8011/builders/clang-ppc64le-linux-lnt/builds/21092 Also revert follow-up 374971 "Fix failing mangle-concept.cpp test." (it did not help on Win/ppc64le). llvm-svn: 374985
1 parent 02baaca commit b13d257

File tree

3 files changed

+4
-31
lines changed

3 files changed

+4
-31
lines changed

clang/lib/AST/ItaniumMangle.cpp

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -969,7 +969,7 @@ void CXXNameMangler::mangleUnscopedTemplateName(
969969
assert(!AdditionalAbiTags &&
970970
"template template param cannot have abi tags");
971971
mangleTemplateParameter(TTP->getDepth(), TTP->getIndex());
972-
} else if (isa<BuiltinTemplateDecl>(ND) || isa<ConceptDecl>(ND)) {
972+
} else if (isa<BuiltinTemplateDecl>(ND)) {
973973
mangleUnscopedName(ND, AdditionalAbiTags);
974974
} else {
975975
mangleUnscopedName(ND->getTemplatedDecl(), AdditionalAbiTags);
@@ -1890,7 +1890,7 @@ void CXXNameMangler::mangleTemplatePrefix(const TemplateDecl *ND,
18901890
mangleTemplateParameter(TTP->getDepth(), TTP->getIndex());
18911891
} else {
18921892
manglePrefix(getEffectiveDeclContext(ND), NoFunction);
1893-
if (isa<BuiltinTemplateDecl>(ND) || isa<ConceptDecl>(ND))
1893+
if (isa<BuiltinTemplateDecl>(ND))
18941894
mangleUnqualifiedName(ND, nullptr);
18951895
else
18961896
mangleUnqualifiedName(ND->getTemplatedDecl(), nullptr);
@@ -3658,6 +3658,7 @@ void CXXNameMangler::mangleExpression(const Expr *E, unsigned Arity) {
36583658
case Expr::ConvertVectorExprClass:
36593659
case Expr::StmtExprClass:
36603660
case Expr::TypeTraitExprClass:
3661+
case Expr::ConceptSpecializationExprClass:
36613662
case Expr::ArrayTypeTraitExprClass:
36623663
case Expr::ExpressionTraitExprClass:
36633664
case Expr::VAArgExprClass:
@@ -4167,18 +4168,6 @@ void CXXNameMangler::mangleExpression(const Expr *E, unsigned Arity) {
41674168
mangleExpression(cast<ParenExpr>(E)->getSubExpr(), Arity);
41684169
break;
41694170

4170-
4171-
case Expr::ConceptSpecializationExprClass: {
4172-
// <expr-primary> ::= L <mangled-name> E # external name
4173-
Out << "L_Z";
4174-
auto *CSE = cast<ConceptSpecializationExpr>(E);
4175-
mangleTemplateName(CSE->getNamedConcept(),
4176-
CSE->getTemplateArguments().data(),
4177-
CSE->getTemplateArguments().size());
4178-
Out << 'E';
4179-
break;
4180-
}
4181-
41824171
case Expr::DeclRefExprClass:
41834172
mangleDeclRefExpr(cast<DeclRefExpr>(E)->getDecl());
41844173
break;

clang/lib/Sema/SemaTemplate.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4302,7 +4302,7 @@ ExprResult Sema::BuildTemplateIdExpr(const CXXScopeSpec &SS,
43024302
TemplateKWLoc, TemplateArgs);
43034303
}
43044304

4305-
if (R.getAsSingle<ConceptDecl>()) {
4305+
if (R.getAsSingle<ConceptDecl>() && !AnyDependentArguments()) {
43064306
return CheckConceptTemplateId(SS, TemplateKWLoc,
43074307
R.getLookupNameInfo().getBeginLoc(),
43084308
R.getFoundDecl(),

clang/test/CodeGenCXX/mangle-concept.cpp

Lines changed: 0 additions & 16 deletions
This file was deleted.

0 commit comments

Comments
 (0)