Commit Graph

1738 Commits

Author SHA1 Message Date
Dmitry Vyukov 72064188bc tsan: add some more functions for java filtering
llvm-svn: 169501
2012-12-06 13:20:37 +00:00
Kostya Serebryany 9f84eecc9e [asan/msan] add GetBlockBegin to the 32-bit allocator (+test)
llvm-svn: 169499
2012-12-06 13:13:58 +00:00
Kostya Serebryany 2731cb23b1 [asan/msan] one more test for 32-bit allocator
llvm-svn: 169497
2012-12-06 13:00:11 +00:00
Kostya Serebryany 2044135dca [asan/msan] new 32-bit allocator, basic functionality so far
llvm-svn: 169496
2012-12-06 12:49:28 +00:00
Dmitry Vyukov fd1ba2af7d tsan: add 'free' to java nonsense reports
llvm-svn: 169494
2012-12-06 12:42:53 +00:00
Dmitry Vyukov fd5ebcd1b0 tsan: add mutexsets to reports
With this change reports say what mutexes the threads hold around the racy memory accesses.

llvm-svn: 169493
2012-12-06 12:16:15 +00:00
Bill Wendling f9528843d2 Remove unused variable.
llvm-svn: 169485
2012-12-06 07:43:17 +00:00
Kostya Serebryany 1e3d387459 [tsan] add MmapAlignedOrDie
llvm-svn: 169474
2012-12-06 06:10:31 +00:00
Kostya Serebryany 86975ce3fb [asan] drop the extension from asan tests (as the extension may be different)
llvm-svn: 169392
2012-12-05 17:56:54 +00:00
Kostya Serebryany 1a6f4d4ba6 [asan] undo the debug printf
llvm-svn: 169381
2012-12-05 13:39:29 +00:00
Dmitry Vyukov d413d8cfa9 tsan: fix memory barriers in atomics
llvm-svn: 169379
2012-12-05 13:14:55 +00:00
Dmitry Vyukov c446aa039a tsan: provide own implementation of __cxa_guard_xxx functions
that way we allow static linking of libstdc++

llvm-svn: 169376
2012-12-05 12:10:22 +00:00
Dmitry Vyukov 6411bd9877 tsan: remove unnecesary include file
llvm-svn: 169370
2012-12-05 10:16:17 +00:00
Dmitry Vyukov dd95cd148b tsan: fix lint warnings
llvm-svn: 169369
2012-12-05 10:16:02 +00:00
Kostya Serebryany 571232b8cf [tsan] get rid of *allocator64* files, moving everything to *allocator* files. This will help with the 32-bit allocator implementation and testing
llvm-svn: 169368
2012-12-05 10:09:15 +00:00
Kostya Serebryany 0afbb325b6 [tsan] make the 64-bit allocator build (but not work) in 32-bit mode to simplify the code and test structure and allow further refactoring
llvm-svn: 169361
2012-12-05 07:11:47 +00:00
Alexander Potapenko 0a4e0f6d35 Fix a use-after-unmap bug in /proc/self/maps caching. The cached buffer was occasionally deleted in the MemoryMappingLayout destructor.
llvm-svn: 169335
2012-12-04 23:30:00 +00:00
Dmitry Vyukov 1b46993598 tsan: output thread names
llvm-svn: 169279
2012-12-04 15:46:05 +00:00
Kostya Serebryany 242b6305f0 [tsan] add a compile-time error for 64-bit-only support
llvm-svn: 169275
2012-12-04 15:13:30 +00:00
Dmitry Vyukov 4b82b2bb6e tsan: make atomic operations atomic again
llvm-svn: 169273
2012-12-04 14:50:10 +00:00
Kostya Serebryany 7436d95c9c [tsan] test the allocator with CompactSizeClassMap
llvm-svn: 169270
2012-12-04 14:39:51 +00:00
Kostya Serebryany f299288f55 [tsan] minor interface refactoring
llvm-svn: 169267
2012-12-04 14:15:17 +00:00
Dmitry Vyukov 4ef6b2bd03 tsan: fix nand operation
llvm-svn: 169266
2012-12-04 14:08:39 +00:00
Dmitry Vyukov 01ea653166 tsan: add __attribute__((visibility("default"))) to interface functions
llvm-svn: 169265
2012-12-04 14:01:21 +00:00
Kostya Serebryany 5e6f833bdd [tsan] refactor the allocator tests to allow testing other flavours of the allocator (add templates)
llvm-svn: 169264
2012-12-04 13:59:22 +00:00
Dmitry Vyukov 55b47cad33 tsan: fix trace handling when trace is reused between threads
llvm-svn: 169259
2012-12-04 12:19:53 +00:00
Kostya Serebryany 077f88045e [tsan] refactoring and comment changes in sanitizer_common/sanitizer_allocator{,64}.h. No functionality change
llvm-svn: 169234
2012-12-04 07:54:41 +00:00
Dmitry Vyukov 0d677279f6 tsan: better error message if we fail to intercept some function
currently the message is SIGSEGV

llvm-svn: 169231
2012-12-04 07:28:25 +00:00
Dmitry Vyukov d229abe49a tsan: check if PWD env var is absent
On some programs I see:
failed to open suppressions file '<null>/testing/tsan/v2/tsan.supp'

llvm-svn: 169230
2012-12-04 07:27:32 +00:00
Alexander Potapenko 0dcd6d9468 [ASan] Do not build the interceptors that use ObjC blocks if the compiler does not support blocks.
Need to define MISSING_BLOCKS_SUPPORT in this case at buildtime.

Patch by Jack Howarth <howarth@bromo.med.uc.edu>
 

llvm-svn: 169206
2012-12-04 02:41:47 +00:00
Alexey Samsonov 45b6edbd1d ASan: add new interface functions - __asan_(un)poison_stack_memory. Calls to these functions are inserted by the instrumentation pass in use-after-scope mode
llvm-svn: 169201
2012-12-04 01:38:15 +00:00
Alexander Potapenko e2b6d08459 Use a struct to hold the /proc/self/maps buffer on Linux.
llvm-svn: 169155
2012-12-03 21:21:22 +00:00
Kostya Serebryany 214b715061 [asan] two more bits for __sparc__
llvm-svn: 169141
2012-12-03 18:39:21 +00:00
Kostya Serebryany 485f7b4a70 [tsan] add CompactSizeClassMap as an alternative (more compact) size class map. Not used yet.
llvm-svn: 169128
2012-12-03 15:00:33 +00:00
Kostya Serebryany dab61684ef [tsan] remove unused InternalAllocBlock as part of larger refactoring
llvm-svn: 169123
2012-12-03 11:57:01 +00:00
Dmitry Vyukov e982a1d368 tsan: describe global vars (module+offset for now)
llvm-svn: 169122
2012-12-03 11:45:34 +00:00
Kostya Serebryany a960b2c6da [asan] EXPECT_EQ => ASSERT_EQ around pthread_create/pthread_join calls
llvm-svn: 169121
2012-12-03 11:37:03 +00:00
Kostya Serebryany d5aafcf618 [asan] in asan tests, check all return values of pthread_create/pthread_join. Also add the ASAN_AVOID_EXPENSIVE_TESTS macro to guard the test that creates too many threads
llvm-svn: 169118
2012-12-03 09:43:56 +00:00
Will Dietz 2c36c71f5b [ubsan] Refactor handlers to have separate entry points for aborting.
If user specifies aborting after a recoverable failed check is
appropriate, frontend should emit call to the _abort variant.

Test this behavior with newly added -fsanitize-recover flag.

llvm-svn: 169113
2012-12-02 19:47:29 +00:00
Will Dietz b28179be10 [ubsan] Replace "fatal error" with "runtime error".
llvm-svn: 169112
2012-12-02 18:43:33 +00:00
Alexander Potapenko 7811425843 Add caching to the MemoryMappingLayout class on Linux. This is necessary for the cases when a sandbox prevents ASan from reading the mappings
from /proc/self/maps.
The mappings are currently being cached on each access to /proc/self/maps. In the future we'll need to add an API that allows the client to notify ASan about the sandbox.

llvm-svn: 169076
2012-12-01 02:39:45 +00:00
Dmitry Vyukov e993dac233 tsan: fix int overflow and several instances where tid is used with ignore
llvm-svn: 169029
2012-11-30 20:02:11 +00:00
Dmitry Vyukov d05418eac6 tsan: suppress weird race reports when JVM is embed into the process
llvm-svn: 169019
2012-11-30 17:45:53 +00:00
Dmitry Vyukov 1450ac6406 tsan: add __libc_memalign interceptor (used by dynamic loader to allocate tls for dlopen'ed modules)
llvm-svn: 169017
2012-11-30 17:27:58 +00:00
Dmitry Vyukov ad9c530f7c tsan: add sanity checks into memory allocator
llvm-svn: 169015
2012-11-30 17:26:50 +00:00
Kostya Serebryany 436462046a [asan] make asan_test.cc more gcc-friendly
llvm-svn: 168992
2012-11-30 10:41:42 +00:00
Kostya Serebryany 6a786e66cf [asan] simplify break_optimization in tests (Jakub Jelinek)
llvm-svn: 168990
2012-11-30 09:52:44 +00:00
Dmitry Vyukov 71d759d392 tsan: intercept mlock() because of the kernel bug
llvm-svn: 168987
2012-11-30 06:50:15 +00:00
Dmitry Vyukov 0a4d875c48 tsan: fix bug that leads to spurious use-after-free reports
llvm-svn: 168985
2012-11-30 06:39:01 +00:00
Richard Smith 57000c38fc ubsan: Disable __int128 tests if the host Clang does not support it. These
tests will still fail if compiler-rt was built with a compiler without __int128
support, but the host compiler has __int128 support.

llvm-svn: 168955
2012-11-29 23:03:58 +00:00
Alexey Samsonov b90501d7da [ASan] use brand new -fsanitize= values for init-order/use-after-return ASan output tests
llvm-svn: 168951
2012-11-29 22:56:01 +00:00
Kostya Serebryany dde9dcc24b [asan] disable BuiltinLongJmpTest on Android
llvm-svn: 168872
2012-11-29 12:18:48 +00:00
Kostya Serebryany e73a480970 [asan] enable BuiltinLongJmpTest
llvm-svn: 168863
2012-11-29 09:02:14 +00:00
Richard Smith 99507e6c10 ubsan: Don't assume that Clang provides __int128 unless it advertises that it does.
llvm-svn: 168857
2012-11-29 05:59:30 +00:00
Kostya Serebryany df5f3028e2 [asan] add DISABLED_BuiltinLongJmpTest
llvm-svn: 168793
2012-11-28 15:01:23 +00:00
Dmitry Vyukov 4a48553869 tsan: explicitly say that failed to restore the stack
llvm-svn: 168790
2012-11-28 13:30:06 +00:00
Dmitry Vyukov eb3d36e649 tsan: address several review comments
llvm-svn: 168789
2012-11-28 13:01:32 +00:00
Dmitry Vyukov 3374e3f874 tsan: add log_path parameter (similar to asan)
remove old log_fileno

llvm-svn: 168788
2012-11-28 12:56:52 +00:00
Dmitry Vyukov e1a7f338a3 tsan: dynamic history size
introduces history_size parameter that can be used to control trace size at startup

llvm-svn: 168786
2012-11-28 12:19:50 +00:00
Dmitry Vyukov 00e4604d6b tsan: change fast state layout in preparation to dynamic traces
llvm-svn: 168784
2012-11-28 10:49:27 +00:00
Dmitry Vyukov 2429b02770 tsan: move traces from tls into dedicated storage at fixed address
helps to reduce tls size (it's weird to have multi-MB tls)
will help with dynamically adjustable trace size

llvm-svn: 168783
2012-11-28 10:35:31 +00:00
Dmitry Vyukov 05d7ade34d tsan: add description of memory layouts in different configs
llvm-svn: 168777
2012-11-28 07:44:26 +00:00
Will Dietz 2631aaf939 ubsan: Support unsigned overflows, and divide-by-zero int/float split.
llvm-svn: 168700
2012-11-27 15:01:43 +00:00
Dmitry Vyukov ec8da99846 tsan: fix macro mess
llvm-svn: 168697
2012-11-27 12:51:16 +00:00
Dmitry Vyukov 69a071d5a6 tsan: fix compilation for dead old compilers (why we are supporting them at all?..)
llvm-svn: 168693
2012-11-27 09:35:44 +00:00
Dmitry Vyukov 210c21129e tsan: add memory range access functions to public iface
llvm-svn: 168692
2012-11-27 08:41:39 +00:00
Dmitry Vyukov 59d58665ee tsan: add 128-bit atomic operations
llvm-svn: 168683
2012-11-27 07:41:27 +00:00
Dmitry Vyukov 10362c46f1 tsan: refactor atomic operations implementation
do the atomic operation under the sync object mutex
make acquire/release sync atomic with the operation itself
combine acquire and release into a single acq_rel operation

llvm-svn: 168682
2012-11-27 07:25:50 +00:00
Nick Kledzik 9fb21e57e5 Automatically create .dSYM for libcompiler_rt.dylib when using Apple's internal build system
llvm-svn: 168625
2012-11-26 22:48:51 +00:00
Dmitry Vyukov 20678e2b68 tsan: explicitly mark symbols referenced from assembly as hidden
this allows to build tsan runtime as dynamic library

llvm-svn: 168589
2012-11-26 14:20:26 +00:00
Kostya Serebryany 19e34c23c5 [asan] fix Android build by not calling GetPageSizeCached in a test (no need for the page size anyway)
llvm-svn: 168585
2012-11-26 11:23:30 +00:00
Dmitry Vyukov 3b4501254f tsan: add atomic nand operation
llvm-svn: 168584
2012-11-26 09:42:56 +00:00
Dmitry Vyukov ce7a1ba196 tsan: faster memory reset for Go
llvm-svn: 168567
2012-11-25 16:05:42 +00:00
Kostya Serebryany df198db1aa [asan/tsan] get rid of kPageSize completely in favor of GetPageSizeCached(). This makes the code friendly to more platforms
llvm-svn: 168537
2012-11-24 05:03:11 +00:00
Dmitry Vyukov 195eda9922 tsan: add failure memory order to atomic compare exchange functions
llvm-svn: 168518
2012-11-23 15:51:45 +00:00
Kostya Serebryany f22c697f58 [asan] get rid of some of the uses of kPageSize. The intent is to get rid of it completely to support platforms with multiple possible page sizes.
llvm-svn: 168517
2012-11-23 15:38:49 +00:00
Alexey Samsonov 1a05424ee0 [ASan] move swapcontext_test to Linux-specific tests
llvm-svn: 168513
2012-11-23 11:20:54 +00:00
Alexey Samsonov aac36b345a [ASan] intercept swapcontext on Linux only
llvm-svn: 168509
2012-11-23 10:14:44 +00:00
Alexey Samsonov 0d7755ccb5 [ASan] Add interceptor for swapcontext to fight with false positives in some of its use cases.
llvm-svn: 168508
2012-11-23 09:46:34 +00:00
Dmitry Vyukov db584aded7 tsan: ensure than func entry/exit are inlined
llvm-svn: 168506
2012-11-23 07:14:11 +00:00
Dmitry Vyukov 6971414f3e tsan: fix more bugs in signal handling
llvm-svn: 168497
2012-11-22 13:53:54 +00:00
Dmitry Vyukov 3048e1a399 tsan: add missing \n in report
llvm-svn: 168496
2012-11-22 13:38:28 +00:00
Dmitry Vyukov 35437032be tsan: better error message for OOM
llvm-svn: 168491
2012-11-22 08:42:01 +00:00
Kostya Serebryany 8bc5421ba0 [asan] get rid of kPageSizeBits
llvm-svn: 168426
2012-11-21 13:31:07 +00:00
Evgeniy Stepanov 979a1e7352 Allow PopStackFrames leave the stack empty.
llvm-svn: 168425
2012-11-21 13:00:04 +00:00
Kostya Serebryany 734f1eb5f4 [asan/tsan] do not use __WORDSIZE macro, as it is glibc-private thing. Instead, define our own SANITIZER_WORDSIZE
llvm-svn: 168424
2012-11-21 12:38:58 +00:00
Dmitry Vyukov aeed45cde0 tsan: explictly say when we fail to restore a stack trace
llvm-svn: 168423
2012-11-21 11:44:20 +00:00
Alexey Samsonov 3a3488e4e1 [Sanitizer] replace while with internal_memset to make sure compiler won't replace it with library memset
llvm-svn: 168422
2012-11-21 11:12:57 +00:00
Dmitry Vyukov 9ca2afd3a1 tsan: fix handling of signals
(do not execute synchronous signals in recursive interceptors)

llvm-svn: 168421
2012-11-21 11:12:33 +00:00
Kostya Serebryany 6db8ad43df [asan] pop the two internal functions from the stack trace produced by _Unwind_Backtrace (Peter Bergner)
llvm-svn: 168369
2012-11-20 15:15:44 +00:00
Kostya Serebryany 87e0464bfb [asan] better support for powerpc and sparc targets (thanks to H.J. Liu and David Miller)
llvm-svn: 168358
2012-11-20 08:57:26 +00:00
Kostya Serebryany 46de580003 [asan] more support for powerpc, patch by Peter Bergner
llvm-svn: 168356
2012-11-20 07:00:42 +00:00
Alexey Samsonov 27a22688b9 [ASan] use raw Exit() to kill the program in case ASan finds an error while reporting the error in the same thread
llvm-svn: 168308
2012-11-19 11:22:22 +00:00
Kostya Serebryany 386e2d853b [asan] support x32 mode in the fast stack unwinder. Patch by H.J. Lu
llvm-svn: 168306
2012-11-19 10:31:00 +00:00
Alexey Samsonov 06b22c1513 [ASan] change interface of GetAccumulatedStats() function to prevent Clang from inserting memcpy() call into runtime.
llvm-svn: 168305
2012-11-19 10:25:17 +00:00
Kostya Serebryany cb9f62189b [asan] support PowerPC and SPARC in sanitizer_linux.cc
llvm-svn: 168301
2012-11-19 07:53:36 +00:00
Alexey Samsonov 56f1ef7d3b ubsan: fix broken test case by using brand new [[@LINE]] FileCheck feature
llvm-svn: 168170
2012-11-16 13:38:03 +00:00
Alexey Samsonov be9a293dda UBSan: enable CMake build on Darwin. Fix two failing tests and disable the test which produces linker errors on Darwin.
llvm-svn: 168169
2012-11-16 12:57:07 +00:00
Alexey Samsonov 77d35747be UBSan: fix support on Darwin in 'make' build system. Patch by Jean-Daniel Dupas.
llvm-svn: 168167
2012-11-16 12:51:23 +00:00
Dmitry Vyukov 4ee90c231a asan: sync with gcc r193553
llvm-svn: 168151
2012-11-16 11:26:05 +00:00
Alexey Samsonov 4ac66c49da [TSan] use explicit ctor for BlockingCall
llvm-svn: 168150
2012-11-16 11:21:07 +00:00
Alexey Samsonov 038e3489d9 [TSan] use llvm-symbolizer to run tsan tests
llvm-svn: 168146
2012-11-16 10:16:14 +00:00
Dmitry Vyukov 933c9889aa tsan: remove unused parameter
llvm-svn: 168060
2012-11-15 18:49:08 +00:00
Dmitry Vyukov f34db58c20 tsan: switch to 4 shadow cells by default (since that's what we use everywhere now)
llvm-svn: 168059
2012-11-15 18:44:22 +00:00
Dmitry Vyukov 262465c126 tsan: eevn better handling of signals
add interceptor for poll()
in addition process signals in every atomic op
in addition process signals in blocking libc functions

llvm-svn: 168050
2012-11-15 17:40:49 +00:00
Alexander Potapenko bcc00a4174 [ASan] Revert r168040 and r168043 and take a cleaner solution suggested by Kostya: return the known frame name for fake stack instead of looking it up.
llvm-svn: 168046
2012-11-15 15:24:42 +00:00
Alexander Potapenko 93dcc8d2bd [ASan] Minor fix: return to the last byte of the fake stack if we've raced by.
llvm-svn: 168043
2012-11-15 14:59:19 +00:00
Alexander Potapenko b34db9e883 [ASan] Poison the leftmost shadow byte with a special value so that we can find
the beginning of the fake frame when reporting an use-after-return error.
Fixes http://code.google.com/p/address-sanitizer/issues/detail?id=126

llvm-svn: 168040
2012-11-15 13:40:44 +00:00
Alexey Samsonov 11aec95f4a [UBSan] Add support for building ubsan runtime library on Linux with 'make'. Compiler-rt part.
llvm-svn: 168038
2012-11-15 12:37:55 +00:00
Alexander Potapenko 4d533d243d [ASan] Add the "lea $imm(%rip),%rax" instruction to mach_override.c
The need for this has been reported by Jack Howarth (howarth@bromo.med.uc.edu) who's porting ASan-Darwin to GCC

llvm-svn: 168032
2012-11-15 08:32:16 +00:00
Richard Smith 2674c6e39b Fix typo from code review (thanks to Alexey Samsonov). This is also caught by the existing tests when building for i386.
llvm-svn: 167890
2012-11-13 23:58:20 +00:00
Richard Smith 6122d0692b Support for building the ubsan runtime when using the autoconf build system on
Darwin. Patch by Jean-Daniel Dupas, tweaked by Jonathan Sauer, simplified
somewhat by me.

llvm-svn: 167889
2012-11-13 23:55:06 +00:00
Richard Smith 05dce7e644 -fsanitize=undefined: Switch to using sanitizer_common for output. This gets us much closer to not depending on any system headers.
llvm-svn: 167888
2012-11-13 23:42:05 +00:00
Kostya Serebryany 1f8922cf71 [asan] use #if defined __x86_64__ instead of #if __WORDSIZE == 64 in sanitizer_linux.cc
llvm-svn: 167883
2012-11-13 23:13:17 +00:00
Dmitry Vyukov 6d67d3b0ee tsan: remove unused const
llvm-svn: 167835
2012-11-13 14:13:21 +00:00
Dmitry Vyukov 041eaf976c tsan: better function names
llvm-svn: 167834
2012-11-13 14:05:58 +00:00
Alexey Samsonov b8a5f99bee [TSan] Add output test for write under reader lock
llvm-svn: 167833
2012-11-13 14:05:02 +00:00
Dmitry Vyukov dcba4d1288 tsan: fix stats collection
llvm-svn: 167832
2012-11-13 13:53:43 +00:00
Alexey Samsonov 2906117857 [ASan] now we don't need llvm_obj_root to access llvm-symbolizer tool
llvm-svn: 167823
2012-11-13 07:55:16 +00:00
Alexey Samsonov c835b9e4a3 [ASan] test blacklist functionality for global-init-order checker (r167725)
llvm-svn: 167727
2012-11-12 14:03:00 +00:00
Alexander Potapenko 9448581d9e [ASan] Remove llvm-symbolizer from compiler-rt/utils/
This is the first (1/2) part of a change that moves llvm-symbolizer to llvm/tools/, which will allow to build it
with both cmake and configure+make.

llvm-svn: 167722
2012-11-12 11:32:42 +00:00
Alexander Potapenko 5066c5d9b7 [ASan] Fix the golden stack for use-after-free.cc.
The change has been caused by the switch to llvm-symbolizer, that prints inlined stack frames.
This should fix PR 14251

llvm-svn: 167721
2012-11-12 11:27:24 +00:00
Dmitry Vyukov 317f39290d tsan: intercept gettimeofday()
llvm-svn: 167630
2012-11-09 19:55:06 +00:00
Alexey Samsonov ae9b18b607 [Sanitizer] add sanity checks for communication with external symbolizer
llvm-svn: 167617
2012-11-09 14:45:30 +00:00
Dmitry Vyukov 805006b0ab tsan: switch to new memory_order constants (ABI compatible)
llvm-svn: 167614
2012-11-09 14:11:51 +00:00
Dmitry Vyukov 4e5f72d380 tsan: add __tsan_atomicX_compare_exchange_val() function
It's easier to call from compiler module.

llvm-svn: 167611
2012-11-09 12:54:37 +00:00
Alexander Potapenko 4b8e32de12 Add a possible underscore before the wrappers to the output expectations for Darwin
llvm-svn: 167610
2012-11-09 11:55:33 +00:00
Alexey Samsonov 75fb677fd1 [Sanitizer] Build all sanitizer runtime libraries with debug info (with -gline-tables-only, if it's available)
llvm-svn: 167584
2012-11-08 14:49:28 +00:00
Dmitry Vyukov 26216e4ae3 tsan: add range access functions for Go
llvm-svn: 167580
2012-11-08 13:38:45 +00:00
Alexey Samsonov 37119db20a [ASan] avoid including <new> header in ASan runtime
llvm-svn: 167579
2012-11-08 13:31:19 +00:00
Dmitry Vyukov e829b6231a tsan: change TSAN_OPTIONS->GORACE in build script as well
llvm-svn: 167578
2012-11-08 13:23:13 +00:00
Alexey Samsonov c463f3077e [Sanitizer] try to fix Windows bot - include stdlib.h for abort/_exit functions
llvm-svn: 167577
2012-11-08 13:08:41 +00:00
Dmitry Vyukov 9952b674ca tsan: use GORACE env for options for Go
llvm-svn: 167575
2012-11-08 11:32:40 +00:00
Dmitry Vyukov 67dc5702f8 tsan: do not sleep at exit if there are no other threads
llvm-svn: 167533
2012-11-07 16:41:57 +00:00
Dmitry Vyukov ea4f1990e1 tsan: add flag to suppress all reports (useful for benchmarking)
llvm-svn: 167532
2012-11-07 16:14:12 +00:00
Dmitry Vyukov e11f2920c9 tsan: more precise handling of finalizers
llvm-svn: 167530
2012-11-07 15:08:20 +00:00
Dmitry Vyukov da78be74f3 tsan: slightly relax requirements for lazy shadow memory (can overlap and may not be properly aligned)
it's problematic on windows where allocation granularity is much larger than page size

llvm-svn: 167466
2012-11-06 16:48:46 +00:00
Dmitry Vyukov c015712992 tsan: lazily allocate shadow for Go
llvm-svn: 167464
2012-11-06 16:00:16 +00:00
Dmitry Vyukov e86c632015 tsan: fix debug output
llvm-svn: 167463
2012-11-06 15:54:34 +00:00
Dmitry Vyukov a0be3e2c68 tsan: better diagnostics for failed mmap()
llvm-svn: 167462
2012-11-06 15:39:16 +00:00
Dmitry Vyukov 95b9a362ff tsan: fix compiler warning
llvm-svn: 167458
2012-11-06 14:05:20 +00:00
Dmitry Vyukov e4c2fd4c2f tsan: windows platform support
llvm-svn: 167457
2012-11-06 13:35:02 +00:00
Dmitry Vyukov 7234a5b54d tsan: update script to support windows
llvm-svn: 167456
2012-11-06 13:32:53 +00:00
Dmitry Vyukov 5f93416c94 tsan: add shadow mapping for windows
llvm-svn: 167455
2012-11-06 13:26:57 +00:00
Dmitry Vyukov ee563c10c6 tsan: add missing function for windows
llvm-svn: 167454
2012-11-06 13:25:05 +00:00
Dmitry Vyukov 1d4120b210 tsan: fix constant types
llvm-svn: 167453
2012-11-06 13:21:06 +00:00
Dmitry Vyukov 0ff6d2dd6c tsan: windows: less includes, better diagnostics for failed VirtualAlloc(), implement sched_yield()
llvm-svn: 167452
2012-11-06 13:19:59 +00:00
Dmitry Vyukov ba827dfdae tsan: don't release disabled clocks
llvm-svn: 167451
2012-11-06 13:16:25 +00:00
Dmitry Vyukov 2817639411 tsan: define missing compier macros for windows
llvm-svn: 167450
2012-11-06 12:54:16 +00:00
Dmitry Vyukov e9bafdf5b8 tsan: fix non-msvc windows build
llvm-svn: 167449
2012-11-06 12:50:13 +00:00
Dmitry Vyukov 04dd4b7349 tasn: improve sanitizer_internal_defs.h
The file uses namespaces and extern "LANG", so it's kinda senseless to use #ifdef __cplusplus

llvm-svn: 167448
2012-11-06 12:49:22 +00:00
Dmitry Vyukov e6b5a696e3 tsan: fix windows build
__declspec is not _WIN32, it's _MSC_VER

llvm-svn: 167447
2012-11-06 12:47:42 +00:00
Dmitry Vyukov 1ec08f3627 tsan: fix Go build
llvm-svn: 167446
2012-11-06 12:46:26 +00:00
Richard Smith 77930919ad Update compiler-rt tests to match flag renaming/deprecation in Clang.
llvm-svn: 167434
2012-11-06 02:31:42 +00:00
Alexey Samsonov 58358897a3 [Sanitizer] Add internal_isatty to sanitizer_libc and PrintsToTty to determine whether error reports are printed to terminal
llvm-svn: 167298
2012-11-02 15:18:34 +00:00
Alexey Samsonov f7a24c4e2b [Sanitizer] fix printf unittest on 32-bit arch
llvm-svn: 167297
2012-11-02 14:28:17 +00:00
Alexey Samsonov 008274440a [Sanitizer] move unit test for Printf from tsan to sanitizer_common
llvm-svn: 167296
2012-11-02 12:36:11 +00:00
Alexey Samsonov ad9d65feb8 [TSan] finally remove TsanPrintf in favor of Printf from sanitizer_common
llvm-svn: 167294
2012-11-02 12:17:51 +00:00
Alexey Samsonov 20ba98fdb1 [Sanitizer] Use kStderrFd constant instead of hardcoded 2
llvm-svn: 167291
2012-11-02 09:38:47 +00:00
Alexey Samsonov fd67c83e7e [Sanitizer]: add __sanitizer_set_report_fd function to alter file descriptor for error reports
llvm-svn: 167290
2012-11-02 09:23:36 +00:00
Alexey Samsonov 0c8b755839 Flag -ccc-clang-cxx was removed in r166986, remove it from compiler-rt lit configs
llvm-svn: 167010
2012-10-30 10:06:42 +00:00
Richard Smith 8f4d7eb518 Consistently declare 'extern "C"' variable in namespace __ubsan. No functionality change.
llvm-svn: 166966
2012-10-29 21:01:59 +00:00
Richard Smith f0aac0b99e Don't define an extern "C" variable in its first declaration, to appease a
bogus gcc warning. Take this opportunity to move the declaration to the header,
since it's part of the API of this file.

llvm-svn: 166965
2012-10-29 20:54:34 +00:00
Alexander Potapenko dda4f0b593 Fix a compiler warning in internal_memmove.
llvm-svn: 166775
2012-10-26 13:47:36 +00:00
Alexander Potapenko 2a1925852d Fix the internal_memmove() implementation that used to skip src[0] if dst < src.
llvm-svn: 166774
2012-10-26 13:24:20 +00:00
Alexey Samsonov 23b9199776 [ASan] don't run hacky test for __asan_get_free_bytes() on 32-bits
llvm-svn: 166771
2012-10-26 12:10:24 +00:00
Alexander Potapenko 99843d3a29 In the dynamic runtime on Mac OS, do not call internal_strdup() before __asan_init().
This may result in a crash at startup.
Fixes http://code.google.com/p/address-sanitizer/issues/detail?id=123.

llvm-svn: 166768
2012-10-26 11:31:14 +00:00
Richard Smith 2f0d7d564c -fcatch-undefined-behavior checking for appropriate vptr value: library side.
llvm-svn: 166660
2012-10-25 02:07:02 +00:00
Evgeniy Stepanov 64579da1a7 Build ASan runtime for ARM/Android.
llvm-svn: 166559
2012-10-24 14:03:41 +00:00
Alexander Potapenko 1eef2b813c [ASan] Rename ReplaceCFAllocator to MaybeReplaceCFAllocator.
Replace the allocator only if the replace_cfallocator flag is set (in some cases it wasn't checked)

llvm-svn: 166550
2012-10-24 09:35:23 +00:00
Alexander Potapenko faa9c86fd0 [ASan] Use internal_memmove() in both static and dynamic runtime libraries if asan_inited != 0.
llvm-svn: 166549
2012-10-24 09:19:16 +00:00
Alexey Samsonov cea6239219 [ASan] Due to data races, ASan malloc stats are inaccurate, which may cause certain ASan interface functions returning negative values (casted to unsigned). Return a reasonable value if such a case is detected.
llvm-svn: 166548
2012-10-24 09:19:11 +00:00
Alexey Samsonov 555d1c5ab8 [ASan] add comment to blacklist file to test behavior introduced in r166283
llvm-svn: 166284
2012-10-19 15:26:48 +00:00
Alexey Samsonov 521309294f [ASan] instrumented asan unit tests should depend on blacklist file
llvm-svn: 166282
2012-10-19 15:18:14 +00:00
Bob Wilson 201bf679b2 Fix comment typo.
llvm-svn: 166246
2012-10-18 23:08:23 +00:00
Evgeniy Stepanov ad18287e56 [asan] Disable new/delete interceptors on Android and make them visible elsewhere.
llvm-svn: 166180
2012-10-18 15:22:08 +00:00
Alexey Samsonov b9fdf27357 [Sanitizer] fall back to online symbolizer if user-provided callback failed
llvm-svn: 166177
2012-10-18 11:46:22 +00:00
Chandler Carruth 580916eacb Re-enable this test now that r166172 has hacked around the terrible
limitations of the pass manager stack in the pass manager builder.

llvm-svn: 166173
2012-10-18 08:06:28 +00:00
Daniel Dunbar e5e1c643df build/clang_darwin: Don't try to build ARM contents on 10.6.
- The cctools' ranlib on 10.6 has a bug and can't understand our ARM object
   files.

llvm-svn: 166114
2012-10-17 18:33:43 +00:00
Daniel Dunbar b02dcec79e build/make: There is no need to put timestamps into .dir files, and it just
makes trees less comparable.

llvm-svn: 166111
2012-10-17 18:21:21 +00:00
Alexey Samsonov 5f1a7589ad [ASan] unit tests: Move main() to a separate file. Fix lint
llvm-svn: 166104
2012-10-17 14:04:57 +00:00
Kostya Serebryany 9ced62d195 [asan] added a test for a bug in asan at -O0 introduced by r165936 (making asan a FunctionPass). The test is not actually enabled for -O0 yet (since it fails)
llvm-svn: 166103
2012-10-17 13:42:04 +00:00
Alexey Samsonov 7b52cb9e6d [ASan] Fix strchr/index tests for users who have 'char* strchr(char*,int)' instead of 'char* strchr(const char*, int)'
llvm-svn: 166101
2012-10-17 13:39:09 +00:00
Alexey Samsonov 4230a4a05a [ASan] don't use attribute no_address_safety_analysis if it's unknown to compiler
llvm-svn: 166099
2012-10-17 13:19:59 +00:00
Alexey Samsonov 68791d162a [Sanitizer] symbolizer: increase the maximal number of shared libraries to 16K
llvm-svn: 166098
2012-10-17 13:12:23 +00:00
Kostya Serebryany 05a3b01d4f [asan] fix gcc warnings while building asan-rt
llvm-svn: 166093
2012-10-17 08:50:53 +00:00
Alexander Potapenko e3e80d607f Do not call ReplaceCFAllocator() before __CFInitialize(), otherwise crashes are possible on 10.8.
Fixes http://code.google.com/p/address-sanitizer/issues/detail?id=122

llvm-svn: 166029
2012-10-16 16:58:10 +00:00
Alexander Potapenko 5109e3ef88 Commit a leftover file from r166026: Add MACOS_VERSION_MOUNTAIN_LION.
llvm-svn: 166028
2012-10-16 16:48:51 +00:00
Alexander Potapenko 4a78e1002d Add MACOS_VERSION_MOUNTAIN_LION.
llvm-svn: 166026
2012-10-16 16:24:49 +00:00
Kostya Serebryany 278bd2e3a3 [asan] fix lint
llvm-svn: 166006
2012-10-16 04:50:32 +00:00
Daniel Dunbar 345b09cb80 platform/clang_darwin: Drop an x86_64 slice into cc_kext_ios5.
- This doesn't get used, but it is a simple workaround for PR14013.

llvm-svn: 165987
2012-10-15 22:23:34 +00:00
Daniel Dunbar ccd312520b Un-revert r164907 and r164902 (+ follow-ups), 10.6 build fix to follow.
llvm-svn: 165986
2012-10-15 22:23:32 +00:00
Nico Weber 926e072016 Revert r164907 and r164902 (+ follow-ups). They broke building on 10.6.
See PR14013.

llvm-svn: 165963
2012-10-15 20:37:13 +00:00
Alexander Potapenko 7b03290c43 Implement internal_memmove.
Use internal_memmove() and internal_memcpy() in the memcpy() and memmove() wrappers
when building the dynamic runtime (OS X only), to work around a bug in resolver functions wrapping.
See also http://code.google.com/p/address-sanitizer/issues/detail?id=116

llvm-svn: 165939
2012-10-15 15:34:41 +00:00
Kostya Serebryany ee112b5d7f [asan] fix more tests
llvm-svn: 165934
2012-10-15 13:30:38 +00:00
Kostya Serebryany 16205cd4fa [asan] change the asan output slightly to avoid user confusion: a) add ':' after 'AddressSanitizer' and b) changed 'crashed' to 'SEGV'
llvm-svn: 165932
2012-10-15 13:04:58 +00:00
Richard Smith feea5d6fb4 Provide a slightly more helpful diagnostic if -fcatch-undefined-behavior finds
a problem with __int128 arithmetic but the runtime was not built with __int128
support.

llvm-svn: 165913
2012-10-14 23:53:37 +00:00
Richard Smith 130b748b72 Use a better test for __int128 support, which works on old GCC versions.
llvm-svn: 165912
2012-10-14 23:28:55 +00:00
Chandler Carruth eea8a48218 Fix the bootstrap of CompilerRT with host compilers that don't support
emulating 128-bit arithmetic on 32-bit x86 targets. This should get the
bootstrap back for GCC 4.6 at least.

Suggestions on better ways to do the detection here are welcome...

llvm-svn: 165863
2012-10-13 02:30:10 +00:00
Richard Smith 7247b23efc -fcatch-undefined-behavior: Runtime library support for trapping conversions to or
from a floating-point type where the source value is not in the range of
representable values of the destination type.

llvm-svn: 165844
2012-10-12 22:57:15 +00:00
Richard Smith 22cc16462e -fcatch-undefined-behavior: handler for VLA bound which evaluates to a non-positive value.
llvm-svn: 165582
2012-10-10 01:10:59 +00:00
Richard Smith b6fb381dba -fcatch-undefined-behavior: store the type name directly at the end of a type descriptor. 5% binary size reduction due to fewer relocations.
llvm-svn: 165571
2012-10-09 23:55:18 +00:00
Richard Smith 68b3014cd3 Add a runtime diagnostics library for Clang's -fcatch-undefined-behavior.
llvm-svn: 165533
2012-10-09 19:34:32 +00:00
Alexey Samsonov 7b6ce747d6 Determine supported archs for compiler-rt libraries on Linux by trying to compile a simple executable
llvm-svn: 165504
2012-10-09 16:05:50 +00:00
Alexey Samsonov 83ecabe6e6 [Sanitizer] Remove unneeded returns after UNIMPLEMENTED macro
llvm-svn: 165493
2012-10-09 08:51:08 +00:00
Alexey Samsonov 3a0a88fe0a [Sanitizer] Add UNREACHABLE(msg) macro
llvm-svn: 165492
2012-10-09 08:42:07 +00:00
Alexey Samsonov 480477c0e1 [ASan] use llvm-symbolizer for ASan lit-style tests on Mac
llvm-svn: 165391
2012-10-08 13:11:18 +00:00
Alexey Samsonov 0111f55eac llvm-symbolizer for Mac: add support for reading DWARF from separate object file in resource directory generated by dsymutil. Fix minor symbol table lookup issues.
llvm-svn: 165389
2012-10-08 10:17:44 +00:00
Dmitry Vyukov 19ba50a8b9 tsan: better message about found races for Go ThreadSanitizer
llvm-svn: 165376
2012-10-07 14:21:24 +00:00
Dmitry Vyukov 90c9cbfed4 tsan: cache pc's that cause suppressions (this way we do not need to symbolize the reports)
llvm-svn: 165317
2012-10-05 15:51:32 +00:00
Alexander Potapenko b4db79fc7d If !asan_inited, call internal versions of libc functions where available.
This is to remove unnecessary #if directives.

llvm-svn: 165307
2012-10-05 12:11:06 +00:00
Dmitry Vyukov 6d5bd599c2 tsan for Go: support mallocs before __tsan_init() (required to support cgo code)
llvm-svn: 165229
2012-10-04 13:54:49 +00:00
Alexander Potapenko d2f6b97417 Avoid calling __asan_init from memcpy(), memmove(), memset() during libSystem initialization.
Fixes http://code.google.com/p/address-sanitizer/issues/detail?id=117.

llvm-svn: 165227
2012-10-04 13:41:28 +00:00
Alexey Samsonov 3197f8e6cb [ASan] don't build 64-bit runtime on 32-bit Linux platforms
llvm-svn: 165222
2012-10-04 12:22:33 +00:00
Dmitry Vyukov b96a7b5aa5 tsan: add atomic_fetch_sub() and atomic_signal_fence() functions
llvm-svn: 165218
2012-10-04 10:08:23 +00:00
Kostya Serebryany cb13fff13d [asan] properly report mmap failure
llvm-svn: 165214
2012-10-04 07:21:09 +00:00
Bill Wendling 836d53015e I'm getting these errors with r165159:
/Users/void/llvm/llvm-tot.src/projects/compiler-rt/lib/arm/eqdf2vfp.S:22:2: error: instruction requires: VFP2
 vmov d6, r0, r1
 ^
/Users/void/llvm/llvm-tot.src/projects/compiler-rt/lib/arm/eqdf2vfp.S:23:2: error: instruction requires: VFP2
 vmov d7, r2, r3
 ^
/Users/void/llvm/llvm-tot.src/projects/compiler-rt/lib/arm/eqdf2vfp.S:24:2: error: instruction requires: VFP2
 vcmp.f64 d6, d7
 ^
/Users/void/llvm/llvm-tot.src/projects/compiler-rt/lib/arm/eqdf2vfp.S:25:2: error: instruction requires: VFP2
 vmrs apsr_nzcv, fpscr
 ^

llvm-svn: 165191
2012-10-04 01:44:41 +00:00
Bob Wilson 1ff65860e4 Back out my temporary workaround for Apple buildbots.
--- Reverse-merging r164909 into '.':
U    make/platform/clang_darwin.mk

llvm-svn: 165159
2012-10-03 21:03:42 +00:00
Alexander Potapenko 0f0a50da56 Set ASAN_NEEDS_SEGV=0 on Android only.
llvm-svn: 165120
2012-10-03 15:09:17 +00:00
Dmitry Vyukov be6878365d tsan: prepare for migration to new memory_order enum values (ABI compatible)
llvm-svn: 165106
2012-10-03 13:00:13 +00:00
Alexey Samsonov c561ce0e01 Build ASan runtime on Linux for both x86_64 and i386, same as we do with full compiler_rt and libprofile
llvm-svn: 165096
2012-10-03 07:16:31 +00:00
Alexander Potapenko 77c0ac2336 Do not patch the instruction address when symbolizing the reports.
Instead, print the correct address at runtime.

llvm-svn: 165018
2012-10-02 15:42:24 +00:00
Alexey Samsonov 30c01f25f1 [Sanitizer] fix line width
llvm-svn: 165009
2012-10-02 14:09:20 +00:00
Alexey Samsonov 78c340d205 [ASan] Change __asan_set_on_error_callback to weak overridable __asan_on_error, so that ASan would call the latter even if it finds the error early (i.e. during module initialization)
llvm-svn: 165008
2012-10-02 14:06:39 +00:00
Evgeniy Stepanov 49e8576a09 [*San]: handle EINTR.
llvm-svn: 165006
2012-10-02 13:41:40 +00:00
Dmitry Vyukov 56faa551b9 tsan: fix mac build
llvm-svn: 165004
2012-10-02 12:58:14 +00:00
Alexey Samsonov 298e237d7e [ASan] Add extern C for __asan_symbolize on Windows
llvm-svn: 165003
2012-10-02 12:35:42 +00:00
Alexey Samsonov e29c6731aa [Sanitizer/ASan] Simplify the code that prints and symbolizes stack traces. Fall back to module+offset if user-provided symbolizer failed. Use weak function __asan_symbolize instead of __asan_set_symbolize_callback in ASan interface, so that we're able to symbolize reports for errors that happen before the main() is called, for example, during module initialization.
llvm-svn: 165000
2012-10-02 12:11:17 +00:00
Dmitry Vyukov a2c1c7a78e tsan: wait for pending reports before exit
llvm-svn: 164999
2012-10-02 12:07:16 +00:00
Dmitry Vyukov 27d5b37c38 tsan: output tid's in reports
llvm-svn: 164998
2012-10-02 11:52:05 +00:00
Dmitry Vyukov 0c40a5600c tsan: run output tests in parallel
llvm-svn: 164997
2012-10-02 11:51:40 +00:00
Bob Wilson dda435bcef Temporarily comment out some new arm variants to try to fix buildbots.
llvm-svn: 164909
2012-09-30 05:34:28 +00:00
Bob Wilson a4cefbdc87 Add compiler-rt support for Swift.
llvm-svn: 164903
2012-09-29 23:37:01 +00:00
Bob Wilson 0e039bee0d Add support for iOS6.
llvm-svn: 164902
2012-09-29 23:25:48 +00:00
Alexey Samsonov c3f61d8eec [ASan] Fix unit test headers. Add an option to change substitute asan_test_config.h file
llvm-svn: 164821
2012-09-28 12:24:23 +00:00
Alexey Samsonov 2d9899b2ce [ASan] use llvm-symbolizer (in offline mode) in ASan output tests on Linux
llvm-svn: 164819
2012-09-28 11:05:41 +00:00
Evgeniy Stepanov 9792396a06 [asan] Change defaults for Android target.
This way building without -DASAN_* in CFLAGS produces working binaries.

llvm-svn: 164816
2012-09-28 10:07:53 +00:00
Evgeniy Stepanov cb9cf0f907 Add a missing const qualifier.
llvm-svn: 164773
2012-09-27 13:21:08 +00:00
Evgeniy Stepanov f7f616ba66 Quick fix data/bss detection in TSan.
The old way breaks when a module's bss is adjacent to the [heap] vm area.
Both ways are not very reliable, though.

llvm-svn: 164772
2012-09-27 13:20:40 +00:00
Alexey Samsonov b6879ce94c [TSan] move replacement for new/delete back into tsan_interceptors
llvm-svn: 164764
2012-09-27 09:50:19 +00:00
Alexander Potapenko 3f6a5c1b2d Fixed a number of gpylint warnings, added binary names filtering (useful for Chrome), minor fixes.
llvm-svn: 164695
2012-09-26 13:16:42 +00:00
Alexander Potapenko 59cc8776c4 Encapsulate the main loop into a class to allow reusing it.
llvm-svn: 164694
2012-09-26 12:12:41 +00:00
Alexander Potapenko fa2a964540 Set --use-symbol-table=true as Alexey has already resolved the FIXME.
llvm-svn: 164693
2012-09-26 11:36:14 +00:00
Alexey Samsonov 789d4b2cd0 [TSan] fork external symbolizer before starting internal threads
llvm-svn: 164600
2012-09-25 12:35:47 +00:00
Alexey Samsonov 351d486df0 [TSan] one more attempt to fix sleep_sync test: call sleep in the spawned thread so that sleep-synchronization will be detected even if child thread is started late.
llvm-svn: 164488
2012-09-24 13:35:46 +00:00
Alexey Samsonov 313014694f [TSan] Provide replacements for operators new/delete instead of declaring extern C functions with weirdly mangled names (same strategy is used in ASan).
llvm-svn: 164487
2012-09-24 13:19:47 +00:00
Alexey Samsonov a555b3faf4 [ASan] Apply some ASan-relevant pieces of patch by Ruben Van Boxem. In the same time, remove ASan from CMake build on Windows after conversation with Timur. We don't want to support building ASan on Windows until it is in a working state.
llvm-svn: 164486
2012-09-24 11:43:40 +00:00
Alexey Samsonov 0659f72f7b [TSan] increase sleep time in test to ensure correct event ordering
llvm-svn: 164483
2012-09-24 08:57:41 +00:00
Michael J. Spencer c774095d44 [CMake][tsan] Compile .S files for tsan as C instead of CXX.
Using CXX breaks if you add -stdlib=libc++ to CMAKE_CXX_FLAGS.

llvm-svn: 164422
2012-09-21 22:39:39 +00:00
Alexey Samsonov 9e769a8d59 [Sanitizer] llvm-symbolizer: enable accessing symbol table (libObject is fixed in r164365) and replace string with std::string
llvm-svn: 164367
2012-09-21 10:54:14 +00:00
Eric Christopher 8539af7bbb Both OpenBSD and Bitrig need to include machine/endian.h to get the
_BYTE_ORDER define.

Patch by David Hill.

llvm-svn: 164286
2012-09-20 06:19:20 +00:00
Alexey Samsonov bc0b3f43d1 [ASan] Include ASan into CMake build only on Linux, Mac and Windows
llvm-svn: 164224
2012-09-19 14:15:30 +00:00
Alexey Samsonov 1fba97d22d [TSan] Add tsan to cmake build of compiler-rt only on Linux
llvm-svn: 164217
2012-09-19 13:11:13 +00:00
Alexey Samsonov ea2fb08545 [ASan] make asan_symbolize script work if there is no llvm-symbolizer available
llvm-svn: 164214
2012-09-19 11:43:41 +00:00
Alexey Samsonov 52565d5491 [ASan] fix offline python symbolizer script to use llvm-symbolizer if possible
llvm-svn: 164209
2012-09-19 08:49:53 +00:00
Alexey Samsonov 11b9e97cd9 [ASan] cleanup: fix headers and lint warnings
llvm-svn: 164205
2012-09-19 07:07:46 +00:00
Dmitry Vyukov 8d8639bc55 tsan: fix gcc4.2.1 warning
llvm-svn: 164200
2012-09-19 04:45:14 +00:00
Dmitry Vyukov c7bcaf8512 tsan: fix Go build
llvm-svn: 164198
2012-09-19 04:39:36 +00:00
Alexander Potapenko 431ea19327 Intercept signal() and sigaction() within the dynamic runtime on Mac.
Add a test that ensures that ASan does not allow to override the signal handlers.

llvm-svn: 164118
2012-09-18 12:49:51 +00:00
Alexey Samsonov 848abbd236 [TSan] s/uintptr_t/intptr_t in TSan test and enforce stack size limit in one of TSan output tests that somewhy fails otherwise
llvm-svn: 164116
2012-09-18 09:09:35 +00:00
Alexey Samsonov 3040830fcd [TSan] fix a typo in test dependencies. Silence few remaining pedantic gcc warnings in TSan tests.
llvm-svn: 164115
2012-09-18 08:33:37 +00:00
Alexey Samsonov 731219551e [Sanitizer] llvm-symbolizer: turn off symbol table lookup by default while getSymbolAddress from libObject returns wrong values
llvm-svn: 164113
2012-09-18 08:00:21 +00:00
Alexey Samsonov 8661465edd [ASan] Move printing descriptions of heap addresses in error report from allocator internals to asan_report.cc.
llvm-svn: 164112
2012-09-18 07:38:10 +00:00
Alexey Samsonov 5a42ac5b0e [Sanitizer] update lint checker script
llvm-svn: 164111
2012-09-18 07:26:51 +00:00
Alexey Samsonov 341e5bcb45 [TSan] port all output tests to lit and move them to lit_tests directory. This makes 'make check-tsan' command test both unit and output TSan tests. Old custom makefiles for running TSan tests are still functional as well.
llvm-svn: 164110
2012-09-18 07:23:54 +00:00
Kostya Serebryany 0a31ed1417 [tsan] fix the tsan allocator to handle any alignment
llvm-svn: 164107
2012-09-18 06:00:59 +00:00
Bill Wendling b556d5f13c Remove debugging code.
llvm-svn: 164052
2012-09-17 20:43:11 +00:00
Benjamin Kramer 7aa5b663ea Update linux stdio.h to support the recent additions to GCDAProfiling.
Hopefully unbreaks compiler-rt build on linux.

llvm-svn: 164025
2012-09-17 10:23:05 +00:00
Alexey Samsonov 0fa3ea69e2 [TSan] move: rtl_tests->tests/rtl unit_tests->tests/unit to make a single root for gtest-based tests. Support running these tests from lit via check-tsan command.
llvm-svn: 164022
2012-09-17 10:02:17 +00:00
Alexey Samsonov ff3f173e87 [TSan] If we detect an unlimited stack, try to re-exec with limited stack
llvm-svn: 164021
2012-09-17 09:14:11 +00:00
Alexey Samsonov 97ca306641 [Sanitizer] Hoist functions to get/set stack size and re-exec from memory-sanitizer branch to sanitizer_common
llvm-svn: 164020
2012-09-17 09:12:39 +00:00
Alexey Samsonov 3869b4b35a [ASan] increase sleep time if ASan finds two bugs simultaneously to make sure full error report is printed
llvm-svn: 164018
2012-09-17 08:02:19 +00:00
Dmitry Vyukov 40c19aaf84 tsan: increase internal memory block limit 1GB->4GB
llvm-svn: 164011
2012-09-17 03:18:45 +00:00
Dmitry Vyukov 4d743f5346 tsan: reserve msb in stack depot id's (required for msan)
llvm-svn: 164010
2012-09-17 03:14:15 +00:00
Bill Wendling 06fb5f0cc2 Remove unused variable.
llvm-svn: 163930
2012-09-14 20:23:31 +00:00
Bill Wendling 66429fe1c7 Add support for reading the GCDA file and merging the arc information.
With the advent of the __llvm_gcov_flush function, we need to be able to merge
counts into the .gcda files in an intelligent manner. This involves reading the
file if it exists, adding the counts together, and then writing the results.
<rdar://problem/12185886>

llvm-svn: 163923
2012-09-14 18:55:32 +00:00
Evgeniy Stepanov 6c0850afa4 Remove some debugging code.
llvm-svn: 163881
2012-09-14 08:57:50 +00:00
Kostya Serebryany 5b0a8f3f53 [asan] fix the va_arg usage
llvm-svn: 163879
2012-09-14 06:52:46 +00:00
Kostya Serebryany 45d849c4bd [asan] add asan option log_path=PATH to let users redirect asan reports to a file PATH.PID instead of stderr
llvm-svn: 163872
2012-09-14 04:35:14 +00:00
Alexey Samsonov 2b8de6a753 [TSan] support building TSan unittests in CMake
llvm-svn: 163797
2012-09-13 14:04:57 +00:00
Alexey Samsonov a7df554138 [TSan] fix a typo in CMakeLists
llvm-svn: 163796
2012-09-13 14:02:40 +00:00
Alexey Samsonov f0aa9148a2 [TSan] Use interface attribute for weak functions that may be overriden by user
llvm-svn: 163795
2012-09-13 13:34:09 +00:00
Alexey Samsonov 255f6a5f1a [TSan] Add initial support for buidling ThreadSanitizer runtime library with CMake (currently the only supported platfrom is 64-bit Linux). This patch makes 'clang++ -fthread-sanitizer' work for both clang in the build tree and installed clang
llvm-svn: 163789
2012-09-13 12:18:41 +00:00
Alexey Samsonov 046248c509 [TSan] fix a bunch of warnings reported by pedantic gcc
llvm-svn: 163788
2012-09-13 11:54:41 +00:00
Alexey Samsonov ddcb77f287 [Sanitizer] don't use -Werror as default compile flag for sanitizer runtimes - people may use too many distinct/old host compilers
llvm-svn: 163784
2012-09-13 10:23:45 +00:00
Alexander Potapenko c7a7522f83 Pass -std=c99 when compiling mach_override.c
llvm-svn: 163717
2012-09-12 15:44:56 +00:00
Alexander Potapenko f3a96894a6 Give more accurate malloc statistics to malloc_zone_statistics().
Fix a warning in macros instantiation.

llvm-svn: 163716
2012-09-12 15:29:50 +00:00
Alexander Potapenko dff254c534 Fix compiler warnings: remove __attribute__((visibility)) for static functions, use unsigned char instead of char.
llvm-svn: 163707
2012-09-12 14:14:08 +00:00
Alexey Samsonov 4787d0fbef [ASan] more macro/casting magic to suppress warnings
llvm-svn: 163706
2012-09-12 14:10:14 +00:00
Alexey Samsonov 26d7a06da3 [ASan] fix compiler warnings for unit test on Android
llvm-svn: 163704
2012-09-12 12:07:36 +00:00
Alexey Samsonov e413ad99ac [Sanitizer] Fix compiler warnings (including void* arithmetic) in mach_override
llvm-svn: 163698
2012-09-12 10:45:36 +00:00
Alexey Samsonov a81d268acd [ASan] fix interception macro for Android build
llvm-svn: 163692
2012-09-12 09:42:23 +00:00
Alexander Potapenko 814451909a Initial support for malloc_zone_statistics. All counters are set to zero now.
This is required to overcome a crash in mstats() (http://code.google.com/p/address-sanitizer/issues/detail?id=109)

llvm-svn: 163690
2012-09-12 09:38:51 +00:00
Alexey Samsonov 3d53c4ecf6 [Sanitizer] Please Android build. Re-check the availability of -Wno-variadic-macros flag.
llvm-svn: 163688
2012-09-12 08:06:15 +00:00
Alexey Samsonov 694633e19b [Sanitizer] first effort to start building ASan runtime with -Werror in CMake build
llvm-svn: 163686
2012-09-12 07:38:47 +00:00
Alexey Samsonov 788eaeb35b [Sanitizer] get rid of empty DEFAULT_CONVENTION in interception lib to remove empty macro arguments
llvm-svn: 163622
2012-09-11 15:02:20 +00:00
Alexey Samsonov 100150f59d [Sanitizer] test 64-bit allocator only on suitable targets
llvm-svn: 163615
2012-09-11 12:19:18 +00:00
Alexander Potapenko ab7a4ea485 Revert the lockf() support.
llvm-svn: 163614
2012-09-11 11:59:05 +00:00
Evgeniy Stepanov 1a8f8fa6c0 CMake build rules for ASan Android runtime and tests.
llvm-svn: 163613
2012-09-11 11:55:45 +00:00
Evgeniy Stepanov af0f6c8991 Fox a typo.
llvm-svn: 163611
2012-09-11 11:35:18 +00:00
Alexey Samsonov 894069796e [Sanitizer] Add new lit testsuite: check-sanitizer that runs unit tests for sanitizer_common runtime (shared between ASan and TSan)
llvm-svn: 163610
2012-09-11 10:50:32 +00:00
Alexey Samsonov c21f901b2f [Sanitizer] fix warnings reported by gcc. Update the list of targets to check lint for
llvm-svn: 163608
2012-09-11 10:31:28 +00:00
Alexey Samsonov eeec3c11b5 [compiler-rt] Install support for CMake build of compiler-rt
llvm-svn: 163607
2012-09-11 10:26:54 +00:00
Alexey Samsonov fcbc97a13f [Sanitizer] remove custom Die/CheckFailed from allocator testlib
llvm-svn: 163604
2012-09-11 09:48:52 +00:00
Alexey Samsonov 5c6b93bc33 [Sanitizer] Get rid of dependency between sanitizer_common and asan/tsan runtimes: implement tool-specific Die and CheckFailed functions via callbacks
llvm-svn: 163603
2012-09-11 09:44:48 +00:00
Alexander Potapenko 1a471772b0 Interceptors for lockf and lockf64, minor calloc() fix.
llvm-svn: 163602
2012-09-11 09:26:35 +00:00
Chandler Carruth b156b56a28 Revert r163411 based on review discussion.
In code review, it looked like these warnings do not actually fire with
modern Clang or GCC. However, the pragma is flat out rejected by GCC in
many configurations (-Werror) so it ended up causing more problems than
it fixed.

Daniel agreed with reverting this, but I think didn't have time to get
to it.

llvm-svn: 163583
2012-09-11 01:13:51 +00:00
Daniel Dunbar 256ea4e4f3 build/clang_darwin: Add the ASAN dynamic library.
- Now with spelling fix for -lstdc++.

llvm-svn: 163527
2012-09-10 18:26:38 +00:00
Chad Rosier ca8b950317 Revert r163415 in an attempt to bring back the buildbots.
llvm-svn: 163522
2012-09-10 17:26:42 +00:00
Evgeniy Stepanov 6f66ed1329 [asan] There is no __libc_malloc on Android.
llvm-svn: 163498
2012-09-10 10:18:49 +00:00
Alexander Potapenko 67192d41ee Allow to call strchr() from __asan_init().
Fixes PR13794.

llvm-svn: 163493
2012-09-10 08:35:12 +00:00
Daniel Dunbar 6eae4ce2b8 build/clang_darwin: Add the ASAN dynamic library.
llvm-svn: 163415
2012-09-07 19:57:35 +00:00
Daniel Dunbar 9d098bc09a [asan] Use a relative include path instead of requiring build system involvement.
llvm-svn: 163414
2012-09-07 19:57:32 +00:00
Daniel Dunbar 44b3474b0e build: Teach Makefile build system about asan/dynamic subdir.
llvm-svn: 163413
2012-09-07 19:57:28 +00:00
Daniel Dunbar c053c2bcda build: Add support for building dylibs.
llvm-svn: 163412
2012-09-07 19:57:23 +00:00
Daniel Dunbar 04ab17b0cd [asan] Suppress some bogus -Winvalid-noreturn diagnostics.
llvm-svn: 163411
2012-09-07 19:57:20 +00:00
Dmitry Vyukov 7ea4c2ccfb tsan: ignore destruction of global mutexes (causes a lot of non-interesting reports)
llvm-svn: 163400
2012-09-07 18:08:02 +00:00
Alexander Potapenko 38c3f9ef2f Remove the infinite recursion check for now, as we don't have __thread on Mac, and TSD is an overkill.
llvm-svn: 163393
2012-09-07 15:50:19 +00:00
Alexander Potapenko c5adb8a700 Two minor changes:
-- exit from infinite recursion in CHECK()
 -- print a verbose message if mapping of the shadow memory has failed.

llvm-svn: 163391
2012-09-07 15:34:40 +00:00
Evgeniy Stepanov 6e6817a823 [asan] Raise quarantine size a bit with ASAN_LOW_MEMORY.
Our tests expect that a 16M block will fit in the quarantine.

llvm-svn: 163384
2012-09-07 12:13:52 +00:00
Alexey Samsonov f42e860c51 [ASan] hack initialization-bug test so that it stably passes on both Linux and Mac: make the bug appear independent of the translation unit order
llvm-svn: 163381
2012-09-07 09:24:29 +00:00
Alexey Samsonov 0f5f1d5bfa [ASan] add Linux-specific test for initialization order that checks that we find a bug independently of translation units order
llvm-svn: 163379
2012-09-07 09:04:31 +00:00
Alexey Samsonov cd66d97799 [Sanitizer] add --demangle option to llvm-symbolizer (for now just assume that __cxa_demangle option is available)
llvm-svn: 163376
2012-09-07 07:26:35 +00:00
Dmitry Vyukov 23ecb4acd9 tsan: fix code style
llvm-svn: 163326
2012-09-06 16:11:30 +00:00
Dmitry Vyukov c87e7280b8 tsan: increase max shadow stack size + reduce memory consumption at the same time (by not memorizing full stacks in traces)
llvm-svn: 163322
2012-09-06 15:18:14 +00:00
Dmitry Vyukov 50d49238a6 tsan: fix Go build script
llvm-svn: 163320
2012-09-06 15:10:19 +00:00
Alexander Potapenko 35bc23ce58 Fix two compiler warnings: must use at least one argument for "..." in a variadic macros, signed vs. unsigned comparison.
llvm-svn: 163314
2012-09-06 13:31:13 +00:00
Evgeniy Stepanov 65fb0a5425 [asan] Use __ANDROID__ guard in asan_test.
llvm-svn: 163313
2012-09-06 12:50:28 +00:00
Alexander Potapenko 3ecf916c33 Use the return value of dladdr() to avoid Clang warning.
llvm-svn: 163311
2012-09-06 12:18:45 +00:00
Kostya Serebryany f9caa28ccf [asan] increase max stack size to 256 (+test)
llvm-svn: 163308
2012-09-06 10:57:03 +00:00
Alexander Potapenko 447ff70280 Add "movsbl %dh, %ecx" and "testb %r8, %r8" to mach_override.
This should fix http://code.google.com/p/address-sanitizer/issues/detail?id=105

llvm-svn: 163301
2012-09-06 09:38:27 +00:00
Alexey Samsonov 36853a7a3b [ASan] actually remove old makefile
llvm-svn: 163300
2012-09-06 09:30:09 +00:00
Alexey Samsonov fdff4a8e0b [TSan] add support for running external symbolizer other than addr2line (for testing purposes)
llvm-svn: 163297
2012-09-06 08:48:43 +00:00
Alexey Samsonov 3ebf2fa654 [Sanitizer] remove unused field
llvm-svn: 163296
2012-09-06 08:47:38 +00:00
Alexey Samsonov ac87a5bddc [ASan] Nuke output_tests/ in favor of lit_tests/. Stop using Makefile.old.
llvm-svn: 163294
2012-09-06 06:39:02 +00:00
Kostya Serebryany ae350f66d4 [asan] increase the maximal size of malloc/free stack
llvm-svn: 163291
2012-09-06 04:46:47 +00:00
Alexey Samsonov f6d2125829 [Sanitizer] implement readlink as syscall on Linux
llvm-svn: 163213
2012-09-05 14:48:24 +00:00
Alexey Samsonov 2947b84743 [ASan] Hack ASan lit config to allow running lit on tests manually
llvm-svn: 163209
2012-09-05 10:41:25 +00:00
Kostya Serebryany 4d45b9b784 [asan] added tests for asan-initialization-order, patch by Reid Watson
llvm-svn: 163207
2012-09-05 09:07:02 +00:00
Alexey Samsonov d83ccd067d [ASan] hoist more compile flags to SANITIZER_COMMON_CFLAGS var and add the rest of flags/defs from old Makefile to CMake
llvm-svn: 163204
2012-09-05 09:00:03 +00:00
Alexey Samsonov ab2c76711d [ASan] Add CMake support for building ASan benchmarks
llvm-svn: 163201
2012-09-05 08:07:18 +00:00
Alexey Samsonov c402cb62fd [ASan] Add print_full_thread_history runtime option (on by default) that prints all full thread creation paths for threads involved in ASan error report
llvm-svn: 163200
2012-09-05 07:37:15 +00:00
Alexey Samsonov ceffb021c5 [Sanitizer] Remove implicit conversion of InternalScopedBuffer<T> to T*
llvm-svn: 163197
2012-09-05 07:23:44 +00:00
Alexey Samsonov 6f696f4d17 [Sanitizer] Support for reading inlined frames from llvm-symbolizer
llvm-svn: 163140
2012-09-04 15:34:43 +00:00
Alexey Samsonov f2ce35fc30 [compiler-rt] Recurse into 'utils' directory in CMake build of compiler-rt, enable build of llvm-symbolizer binary (currently for one target only)
llvm-svn: 163138
2012-09-04 14:52:21 +00:00
Alexey Samsonov 0342b473b1 [Sanitizer] llvm-symbolizer util: make it more conforming to LLVM code style, and support fetching inlining info
llvm-svn: 163133
2012-09-04 11:42:07 +00:00
Dmitry Vyukov 49dd68ae7c tsan: do not crash with obscure message if a user passes invalid arguments to malloc/free/memset/etc
llvm-svn: 163092
2012-09-02 12:04:51 +00:00
Dmitry Vyukov b7f1852140 tsan: insert cfi directives into assembly (not fully working for now, though)
llvm-svn: 163090
2012-09-02 11:24:07 +00:00
Dmitry Vyukov 72cddf33d9 tsan: more robust current thread stack restoration
llvm-svn: 163089
2012-09-02 11:23:39 +00:00
Dmitry Vyukov 46ca1fb404 tsan: better diagnostics for mutex misuse
llvm-svn: 163060
2012-09-01 12:13:18 +00:00
Dmitry Vyukov cbc303006c tsan: fix crash when users pass insane mutex addresses in dynamic annotations
llvm-svn: 163016
2012-08-31 20:02:33 +00:00
Dmitry Vyukov 318f77749e tsan: add "as if synchronized via sleep" feature
llvm-svn: 163006
2012-08-31 17:27:49 +00:00
Dmitry Vyukov 179e5ddae1 tsan: fix windows build (2)
llvm-svn: 162997
2012-08-31 14:11:33 +00:00
Dmitry Vyukov fa90fa357e tsan: fix windows build (1)
llvm-svn: 162996
2012-08-31 14:01:33 +00:00
Dmitry Vyukov bead8f1e3f tsan: slightly optimize mutex unlock
llvm-svn: 162995
2012-08-31 13:42:28 +00:00
Dmitry Vyukov 6f6ba43271 tsan: more precise handling of atomic_store(memory_order_release)
llvm-svn: 162994
2012-08-31 13:22:13 +00:00
Dmitry Vyukov ef8d1944b8 tsan: improve stack depot
llvm-svn: 162993
2012-08-31 12:47:44 +00:00
Kostya Serebryany d19c8cb2cc [tsan] locate the auxilary space for tsan's Allocator64 after the main region, not before. This simplifies the shadow mappings
llvm-svn: 162991
2012-08-31 12:41:00 +00:00
Alexey Samsonov 3222dad6e3 [Sanitizer] fix overloaded operator error
llvm-svn: 162990
2012-08-31 11:43:01 +00:00
Alexey Samsonov fd0a6e6030 [compiler-rt] fixup for r162988 - remove accidentally commited file
llvm-svn: 162989
2012-08-31 11:13:38 +00:00
Alexey Samsonov 704f71616d [compiler-rt] Move draft code for llvm-symbolizer to compiler-rt/utils/llvm-symbolizer after chandlerc's suggestion
llvm-svn: 162988
2012-08-31 11:12:10 +00:00
Alexey Samsonov e70ed73d1f [Sanitizer] Remove some calls to libc malloc from symbolizer
llvm-svn: 162987
2012-08-31 11:07:52 +00:00
Alexey Samsonov 329eae86ef [Sanitizer] Resolve fixme: break dependency of sanitizer_common tests on TSan RTL
llvm-svn: 162984
2012-08-31 10:15:44 +00:00
Alexey Samsonov 79b36285ca [Sanitizer] Make lint checking a standalone script in sanitizer_common
llvm-svn: 162982
2012-08-31 08:36:36 +00:00
Alexey Samsonov de827cb42b [Sanitizer] Remove lint checkers from our old makefiles in favor of buildbot
llvm-svn: 162981
2012-08-31 08:10:28 +00:00
Alexey Samsonov 66ca36a564 [TSan] Fix style warinings in output test
llvm-svn: 162980
2012-08-31 08:00:37 +00:00
Alexey Samsonov c3a8119a41 Whitespace/lint
llvm-svn: 162909
2012-08-30 14:22:21 +00:00
Dmitry Vyukov b244c46c66 tsan: speed up allocator64 GetBlockBegin()
llvm-svn: 162908
2012-08-30 13:55:43 +00:00
Dmitry Vyukov 7af8a3a83d tsan: simplify TSAN_HISTORY_SIZE code
llvm-svn: 162905
2012-08-30 13:29:11 +00:00
Dmitry Vyukov 191f2f7cdb tsan: use stack depot to describe heap blocks
llvm-svn: 162902
2012-08-30 13:02:30 +00:00
Dmitry Vyukov f4792878c4 asan/tsan: first version of "stack depot"
llvm-svn: 162897
2012-08-30 10:02:48 +00:00
Alexey Samsonov 608a4b5def [ASan] fix flakiness of Linux-specific clone_test: waitpid should better be provided with __WCLONE option, otherwise it didn't wait for the subprocess, returned -1, and we went crushing the subprocess stack
llvm-svn: 162842
2012-08-29 15:48:14 +00:00
Alexander Potapenko 5a9b616d6b For invalid pointers passed to free_common check whether they are actually skewed to hold an additional CFAllocatorRef.
If so, fix the pointer and pass it to asan_free.

See http://code.google.com/p/address-sanitizer/issues/detail?id=70 for more background.

llvm-svn: 162839
2012-08-29 12:36:24 +00:00
Kostya Serebryany d0d96bfb86 [asan/tsan] use InternalScopedBuffer instead of stack arrays. Use mmap inseted of InternalAlloc in InternalScopedBuffer
llvm-svn: 162834
2012-08-29 08:40:36 +00:00
Kostya Serebryany 4310fe35ea [tsan] fix tsan's Makefile.old -- our build bot still uses it (hopefully, will soon migrate to cmake completely)
llvm-svn: 162832
2012-08-29 08:21:09 +00:00
Kostya Serebryany e4d9c7b940 [asan] fix asan's Makefile.old -- our build bot still uses it (hopefully, will soon migrate to cmake completely)
llvm-svn: 162831
2012-08-29 08:06:27 +00:00
Chandler Carruth 1aa4fef601 Relocate the external headers provided by ASan and the common sanitizer
library.

These headers are intended to be available to user code when built with
AddressSanitizer (or one of the other sanitizer's in the future) to
interface with the runtime library. As such, they form stable external
C interfaces, and the headers shouldn't be located within the
implementation.

I've pulled them out into what seem like fairly obvious locations and
names, but I'm wide open to further bikeshedding of these names and
locations.

I've updated the code and the build system to cope with the new
locations, both CMake and Makefile. Please let me know if this breaks
anyone's build.

The eventual goal is to install these headers along side the Clang
builtin headers when we build the ASan runtime and install it. My
current thinking is to locate them at:

  <prefix>/lib/clang/X.Y/include/sanitizer/common_interface_defs.h
  <prefix>/lib/clang/X.Y/include/sanitizer/asan_interface.h
  <prefix>/lib/clang/X.Y/include/sanitizer/...

But maybe others have different suggestions?

Fixing the style of the #include between these headers at least unblocks
experimentation with installing them as they now should work when
installed in these locations.

llvm-svn: 162822
2012-08-29 02:27:54 +00:00
Chandler Carruth c1c9d5818f Some flag cleanup for the sanitizer runtimes.
This hoists most of the CFLAGS into a common variable. It also adds
detection for -Wno-c99-extensions and uses it to silence a pile of
warnings.

Finally, it switches to the proper flag -rdynamic.

With this, the cmake build is warning free on my bootstrap Linux build.

llvm-svn: 162809
2012-08-29 00:13:11 +00:00
Kostya Serebryany 66a37f3aef [asan] one more fix for windows build
llvm-svn: 162762
2012-08-28 15:25:07 +00:00
Kostya Serebryany 3a6af66a0e [asan] fix the cmake build (hopefully)
llvm-svn: 162760
2012-08-28 14:48:28 +00:00
Kostya Serebryany 327d0a5666 [asan] actually doing 'svn add' helps
llvm-svn: 162759
2012-08-28 14:27:06 +00:00
Kostya Serebryany 27dcb2379f [asan] fix Windows build
llvm-svn: 162758
2012-08-28 14:14:30 +00:00
Kostya Serebryany 7575968aa4 [asan] actually move StackTrace to sanitizer_common
llvm-svn: 162757
2012-08-28 14:11:57 +00:00
Kostya Serebryany a57b4e823a [asan] even more refactoring to move StackTrace to sanitizer_common
llvm-svn: 162754
2012-08-28 13:49:49 +00:00
Kostya Serebryany ee92877f17 [asan] more refactoring to move StackTrace to sanitizer_common
llvm-svn: 162752
2012-08-28 13:25:55 +00:00
Alexey Samsonov 50e8a6a7df [ASan] CMake build: share more compile flags between instrumented and non-instrumented tests
llvm-svn: 162750
2012-08-28 12:38:17 +00:00
Kostya Serebryany ccc470c499 [asan] some renaming before we move StackTrace into sanitizer_common (part 2)
llvm-svn: 162748
2012-08-28 11:54:51 +00:00
Kostya Serebryany 6b0d775229 [asan] some renaming before we move StackTrace into sanitizer_common
llvm-svn: 162747
2012-08-28 11:54:30 +00:00
Kostya Serebryany bb6f165952 [asan] get rid of AsanPrintf in favor of Printf from sanitizer_common
llvm-svn: 162746
2012-08-28 11:34:40 +00:00
Kostya Serebryany 4bfe954d14 [asan] improve SetErrorReportCallbackTest to actually catch missing functionality in __asan_set_error_report_callback
llvm-svn: 162745
2012-08-28 11:21:01 +00:00
Alexey Samsonov 384de7c9c9 [Sanitizer] Allow to create stub MemoryMappingLayout on Windows
llvm-svn: 162742
2012-08-28 08:27:08 +00:00
Alexey Samsonov cae486c063 [Sanitizer] One more method stub for Windows
llvm-svn: 162739
2012-08-28 07:22:24 +00:00
Alexey Samsonov d1d1a814b7 [Sanitizer] align allocation sizes in low level allocator
llvm-svn: 162676
2012-08-27 14:51:36 +00:00
Evgeniy Stepanov f72f08affc CMake build rules for ASan/Android runtime.
llvm-svn: 162675
2012-08-27 14:28:27 +00:00
Alexey Samsonov 28d8be2d86 [Sanitizer] One more try to fix Windows build
llvm-svn: 162674
2012-08-27 14:08:53 +00:00
Alexey Samsonov e67a5dd8e1 [Sanitizer] Use low-level allocator in flag parsing to avoid calling malloc() before ASan/TSan initialization is done
llvm-svn: 162673
2012-08-27 14:04:54 +00:00
Alexey Samsonov cc62211fbf [Sanitizer] Rename ProcessMaps to MemoryMappingLayout and fix Windows build by providing stub implementation
llvm-svn: 162671
2012-08-27 13:48:48 +00:00
Alexey Samsonov c74289db2b [ASan] add missing build dependency on sanitizer_common headers
llvm-svn: 162670
2012-08-27 13:47:28 +00:00
Evgeniy Stepanov be01398612 A few tweaks for building ASanRT against Android NDK.
llvm-svn: 162666
2012-08-27 11:15:55 +00:00
Alexey Samsonov dc8d1f1039 [Sanitizer] move low-level (mmap-based) allocator to sanitizer_common
llvm-svn: 162663
2012-08-27 09:30:58 +00:00