Skip to content

Commit 95f0f69

Browse files
committed
Revert "[AST] Add a new TemplateKind for template decls found via a using decl."
It breaks arm build, there is no free bit for the extra UsingShadowDecl in TemplateName::StorageType. Reverting it to build the buildbot back until we comeup with a fix. This reverts commit 5a5be40.
1 parent fb16ed2 commit 95f0f69

22 files changed

+13
-239
lines changed

clang-tools-extra/clangd/DumpAST.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,6 @@ class DumpVisitor : public RecursiveASTVisitor<DumpVisitor> {
184184
TEMPLATE_KIND(DependentTemplate);
185185
TEMPLATE_KIND(SubstTemplateTemplateParm);
186186
TEMPLATE_KIND(SubstTemplateTemplateParmPack);
187-
TEMPLATE_KIND(UsingTemplate);
188187
#undef TEMPLATE_KIND
189188
}
190189
llvm_unreachable("Unhandled NameKind enum");

clang-tools-extra/clangd/SemanticHighlighting.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -762,7 +762,6 @@ class CollectExtraHighlightings
762762
case TemplateName::QualifiedTemplate:
763763
case TemplateName::SubstTemplateTemplateParm:
764764
case TemplateName::SubstTemplateTemplateParmPack:
765-
case TemplateName::UsingTemplate:
766765
// Names that could be resolved to a TemplateDecl are handled elsewhere.
767766
break;
768767
}

clang/include/clang/AST/PropertiesBase.td

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -620,16 +620,6 @@ let Class = PropertyTypeCase<TemplateName, "Template"> in {
620620
return TemplateName(declaration);
621621
}]>;
622622
}
623-
624-
let Class = PropertyTypeCase<TemplateName, "UsingTemplate"> in {
625-
def : Property<"foundDecl", UsingShadowDeclRef> {
626-
let Read = [{ node.getAsUsingShadowDecl() }];
627-
}
628-
def : Creator<[{
629-
return TemplateName(foundDecl);
630-
}]>;
631-
}
632-
633623
let Class = PropertyTypeCase<TemplateName, "OverloadedTemplate"> in {
634624
def : Property<"overloads", Array<NamedDeclRef>> {
635625
let Read = [{ node.getAsOverloadedTemplate()->decls() }];

clang/include/clang/AST/TemplateName.h

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ class SubstTemplateTemplateParmStorage;
3939
class TemplateArgument;
4040
class TemplateDecl;
4141
class TemplateTemplateParmDecl;
42-
class UsingShadowDecl;
4342

4443
/// Implementation class used to describe either a set of overloaded
4544
/// template names or an already-substituted template template parameter pack.
@@ -191,8 +190,7 @@ class SubstTemplateTemplateParmPackStorage
191190
class TemplateName {
192191
using StorageType =
193192
llvm::PointerUnion<TemplateDecl *, UncommonTemplateNameStorage *,
194-
QualifiedTemplateName *, DependentTemplateName *,
195-
UsingShadowDecl *>;
193+
QualifiedTemplateName *, DependentTemplateName *>;
196194

197195
StorageType Storage;
198196

@@ -226,11 +224,7 @@ class TemplateName {
226224
/// A template template parameter pack that has been substituted for
227225
/// a template template argument pack, but has not yet been expanded into
228226
/// individual arguments.
229-
SubstTemplateTemplateParmPack,
230-
231-
/// A template name that refers to a template declaration found through a
232-
/// specific using shadow declaration.
233-
UsingTemplate,
227+
SubstTemplateTemplateParmPack
234228
};
235229

236230
TemplateName() = default;
@@ -241,7 +235,6 @@ class TemplateName {
241235
explicit TemplateName(SubstTemplateTemplateParmPackStorage *Storage);
242236
explicit TemplateName(QualifiedTemplateName *Qual);
243237
explicit TemplateName(DependentTemplateName *Dep);
244-
explicit TemplateName(UsingShadowDecl *Using);
245238

246239
/// Determine whether this template name is NULL.
247240
bool isNull() const;
@@ -294,13 +287,6 @@ class TemplateName {
294287
/// structure, if any.
295288
DependentTemplateName *getAsDependentTemplateName() const;
296289

297-
/// Retrieve the using shadow declaration through which the underlying
298-
/// template declaration is introduced.
299-
///
300-
/// The underlying template declaration is not stored in the template name, it
301-
/// can be retrieved via the using shadow declaration.
302-
UsingShadowDecl *getAsUsingShadowDecl() const;
303-
304290
TemplateName getUnderlying() const;
305291

306292
/// Get the template name to substitute when this template name is used as a

clang/include/clang/AST/TextNodeDumper.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -317,8 +317,6 @@ class TextNodeDumper
317317
void VisitTagType(const TagType *T);
318318
void VisitTemplateTypeParmType(const TemplateTypeParmType *T);
319319
void VisitAutoType(const AutoType *T);
320-
void VisitDeducedTemplateSpecializationType(
321-
const DeducedTemplateSpecializationType *T);
322320
void VisitTemplateSpecializationType(const TemplateSpecializationType *T);
323321
void VisitInjectedClassNameType(const InjectedClassNameType *T);
324322
void VisitObjCInterfaceType(const ObjCInterfaceType *T);

clang/lib/AST/ASTContext.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6125,9 +6125,6 @@ ASTContext::getNameForTemplate(TemplateName Name,
61256125
return DeclarationNameInfo(subst->getParameterPack()->getDeclName(),
61266126
NameLoc);
61276127
}
6128-
case TemplateName::UsingTemplate:
6129-
return DeclarationNameInfo(Name.getAsUsingShadowDecl()->getDeclName(),
6130-
NameLoc);
61316128
}
61326129

61336130
llvm_unreachable("bad template name kind!");
@@ -6136,7 +6133,6 @@ ASTContext::getNameForTemplate(TemplateName Name,
61366133
TemplateName
61376134
ASTContext::getCanonicalTemplateName(const TemplateName &Name) const {
61386135
switch (Name.getKind()) {
6139-
case TemplateName::UsingTemplate:
61406136
case TemplateName::QualifiedTemplate:
61416137
case TemplateName::Template: {
61426138
TemplateDecl *Template = Name.getAsTemplateDecl();

clang/lib/AST/ASTImporter.cpp

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9193,12 +9193,6 @@ Expected<TemplateName> ASTImporter::Import(TemplateName From) {
91939193
return ToContext.getSubstTemplateTemplateParmPack(
91949194
cast<TemplateTemplateParmDecl>(*ParamOrErr), *ArgPackOrErr);
91959195
}
9196-
case TemplateName::UsingTemplate: {
9197-
auto UsingOrError = Import(From.getAsUsingShadowDecl());
9198-
if (!UsingOrError)
9199-
return UsingOrError.takeError();
9200-
return TemplateName(cast<UsingShadowDecl>(*UsingOrError));
9201-
}
92029196
}
92039197

92049198
llvm_unreachable("Invalid template name kind");

clang/lib/AST/ASTStructuralEquivalence.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -517,7 +517,6 @@ static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
517517
case TemplateName::Template:
518518
case TemplateName::QualifiedTemplate:
519519
case TemplateName::SubstTemplateTemplateParm:
520-
case TemplateName::UsingTemplate:
521520
// It is sufficient to check value of getAsTemplateDecl.
522521
break;
523522

clang/lib/AST/ItaniumMangle.cpp

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2207,7 +2207,6 @@ void CXXNameMangler::mangleType(TemplateName TN) {
22072207
TD = TN.getAsQualifiedTemplateName()->getTemplateDecl();
22082208
goto HaveDecl;
22092209

2210-
case TemplateName::UsingTemplate:
22112210
case TemplateName::Template:
22122211
TD = TN.getAsTemplateDecl();
22132212
goto HaveDecl;
@@ -2384,12 +2383,6 @@ bool CXXNameMangler::mangleUnresolvedTypeOrSimpleId(QualType Ty,
23842383
Out << "_SUBSTPACK_";
23852384
break;
23862385
}
2387-
case TemplateName::UsingTemplate: {
2388-
TemplateDecl *TD = TN.getAsTemplateDecl();
2389-
assert(TD && !isa<TemplateTemplateParmDecl>(TD));
2390-
mangleSourceNameWithAbiTags(TD);
2391-
break;
2392-
}
23932386
}
23942387

23952388
// Note: we don't pass in the template name here. We are mangling the

clang/lib/AST/ODRHash.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,6 @@ void ODRHash::AddTemplateName(TemplateName Name) {
150150
case TemplateName::DependentTemplate:
151151
case TemplateName::SubstTemplateTemplateParm:
152152
case TemplateName::SubstTemplateTemplateParmPack:
153-
case TemplateName::UsingTemplate:
154153
break;
155154
}
156155
}

0 commit comments

Comments
 (0)