summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema
diff options
context:
space:
mode:
authorJordan Rose <jordan_rose@apple.com>2012-11-10 01:40:08 +0000
committerJordan Rose <jordan_rose@apple.com>2012-11-10 01:40:08 +0000
commit9eb409ace9952626d4be15753616ec5acf7b3396 (patch)
tree2d4fccf21fefb8b3d066f7a1a5d46b1d48c534b1 /clang/lib/Sema
parent43df4cc568f4b66cc226d8a301cecf27f76a288c (diff)
downloadbcm5719-llvm-9eb409ace9952626d4be15753616ec5acf7b3396.tar.gz
bcm5719-llvm-9eb409ace9952626d4be15753616ec5acf7b3396.zip
[analyzer] When invalidating symbolic offset regions, take fields into account.
Previously, RegionStore was being VERY conservative in saying that because p[i].x and p[i].y have a concrete base region of 'p', they might overlap. Now, we check the chain of fields back up to the base object and check if they match. This only kicks in when dealing with symbolic offset regions because RegionStore's "base+offset" representation of concrete offset regions loses all information about fields. In cases where all offsets are concrete (s.x and s.y), RegionStore will already do the right thing, but mixing concrete and symbolic offsets can cause bindings to be invalidated that are known to not overlap (e.g. p[0].x and p[i].y). This additional refinement is tracked by <rdar://problem/12676180>. <rdar://problem/12530149> llvm-svn: 167654
Diffstat (limited to 'clang/lib/Sema')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud