Go to file
Jordan Rose 44320367ac [analyzer] Invalidate placement args; return the pointer given to placement new
The default global placement new just returns the pointer it is given.
Note that other custom 'new' implementations with placement args are not
guaranteed to do this.

In addition, we need to invalidate placement args, since they may be updated by
the allocator function. (Also, right now we don't properly handle the
constructor inside a CXXNewExpr, so we need to invalidate the placement args
just so that callers know something changed!)

This invalidation is not perfect because CallOrObjCMessage doesn't support
CXXNewExpr, and all of our invalidation callbacks expect that if there's no
CallOrObjCMessage, the invalidation is happening manually (e.g. by a direct
assignment) and shouldn't affect checker-specific metadata (like malloc state);
hence the malloc test case in new-fail.cpp. But region values are now
properly invalidated, at least.

The long-term solution to this problem is to rework CallOrObjCMessage into
something more general, rather than the morass of branches it is today.

<rdar://problem/11679031>

llvm-svn: 158784
2012-06-20 01:32:01 +00:00
clang [analyzer] Invalidate placement args; return the pointer given to placement new 2012-06-20 01:32:01 +00:00
compiler-rt [Sanitizer] Renaming: SNPrintf -> internal_snprintf (and move it to sanitizer libc) 2012-06-19 09:21:57 +00:00
debuginfo-tests Fix this for buggy gdb behavior alongside the change 2012-06-05 18:16:03 +00:00
libclc configure.py: Add an install rule. 2012-06-01 17:29:59 +00:00
libcxx Revert pair constructors back to using is_convertible instead of is_constructible. This should pull things into alignment with the final draft. Fixes http://llvm.org/bugs/show_bug.cgi?id=13063#add_comment. 2012-06-09 20:01:23 +00:00
libcxxabi Don't dereference root in __parse_ctor_dtor_name unless it is known to not be null. 2012-06-15 21:57:51 +00:00
lld Fix Sphinx warning. Patch by Sean Silva 2012-06-18 20:24:47 +00:00
lldb Chnage VerifyWatchpointIDs() from a static function to a class function to be called from other source files. 2012-06-19 22:12:58 +00:00
llvm Add permissions(), map_file_pages(), and unmap_file_pages() to llvm::sys::fs and add unit test. Unix is implemented. Windows side needs to be implemented. 2012-06-20 00:28:54 +00:00
polly Add some tests for the independent blocks pass. 2012-06-11 10:25:12 +00:00