asan: fix atomic operations on ARM
implement correct atomic load/store for ARM
add test for atomic load/store
http://llvm-reviews.chandlerc.com/D2582




git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@199802 91177308-0d34-0410-b5e6-96231b3b80d8
[asan] Enable replacement new/delete on Android.

New/delete implementations in system libraries almost always are built without
frame pointers. As we switched to frame pointer based unwinder on ARM, they no
longer work for us, resulting in broken allocation/deallocation stacks.

Note that this does not work with statically linked
libstdc++/libc++/libstlport.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@199872 91177308-0d34-0410-b5e6-96231b3b80d8
[msan] Fix GCC warnings.

warning: ISO C99 requires rest arguments to be used [enabled by default]
 INTERCEPTOR(char *, dlerror) {

warning: invoking macro INTERCEPTOR argument 3: empty macro arguments are undefined in ISO C90 and ISO C++98 [enabled by default]



git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@199873 91177308-0d34-0410-b5e6-96231b3b80d8
[sanitizer] Add printf format attributes.

These were lost in a refactoring a long time ago.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@199874 91177308-0d34-0410-b5e6-96231b3b80d8