Go to file
Jordan Rose 9eb409ace9 [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
2012-11-10 01:40:08 +00:00
clang [analyzer] When invalidating symbolic offset regions, take fields into account. 2012-11-10 01:40:08 +00:00
clang-tools-extra Following the example from loop-convert tests, simplifying the remove-cstr-calls lit script. 2012-11-05 18:28:45 +00:00
compiler-rt tsan: intercept gettimeofday() 2012-11-09 19:55:06 +00:00
debuginfo-tests XTARGET was removed, update debug-info tests. 2012-10-20 01:38:50 +00:00
libclc Implement any() builtin. Patch by Tom Stellard! 2012-10-08 03:39:21 +00:00
libcxx Dimitry Andric: Silence some miscellaneous warnings. 2012-11-06 21:55:44 +00:00
libcxxabi Make the type_info for __shim_type_info visible. This should address some failing dynamic_casts that a few applications are doing on the type_info hierarchy. 2012-10-13 18:45:59 +00:00
lld Add absolute symbol scope recognition in lld/Core 2012-11-05 19:13:54 +00:00
lldb Remove a debugging printf that was left in the code. 2012-11-09 22:24:38 +00:00
llvm Cleanup pcmp(e/i)str(m/i) instruction definitions and load folding support. 2012-11-10 01:23:36 +00:00
polly Tests: Pipe test files into 'opt' 2012-11-04 16:56:20 +00:00