llvm-project/clang/lib/AST
Sam McCall 6a5e08cc4a [AST] injected-class-name is not a redecl, even in template specializations
Back in the mists of time, the CXXRecordDecl for the injected-class-name was
a redecl of the outer class itself.
This got changed in 470c454a61, but only for plain
classes: class template instantation was still detecting the injected-class-name
in the template body and marking its instantiation as a redecl.

This causes some subtle inconsistent behavior between the two, e.g.
hasDefinition() returns true for Foo<int>::Foo but false for Bar::Bar.
This is the root cause of PR51912.

Differential Revision: https://reviews.llvm.org/D112765
2021-11-02 14:37:45 +01:00
..
Interp Implement if consteval (P1938) 2021-10-05 08:04:14 -04:00
APValue.cpp [NFC] Move readAPValue/writeAPValue up the inheritance hierarchy 2021-01-06 16:44:50 -08:00
ASTConcept.cpp [llvm][clang][NFC] updates inline licence info 2021-08-11 02:48:53 +00:00
ASTConsumer.cpp
ASTContext.cpp [clang] Use llvm::{count,count_if,find_if,all_of,none_of} (NFC) 2021-10-25 09:14:45 -07:00
ASTDiagnostic.cpp Fix missing qualifier in template type diffing 2021-08-16 18:34:18 -07:00
ASTDumper.cpp [AST] injected-class-name is not a redecl, even in template specializations 2021-11-02 14:37:45 +01:00
ASTImporter.cpp [ASTImporter] Remove ASTNodeImporter::IsStructuralMatch overload for EnumConstantDecl 2021-10-30 13:12:12 +02:00
ASTImporterLookupTable.cpp Use {DenseSet,SetVector,SmallPtrSet}::contains (NFC) 2021-10-30 19:00:19 -07:00
ASTStructuralEquivalence.cpp [ASTImporter] Remove ASTNodeImporter::IsStructuralMatch overload for EnumConstantDecl 2021-10-30 13:12:12 +02:00
ASTTypeTraits.cpp Update `DynTypedNode` to support the conversion of `TypeLoc`s. 2021-10-04 19:25:24 +00:00
AttrDocTable.cpp [gn build] manually port 18f9e25ce1 (AttrDocTable) 2021-08-12 21:30:59 -04:00
AttrImpl.cpp [OPENMP51]Initial parsing/sema for append_args clause for 'declare variant' 2021-10-25 09:38:50 -07:00
CMakeLists.txt [gn build] manually port 18f9e25ce1 (AttrDocTable) 2021-08-12 21:30:59 -04:00
CXXABI.h Recommit of a2fdf9d4d7. 2021-02-05 11:27:30 -05:00
CXXInheritance.cpp [clang] Use llvm::erase_if (NFC) 2021-10-17 13:50:29 -07:00
Comment.cpp
CommentBriefParser.cpp [clang] Fix a few more comment typos to cycle bots 2021-09-20 20:06:03 -04:00
CommentCommandTraits.cpp
CommentLexer.cpp [clang][NFC] Rearrange Comment Token and Lexer fields to reduce padding 2020-10-27 00:03:43 +00:00
CommentParser.cpp
CommentSema.cpp [clang] Use llvm::erase_if (NFC) 2021-10-17 13:50:29 -07:00
ComparisonCategories.cpp [clang] Fix a few more comment typos to cycle bots 2021-09-20 20:06:03 -04:00
ComputeDependence.cpp [clang] Make CXXDefaultArgExpr inherit dependence from the inner Expr 2021-06-10 14:51:08 +02:00
DataCollection.cpp
Decl.cpp [clang] Fix range for forward-declared enums 2021-10-25 13:16:14 +02:00
DeclBase.cpp [clang] Support -clear-ast-before-backend without -disable-free 2021-10-14 13:43:53 -07:00
DeclCXX.cpp [clang] Use llvm::erase_if (NFC) 2021-10-17 13:50:29 -07:00
DeclFriend.cpp
DeclGroup.cpp
DeclObjC.cpp [modules] Fix tracking ObjCInterfaceType decl when there are multiple definitions. 2021-10-21 12:08:06 -07:00
DeclOpenMP.cpp [OPENMP]Redesign of OMPExecutableDirective/OMPDeclarativeDirective representation. 2020-08-06 12:25:19 -04:00
DeclPrinter.cpp DebugInfo: workaround for context-sensitive use of non-type-template-parameter integer suffixes 2021-11-01 17:08:26 -07:00
DeclTemplate.cpp DebugInfo: workaround for context-sensitive use of non-type-template-parameter integer suffixes 2021-11-01 17:08:26 -07:00
DeclarationName.cpp [clang][AST] Encapsulate DeclarationNameLoc, NFCI 2021-01-27 11:21:01 +00:00
Expr.cpp DebugInfo: workaround for context-sensitive use of non-type-template-parameter integer suffixes 2021-11-01 17:08:26 -07:00
ExprCXX.cpp [Clang] Introduce Swift async calling convention. 2021-07-09 11:50:10 -07:00
ExprClassification.cpp [clang] NFC: change uses of `Expr->getValueKind` into `is?Value` 2021-07-28 03:09:31 +02:00
ExprConcepts.cpp [clang] NFC: Rename rvalue to prvalue 2021-06-09 12:27:10 +02:00
ExprConstant.cpp [AST] fail rather than crash when const evaluating invalid c++ foreach 2021-10-27 22:45:32 +02:00
ExprObjC.cpp [clang] NFC: refactor multiple implementations of getDecltypeForParenthesizedExpr 2021-07-28 23:27:43 +02:00
ExternalASTMerger.cpp [clang] Use llvm::erase_if (NFC) 2021-10-17 13:50:29 -07:00
ExternalASTSource.cpp
FormatString.cpp [Sema] Emit a -Wformat warning for printf("%s", (void*)p) 2020-07-10 15:10:24 -04:00
FormatStringParsing.h
InheritViz.cpp
ItaniumCXXABI.cpp Change __builtin_sycl_unique_stable_name to just use an Itanium mangling 2021-09-28 06:41:03 -07:00
ItaniumMangle.cpp Fix unintended fall-through. 2021-10-08 14:25:17 -07:00
JSONNodeDumper.cpp Implement if consteval (P1938) 2021-10-05 08:04:14 -04:00
Linkage.h [c++20] For P0732R2 / P1907R1: Basic code generation and name 2020-11-09 22:10:27 -08:00
Mangle.cpp [clang/Basic] Make TargetInfo.h not use DataLayout again 2021-04-27 22:26:10 -04:00
MicrosoftCXXABI.cpp Change __builtin_sycl_unique_stable_name to just use an Itanium mangling 2021-09-28 06:41:03 -07:00
MicrosoftMangle.cpp [clang] Fix a few more comment typos to cycle bots 2021-09-20 20:06:03 -04:00
NSAPI.cpp [Clang] Add __ibm128 type to represent ppc_fp128 2021-09-06 18:00:58 +08:00
NestedNameSpecifier.cpp Fully qualify template template parameters when printing 2021-09-02 15:04:34 -07:00
ODRHash.cpp Revert "Following up on PR48517, fix handling of template arguments that refer" 2021-01-20 15:55:35 +01:00
OSLog.cpp [clang][NFC] Add 'override' keyword to virtual function overrides 2020-07-14 08:59:57 -07:00
OpenMPClause.cpp [APInt] Stop using soft-deprecated constructors and methods in clang. NFC. 2021-10-04 09:38:11 +01:00
ParentMap.cpp
ParentMapContext.cpp [AST, CodeGen, Driver] Use llvm::is_contained (NFC) 2021-10-12 09:19:49 -07:00
PrintfFormatString.cpp [Clang] Add __ibm128 type to represent ppc_fp128 2021-09-06 18:00:58 +08:00
QualTypeNames.cpp Fully-qualify template args of outer types in getFullyQualifiedType 2021-06-03 10:50:00 -07:00
RawCommentList.cpp
RecordLayout.cpp [AIX] Implement AIX special alignment rule about double/long double 2020-07-27 15:13:03 -04:00
RecordLayoutBuilder.cpp Use {DenseSet,SetVector,SmallPtrSet}::contains (NFC) 2021-10-30 19:00:19 -07:00
ScanfFormatString.cpp
SelectorLocationsKind.cpp
Stmt.cpp Implement if consteval (P1938) 2021-10-05 08:04:14 -04:00
StmtCXX.cpp
StmtIterator.cpp
StmtObjC.cpp [clang] Convert ObjCAtTryStmt to llvm::TrailingObjects 2021-10-27 08:57:05 -04:00
StmtOpenMP.cpp [OpenMP] Initial parsing/sema for the 'omp loop' construct 2021-10-28 08:26:43 -07:00
StmtPrinter.cpp [OpenMP] Initial parsing/sema for the 'omp loop' construct 2021-10-28 08:26:43 -07:00
StmtProfile.cpp [OpenMP] Initial parsing/sema for the 'omp loop' construct 2021-10-28 08:26:43 -07:00
StmtViz.cpp
TemplateBase.cpp Fully qualify template template parameters when printing 2021-09-02 15:04:34 -07:00
TemplateName.cpp Fully qualify template template parameters when printing 2021-09-02 15:04:34 -07:00
TextNodeDumper.cpp Implement if consteval (P1938) 2021-10-05 08:04:14 -04:00
Type.cpp [modules] Fix tracking ObjCInterfaceType decl when there are multiple definitions. 2021-10-21 12:08:06 -07:00
TypeLoc.cpp Properly determine the end location of an ObjCObjectPointerType. 2021-10-29 13:15:53 -07:00
TypePrinter.cpp DebugInfo: workaround for context-sensitive use of non-type-template-parameter integer suffixes 2021-11-01 17:08:26 -07:00
VTTBuilder.cpp
VTableBuilder.cpp Use {DenseSet,SetVector,SmallPtrSet}::contains (NFC) 2021-10-30 19:00:19 -07:00