]> granicus.if.org Git - clang/commit
[analyzer] Re-enable using global regions as a symbolic base.
authorJordan Rose <jordan_rose@apple.com>
Mon, 15 Apr 2013 20:39:45 +0000 (20:39 +0000)
committerJordan Rose <jordan_rose@apple.com>
Mon, 15 Apr 2013 20:39:45 +0000 (20:39 +0000)
commit262e0d41e49c6b823d62743535e2accb117a6ea9
tree3e3dfd76a08231db843ee731845001510e8ea5e3
parente0208ff84598f48e0aafecf5b543afeff8574045
[analyzer] Re-enable using global regions as a symbolic base.

Now that we're invalidating global regions properly, we want to continue
taking advantage of a particular optimization: if all global regions are
invalidated together, we can represent the bindings of each region with
a "derived region value" symbol. Essentially, this lazily links each
global region with a single symbol created at invalidation time, rather
than binding each region with a new symbolic value.

We used to do this, but haven't been for a while; the previous commit
re-enabled this code path, and this handles the fallout.

<rdar://problem/13464044>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179554 91177308-0d34-0410-b5e6-96231b3b80d8
lib/StaticAnalyzer/Core/RegionStore.cpp
test/Analysis/Inputs/system-header-simulator.h
test/Analysis/global-region-invalidation.c
test/Analysis/global_region_invalidation.mm