llvm-project/clang/lib/AST
Reid Kleckner cbec0269ba Fix some DenseMap use-after-rehash bugs and hoist MethodVFTableLocation
This re-lands r328845 with fixes for crbug.com/827810.

The initial motiviation was to hoist MethodVFTableLocation to global
scope so it could be forward declared.

In this patch, I noticed that MicrosoftVTableContext uses some risky
patterns. It has methods that return references to data stored in
DenseMaps. I've made some of them return by value for trivial structs
and I've moved some things into separate allocations.

llvm-svn: 329007
2018-04-02 20:00:39 +00:00
..
APValue.cpp Re-commit r289252 and r289285, and fix PR31374 2016-12-15 08:09:08 +00:00
ASTConsumer.cpp Move LocInfoType from Sema to AST. 2016-02-01 17:42:01 +00:00
ASTContext.cpp [ObjC++] Make parameter passing and function return compatible with ObjC 2018-03-28 21:13:14 +00:00
ASTDiagnostic.cpp Added LLVM_FALLTHROUGH to address warning: this statement may fall through. NFC. 2017-06-03 06:31:42 +00:00
ASTDumper.cpp Implement C++ DR727, which permits explicit specializations at class scope. 2018-03-16 13:36:56 +00:00
ASTImporter.cpp [ObjC] Allow declaring __weak pointer fields in C structs in ARC. 2018-03-19 17:38:40 +00:00
ASTStructuralEquivalence.cpp [ASTImporter] Support LambdaExprs and improve template support 2018-01-26 11:36:54 +00:00
ASTTypeTraits.cpp Teach clang-query to dump types. I couldn't find any existing tests for clang-query's dumping functionality. =( 2016-11-02 23:57:18 +00:00
AttrImpl.cpp [NFC] Header cleanup 2016-07-18 19:02:11 +00:00
CMakeLists.txt Moved QualTypeNames.h from Tooling to AST. 2017-11-08 10:39:03 +00:00
CXXABI.h Fix __has_unique_object_representations implementation 2017-11-30 16:37:02 +00:00
CXXInheritance.cpp Remove redundant casts. NFC 2018-03-01 05:43:23 +00:00
Comment.cpp [AST] Look through attribute type locs when searching for function type 2017-04-26 12:46:27 +00:00
CommentBriefParser.cpp [NFC] Header cleanup 2016-07-18 19:02:11 +00:00
CommentCommandTraits.cpp
CommentLexer.cpp Fix 'unknown documentation command' warning ranges 2016-10-25 10:06:11 +00:00
CommentParser.cpp [cleanup] Remove excessive padding from TextTokenRetokenizer::Position 2016-09-20 18:32:48 +00:00
CommentSema.cpp -Wdocumentation should allow '...' params in variadic function type aliases 2017-10-06 20:51:04 +00:00
DataCollection.cpp [analyzer] Make StmtDataCollector customizable 2017-08-23 16:28:26 +00:00
Decl.cpp Add helper to determine if a field is a zero-length bitfield. 2018-04-02 18:29:43 +00:00
DeclBase.cpp PR36181: Teach CodeGen to properly ignore requests to emit dependent entities. 2018-02-01 00:28:36 +00:00
DeclCXX.cpp Add helper to determine if a field is a zero-length bitfield. 2018-04-02 18:29:43 +00:00
DeclFriend.cpp [AST] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-11-10 00:59:22 +00:00
DeclGroup.cpp [AST] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-11-10 00:59:22 +00:00
DeclObjC.cpp [AST] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-11-22 21:32:07 +00:00
DeclOpenMP.cpp [OPENMP] Fix for PR31416: Clang crashes on OMPCapturedExpr during source 2016-12-20 16:51:02 +00:00
DeclPrinter.cpp Remove redundant casts. NFC 2018-03-01 05:43:23 +00:00
DeclTemplate.cpp [AST] Fix some Clang-tidy modernize-use-auto warnings; other minor fixes (NFC). 2018-03-29 20:51:59 +00:00
DeclarationName.cpp [AST] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-11-21 23:26:08 +00:00
Expr.cpp [coroutines] Fix unused warning on result of co_yield. 2018-03-27 03:33:06 +00:00
ExprCXX.cpp Fix a couple of places where we assumed that non-type template parameters are always rvalues. 2018-02-14 02:07:53 +00:00
ExprClassification.cpp [Sema] Disallow assigning record lvalues with nested const-qualified fields. 2017-09-19 13:10:30 +00:00
ExprConstant.cpp Reland "[Attr] Fix parameter indexing for several attributes" 2018-03-13 14:51:22 +00:00
ExprObjC.cpp [AST] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-11-30 22:33:48 +00:00
ExternalASTMerger.cpp [ASTImporter] avoid warnings: unused var, switch covered 2018-01-26 12:06:44 +00:00
ExternalASTSource.cpp [AST] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-11-08 00:39:18 +00:00
InheritViz.cpp
ItaniumCXXABI.cpp Fix __has_unique_object_representations implementation 2017-11-30 16:37:02 +00:00
ItaniumMangle.cpp Set calling convention for CUDA kernel 2018-03-29 15:02:08 +00:00
Linkage.h Give external linkage and mangling to lambdas inside inline variables and variable templates. 2017-09-22 04:25:05 +00:00
Mangle.cpp [modules ts] Ensure that module linkage variables are always emitted and always have their name mangled. 2017-09-07 00:55:55 +00:00
MicrosoftCXXABI.cpp Remove redundant casts. NFC 2018-03-01 05:43:23 +00:00
MicrosoftMangle.cpp Fix some DenseMap use-after-rehash bugs and hoist MethodVFTableLocation 2018-04-02 20:00:39 +00:00
NSAPI.cpp Recommit "Add _Float16 as a C/C++ source language type" 2017-09-08 15:15:00 +00:00
NestedNameSpecifier.cpp Clean up use of C allocation functions 2018-02-21 02:02:39 +00:00
ODRHash.cpp Temporarily revert r328404: 2018-04-02 18:33:47 +00:00
OpenMPClause.cpp [AST] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-11-29 23:27:36 +00:00
ParentMap.cpp [analyzer] Correctly model iteration through "nil" objects 2018-03-08 02:53:39 +00:00
QualTypeNames.cpp Moved QualTypeNames.h from Tooling to AST. 2017-11-08 10:39:03 +00:00
RawCommentList.cpp [NFC] Move CommentOpts checks to the call sites that depend on it. (Re-applying r326501.) 2018-03-02 00:07:45 +00:00
RecordLayout.cpp [AST] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-11-10 00:59:22 +00:00
RecordLayoutBuilder.cpp [RecordLayout] Only assert that fundamental type sizes are power of two on MSVC 2018-03-01 20:22:57 +00:00
SelectorLocationsKind.cpp
Stmt.cpp [AST] Inline CompoundStmt contents into the parent allocation. 2017-12-24 16:24:20 +00:00
StmtCXX.cpp [coroutines] Add serialization/deserialization of coroutines 2017-07-25 18:01:49 +00:00
StmtIterator.cpp [AST] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-11-21 23:26:08 +00:00
StmtObjC.cpp Retire llvm::alignOf in favor of C++11 alignof. 2016-10-20 14:27:22 +00:00
StmtOpenMP.cpp [OPENMP] Add support for cancel constructs in `target teams distribute 2017-11-22 21:12:03 +00:00
StmtPrinter.cpp [OpenMP] Fix trailing space when printing pragmas, by Joel. E. Denny 2018-02-14 17:38:47 +00:00
StmtProfile.cpp [ODRHash] Handle some template weirdness. 2018-02-22 05:32:25 +00:00
StmtViz.cpp
TemplateBase.cpp Remove redundant casts. NFC 2018-03-01 05:43:23 +00:00
TemplateName.cpp Fix a couple of cases where we would fail to correctly parse deduced class template specialization types. 2018-02-28 03:02:23 +00:00
Type.cpp [AST] Fix some Clang-tidy modernize-use-auto warnings; other minor fixes (NFC). 2018-03-29 20:51:59 +00:00
TypeLoc.cpp Again reverting an attempt to convert the DeclSpec enums into scoped enums. 2018-01-01 18:23:28 +00:00
TypePrinter.cpp Set calling convention for CUDA kernel 2018-03-29 15:02:08 +00:00
VTTBuilder.cpp [AST] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-12-01 22:04:49 +00:00
VTableBuilder.cpp Fix some DenseMap use-after-rehash bugs and hoist MethodVFTableLocation 2018-04-02 20:00:39 +00:00