llvm-project/clang/lib/AST
Volodymyr Sapsai e8f1ffb50a [ExprConstant] Fix crash when initialize an indirect field with another field.
When indirect field is initialized with another field, you have
MemberExpr with CXXThisExpr that corresponds to the field's immediate
anonymous parent. But 'this' was referring to the non-anonymous parent.
So when we were building LValue Designator, it was incorrect as it had
wrong starting point. Usage of such designator would cause unexpected
APValue changes and crashes.

The fix is in adjusting 'this' for indirect fields from non-anonymous
parent to the field's immediate parent.

Discovered by OSS-Fuzz:
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4985

rdar://problem/36359187

Reviewers: rsmith, efriedma

Reviewed By: rsmith

Subscribers: cfe-commits, jkorous-apple

Differential Revision: https://reviews.llvm.org/D42498

llvm-svn: 325997
2018-02-23 23:59:20 +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 Revert r325375 "[MS] Make constexpr static data members implicitly inline" 2018-02-20 12:43:02 +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 Ensure code complete with !LoadExternal sees all local decls. 2018-01-16 12:33:46 +00:00
ASTImporter.cpp Quick fix for 325116 buildbots: move template specialization into namespace 2018-02-14 11:39:33 +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 Refactor overridden methods iteration to avoid double lookups. 2017-12-17 23:52:45 +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 [ODRHash] Fix hashing for friend functions. 2018-02-22 05:50:29 +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 support for attribute 'trivial_abi'. 2018-02-05 20:23:22 +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 [DeclPrinter] Fix two cases that crash clang -ast-print. 2018-01-17 19:29:39 +00:00
DeclTemplate.cpp D40901: Refactor lazy loading of template specializations. NFC 2017-12-14 23:30:18 +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 Teach Wreturn-type, Wunreachable-code, and alpha.deadcode.UnreachableCode to treat __assume(0) like __builtin_unreachable. 2018-02-13 21:31:47 +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 [ExprConstant] Fix crash when initialize an indirect field with another field. 2018-02-23 23:59:20 +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 Silence a bunch of implicit fallthrough warnings 2017-12-19 22:06:11 +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 Fix __has_unique_object_representations implementation 2017-11-30 16:37:02 +00:00
MicrosoftMangle.cpp AST: support ObjC lifetime qualifiers in MS ABI 2018-02-09 03:23:54 +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 [ODRHash] Fix hashing for friend functions. 2018-02-22 05:50:29 +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 [arcmt/objcmt] Fix ParentMap crash with invalid code. 2016-07-14 20:21:16 +00:00
QualTypeNames.cpp Moved QualTypeNames.h from Tooling to AST. 2017-11-08 10:39:03 +00:00
RawCommentList.cpp AST: Improve a couple of comments and cast unused values to void 2016-10-16 20:12:42 +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 [PR32482] Fix bitfield layout for -mms-bitfield and pragma pack 2018-01-31 21:59:02 +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 [AST] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-11-21 23:26:08 +00:00
TemplateName.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
Type.cpp [Sema] Don't mark plain MS enums as fixed 2018-02-12 17:37:06 +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 Re-commit r321223, which adds a printing policy to the ASTDumper. 2017-12-21 21:42:42 +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 Refactor overridden methods iteration to avoid double lookups. 2017-12-17 23:52:45 +00:00