llvm-project/clang/lib/AST
Tom Roeder 1844ab770c [ASTImporter] Add support for importing GenericSelectionExpr AST nodes.
This allows ASTs to be merged when they contain GenericSelectionExpr
nodes (this is _Generic from C11). This is needed, for example, for
CTU analysis of C code that makes use of _Generic, like the Linux
kernel.

The node is already supported in the AST, but it didn't have a matcher
in ASTMatchers. So, this change adds the matcher and adds support to
ASTImporter. Additionally, this change adds support for structural
equivalence of _Generic in the AST.

Reviewed By: martong, aaron.ballman

Differential Revision: https://reviews.llvm.org/D92600
2020-12-16 15:39:50 -08:00
..
Interp [clang][NFC] Use SmallString instead of SmallVector<char 2020-11-17 13:02:58 +00:00
APValue.cpp Don't memcpy from an empty ArrayRef; the base pointer could be null, and 2020-12-15 14:37:52 -08:00
ASTConcept.cpp [Concepts] Transform constraints of non-template functions to ConstantEvaluated 2020-01-25 23:00:24 +02:00
ASTConsumer.cpp
ASTContext.cpp [PowerPC] Enable paired vector type and intrinsics when MMA is disabled 2020-12-15 15:14:11 -06:00
ASTDiagnostic.cpp [c++20] For P0732R2 / P1907R1: Basic frontend support for class types as 2020-10-21 13:21:41 -07:00
ASTDumper.cpp Undo Revert "Ignore template instantiations if not in AsIs mode" 2020-11-03 13:59:01 -08:00
ASTImporter.cpp [ASTImporter] Add support for importing GenericSelectionExpr AST nodes. 2020-12-16 15:39:50 -08:00
ASTImporterLookupTable.cpp [ASTImporter] Add Visitor for TypedefNameDecl's 2020-07-28 11:52:29 -05:00
ASTStructuralEquivalence.cpp [ASTImporter] Add support for importing GenericSelectionExpr AST nodes. 2020-12-16 15:39:50 -08:00
ASTTypeTraits.cpp Revert "[openmp] Remove clause from OMPKinds.def and use OMP.td info" 2020-12-10 10:34:59 -05:00
AttrImpl.cpp [OPENMP]Fix PR47158, case 3: allow devic_typein nested declare target region. 2020-08-24 09:58:37 -04:00
CMakeLists.txt [Ignore Expressions] Fix performance regression by inlining `Ignore*SingleStep` 2020-09-09 07:32:40 +00:00
CXXABI.h
CXXInheritance.cpp Remove CXXBasePaths::found_decls and simplify and modernize its only 2020-12-01 16:35:03 -08:00
Comment.cpp Fix "pointer is null" static analyzer warning. NFCI. 2020-01-07 13:41:52 +00:00
CommentBriefParser.cpp
CommentCommandTraits.cpp Explicitly include <cassert> when using assert 2020-03-02 22:45:28 +01:00
CommentLexer.cpp [clang][NFC] Rearrange Comment Token and Lexer fields to reduce padding 2020-10-27 00:03:43 +00:00
CommentParser.cpp Adds a warning when an inline Doxygen comment has no argument 2019-08-05 08:05:16 +00:00
CommentSema.cpp [AST] Remove DeclCXX.h dep on ASTContext.h 2020-04-06 10:09:01 -07:00
ComparisonCategories.cpp Revert "Revert "Ensure that checkInitIsICE is called exactly once for every variable"" 2020-10-26 12:08:57 -07:00
ComputeDependence.cpp DR1413 and part of P1815R2: Minor improvements to Clang's determination 2020-12-15 14:53:26 -08:00
DataCollection.cpp Avoid SourceManager.h include in RawCommentList.h, add missing incs 2020-02-27 13:49:40 -08:00
Decl.cpp Convert ConstexprKind from Specifiers.h to a scoped enum; NFC 2020-11-16 14:10:19 -05:00
DeclBase.cpp [c++20] For P0732R2 / P1907R1: Basic frontend support for class types as 2020-10-21 13:21:41 -07:00
DeclCXX.cpp Convert ConstexprKind from Specifiers.h to a scoped enum; NFC 2020-11-16 14:10:19 -05:00
DeclFriend.cpp
DeclGroup.cpp
DeclObjC.cpp [AST] Fix crashes caused by redeclarations in hidden prototypes 2020-10-08 19:48:36 -07:00
DeclOpenMP.cpp [OPENMP]Redesign of OMPExecutableDirective/OMPDeclarativeDirective representation. 2020-08-06 12:25:19 -04:00
DeclPrinter.cpp [clang][NFC] DeclPrinter: use NamedDecl::getDeclName instead of NamedDecl::printName to print the name of enumerations, namespaces and template parameters. 2020-08-05 13:54:38 +01:00
DeclTemplate.cpp Factor out and centralize repeated 'getExpandedPackSize'. 2020-12-13 22:43:23 -08:00
DeclarationName.cpp [OpenMP] `omp begin/end declare variant` - part 2, sema ("+CG") 2020-03-27 02:30:58 -05:00
Expr.cpp DR2100: &expr is value-dependent if expr constant-evaluates to a 2020-12-15 14:53:26 -08:00
ExprCXX.cpp PR45699: Fix crash if an unexpanded parameter pack appears in a 2020-12-03 15:26:06 -08:00
ExprClassification.cpp [c++20] For P0732R2 / P1907R1: Basic frontend support for class types as 2020-10-21 13:21:41 -07:00
ExprConcepts.cpp [AST] Make Expr::setDependence protected and remove add/removeDependence. NFC 2020-03-19 21:54:40 +01:00
ExprConstant.cpp [PowerPC] Enable paired vector type and intrinsics when MMA is disabled 2020-12-15 15:14:11 -06:00
ExprObjC.cpp [AST] Move dependence computations into a separate file 2020-03-17 09:22:31 +01:00
ExternalASTMerger.cpp Modernize llvm::Error handling in ExternalASTMerger 2019-11-14 13:58:32 +01:00
ExternalASTSource.cpp Avoid including FileManager.h from SourceManager.h 2020-03-11 13:53:12 -07:00
FormatString.cpp [Sema] Emit a -Wformat warning for printf("%s", (void*)p) 2020-07-10 15:10:24 -04:00
FormatStringParsing.h Add a missing header comment, NFC 2019-08-13 22:01:39 +00:00
InheritViz.cpp Silence static analyzer getAs<RecordType> null dereference warnings. NFCI. 2019-10-03 11:22:48 +00:00
ItaniumCXXABI.cpp [c++20] Fix some ambiguities in our mangling of lambdas with explicit 2019-09-05 01:23:47 +00:00
ItaniumMangle.cpp [PowerPC] Enable paired vector type and intrinsics when MMA is disabled 2020-12-15 15:14:11 -06:00
JSONNodeDumper.cpp [clang][NFC] Use SmallString instead of SmallVector<char 2020-11-17 13:02:58 +00:00
Linkage.h [c++20] For P0732R2 / P1907R1: Basic code generation and name 2020-11-09 22:10:27 -08:00
Mangle.cpp Fix a variety of minor issues with ObjC method mangling: 2020-09-29 19:51:53 -04:00
MicrosoftCXXABI.cpp Separate the MS inheritance model enum from the attribute, NFC 2019-11-22 16:06:30 -08:00
MicrosoftMangle.cpp [PowerPC] Enable paired vector type and intrinsics when MMA is disabled 2020-12-15 15:14:11 -06:00
NSAPI.cpp [PowerPC] Enable paired vector type and intrinsics when MMA is disabled 2020-12-15 15:14:11 -06:00
NestedNameSpecifier.cpp [AST][RecoveryExpr] Avoid spurious 'missing typename' diagnostic when the NNS contains errors. 2020-06-30 16:18:32 +02:00
ODRHash.cpp [ODRHash] Remove use of 'whitelist'. 2020-06-19 18:39:30 -07:00
OSLog.cpp [clang][NFC] Add 'override' keyword to virtual function overrides 2020-07-14 08:59:57 -07:00
OpenMPClause.cpp Revert "[openmp] Remove clause from OMPKinds.def and use OMP.td info" 2020-12-10 10:34:59 -05:00
ParentMap.cpp [OPENMP]Fix PR42632: crash on the analysis of the OpenMP constructs. 2019-07-17 18:03:39 +00:00
ParentMapContext.cpp Remove the IgnoreImplicitCastsAndParentheses traversal kind 2020-11-23 14:27:48 +00:00
PrintfFormatString.cpp [PowerPC] Enable paired vector type and intrinsics when MMA is disabled 2020-12-15 15:14:11 -06:00
QualTypeNames.cpp Fix crash in getFullyQualifiedName for inline namespace 2019-12-28 16:35:51 +03:00
RawCommentList.cpp [clang] fix undefined behaviour in RawComment::getFormattedText() 2020-04-06 10:48:25 +02:00
RecordLayout.cpp [AIX] Implement AIX special alignment rule about double/long double 2020-07-27 15:13:03 -04:00
RecordLayoutBuilder.cpp [AST] Change return type of getTypeInfoInChars to a proper struct instead of std::pair. 2020-10-13 13:26:56 +02:00
ScanfFormatString.cpp Fix parameter name comments using clang-tidy. NFC. 2019-07-16 04:46:31 +00:00
SelectorLocationsKind.cpp
Stmt.cpp [X86] Add support for vex, vex2, vex3, and evex for MASM 2020-11-20 16:20:19 +08:00
StmtCXX.cpp
StmtIterator.cpp
StmtObjC.cpp
StmtOpenMP.cpp [OPENMP]Redesign of OMPExecutableDirective/OMPDeclarativeDirective representation. 2020-08-06 12:25:19 -04:00
StmtPrinter.cpp [c++20] For P0732R2 / P1907R1: Basic frontend support for class types as 2020-10-21 13:21:41 -07:00
StmtProfile.cpp Consider reference, pointer, and pointer-to-member TemplateArguments to be different if they have different types. 2020-12-15 12:00:57 -08:00
StmtViz.cpp
TemplateBase.cpp Consider reference, pointer, and pointer-to-member TemplateArguments to be different if they have different types. 2020-12-15 12:00:57 -08:00
TemplateName.cpp [NFC] Refactor DiagnosticBuilder and PartialDiagnostic 2020-10-19 17:48:04 -04:00
TextNodeDumper.cpp [FPEnv] Evaluate constant expressions under non-default rounding modes 2020-09-26 17:59:39 +07:00
Type.cpp [PowerPC] Enable paired vector type and intrinsics when MMA is disabled 2020-12-15 15:14:11 -06:00
TypeLoc.cpp [PowerPC] Enable paired vector type and intrinsics when MMA is disabled 2020-12-15 15:14:11 -06:00
TypePrinter.cpp Add new 'preferred_name' attribute. 2020-12-09 12:22:35 -08:00
VTTBuilder.cpp Silence static analyzer getAs<RecordType> null dereference warnings. NFCI. 2019-10-03 11:22:48 +00:00
VTableBuilder.cpp [c++20] consteval functions don't get vtable slots. 2020-06-30 18:22:09 -07:00