Go to file
Jordan Rose 29fc261cd7 [analyzer] Create a temporary region when accessing a struct rvalue.
In C++, rvalues that need to have their address taken (for example, to be
passed to a function by const reference) will be wrapped in a
MaterializeTemporaryExpr, which lets CodeGen know to create a temporary
region to store this value. However, MaterializeTemporaryExprs are /not/
created when a method is called on an rvalue struct, even though the 'this'
pointer needs a valid value. CodeGen works around this by creating a
temporary region anyway; now, so does the analyzer.

The analyzer also does this when accessing a field of a struct rvalue.
This is a little unfortunate, since the rest of the struct will soon be
thrown away, but it does make things consistent with the rest of the
analyzer.

This allows us to bring back the assumption that all known 'this' values
are Locs. This is a revised version of r164828-9, reverted in r164876-7.

<rdar://problem/12137950>

llvm-svn: 166120
2012-10-17 19:35:37 +00:00
clang [analyzer] Create a temporary region when accessing a struct rvalue. 2012-10-17 19:35:37 +00:00
clang-tools-extra Remove a trailing blank line, test commit. 2012-10-10 14:06:15 +00:00
compiler-rt build/clang_darwin: Don't try to build ARM contents on 10.6. 2012-10-17 18:33:43 +00:00
debuginfo-tests Fix this for gdb 7.4. 2012-07-23 19:41:58 +00:00
libclc Implement any() builtin. Patch by Tom Stellard! 2012-10-08 03:39:21 +00:00
libcxx Add an entry in CREDITS.TXT 2012-10-15 17:34:53 +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 relocation reference support for Hexagon and PowerPC. 2012-10-09 02:20:47 +00:00
lldb <rdar://problem/12503640> Fixing an issue where the dynamic type of an Objective-C pointer changed but we still reported the one-true-definition for the previous type. This was causing issues where a variable could be reported as being of an entirely different type after an assignment 2012-10-17 19:03:34 +00:00
llvm Merge MRI::isPhysRegOrOverlapUsed() into isPhysRegUsed(). 2012-10-17 18:44:18 +00:00
polly isl scheduler: Do not fail when returning an empty band list 2012-10-16 07:29:19 +00:00