Go to file
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
clang [ExprConstant] Fix crash when initialize an indirect field with another field. 2018-02-23 23:59:20 +00:00
clang-tools-extra [clangd] BindWithForward -> Bind. NFC 2018-02-23 07:54:17 +00:00
compiler-rt [libFuzzer] Include TEMP_MAX_LEN in Fuzzer::PrintStats. 2018-02-22 19:00:17 +00:00
debuginfo-tests [Darwin] Add a test to make sure clang emits __apple accelerator tables. 2018-02-23 18:04:55 +00:00
libclc utils: Adapt to llvm r325155 2018-02-23 07:37:03 +00:00
libcxx Allow passing additional compiler/linker flags for the tests 2018-02-23 15:19:48 +00:00
libcxxabi [demangler] Support for exception specifications on function types. 2018-02-14 01:08:20 +00:00
libunwind [cmake] [libunwind] LLVM_FOUND isn't always set, so just test if 2018-01-27 19:31:44 +00:00
lld [ELF] Fix IsPreemptible comment and typo. NFC 2018-02-23 21:57:49 +00:00
lldb Fix a compiler warning in ModuleCacheTest.cpp, NFC 2018-02-23 23:18:27 +00:00
llgo
llvm [AMDGPU] Fixed madak.ll test on VI, added GFX10. NFC. 2018-02-23 23:53:27 +00:00
openmp [OMPT] Fix parallel_data in implicit barrier-end 2018-02-23 16:46:25 +00:00
parallel-libs
polly Use isl::manage_copy to simplify calls to isl::manage(isl_.._copy()) 2018-02-20 07:26:58 +00:00
README.md Add an svn project to contain the files that appear at the root of the 2017-10-19 21:09:49 +00:00

README.md

Low Level Virtual Machine (LLVM)

This directory and its subdirectories contain source code for LLVM, a toolkit for the construction of highly optimized compilers, optimizers, and runtime environments.