Go to file
Artem Dergachev 2ed0e79bb8 [analyzer] Make sure base-region and its sub-regions are either all alive or all dead.
SymbolReaper now realizes that our liveness analysis isn't sharp enough
to discriminate between liveness of, say, variables and their fields.
Surprisingly, this didn't quite work before: having a variable live only
through Environment (eg., calling a C++ method on a local variable
as the last action ever performed on that variable) would not keep the
region value symbol of a field of that variable alive.

It would have been broken in the opposite direction as well, but both
Environment and RegionStore use the scanReachableSymbols mechanism for finding
live symbols regions within their values, and due to that they accidentally
end up marking the whole chain of super-regions as live when at least one
sub-region is known to be live.

It is now a direct responsibility of SymbolReaper to maintain this invariant,
and a unit test was added in order to make sure it stays that way.

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

rdar://problem/46914108

llvm-svn: 351499
2019-01-18 00:08:56 +00:00
clang [analyzer] Make sure base-region and its sub-regions are either all alive or all dead. 2019-01-18 00:08:56 +00:00
clang-tools-extra [clang-tidy] Add abseil-duration-conversion-cast check 2019-01-17 20:37:35 +00:00
compiler-rt xray: Add missing header to list of installed headers. 2019-01-17 21:11:49 +00:00
debuginfo-tests Set config.lit_tools_dir, which is needed by lit.llvm.initialize. 2018-11-06 21:54:27 +00:00
libclc Update year in license files 2019-01-15 15:10:32 +00:00
libcxx [hurd] Fix unconditional use of PATH_MAX 2019-01-17 02:59:28 +00:00
libcxxabi [demangler] Support for block literals. 2019-01-17 21:37:51 +00:00
libunwind Bump the trunk version to 9.0.0svn 2019-01-16 10:57:02 +00:00
lld [WebAssembly] Fix windows compiler warning by using explicit 64bit shift. NFC. 2019-01-17 22:09:09 +00:00
lldb [CMake] Only test debugserver if platform can use debugserver 2019-01-18 00:05:25 +00:00
llgo Update year in license files 2019-01-15 15:10:32 +00:00
llvm AMDGPU: Convert tests away from llvm.SI.load.const 2019-01-17 22:47:26 +00:00
openmp Revert r351311 "[OMPT] Make sure that OMPT is enabled when accessing internals of the runtime" 2019-01-17 11:31:03 +00:00
parallel-libs Update year in license files 2019-01-15 15:10:32 +00:00
polly Bump the trunk version to 9.0.0svn 2019-01-16 10:57:02 +00:00
pstl Update year in license files 2019-01-15 15:10:32 +00:00
.arcconfig Add an .arcconfig for the top of the git monorepo. 2019-01-11 16:27:14 +00:00
README.md

README.md

The LLVM Compiler Infrastructure

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