Commit Graph

691 Commits

Author SHA1 Message Date
Alexander Potapenko 47a03a2ebe [ASan] Fix another FileCheck pattern to be c++filt-proof.
llvm-svn: 170878
2012-12-21 10:48:30 +00:00
Alexey Samsonov 53a965e125 [Sanitizer] Don't implicitly add object files to the list of dependencies when building compiler_rt unittests. Fix sanitizer_common and asan build rules accordingly. This also fixes check-sanitizer command on Ninja.
llvm-svn: 170870
2012-12-21 08:56:14 +00:00
Kostya Serebryany 3674c6b13b [asan] add a flag alloc_dealloc_mismatch (off by default for now) which finds malloc/delete, new/free, new/delete[], etc mismatches
llvm-svn: 170869
2012-12-21 08:53:59 +00:00
Richard Relph 27cfe1c1b5 Clean up some warnings that become errors. Seen in Xcode.
llvm-svn: 170843
2012-12-21 05:17:13 +00:00
Alexey Samsonov 19e8b7ecba [ASan] remove duplicate entry in shadow byte legend
llvm-svn: 170701
2012-12-20 15:19:10 +00:00
Kostya Serebryany c0d8ca5537 [asan] asan_allocator2: implement memalign
llvm-svn: 170697
2012-12-20 14:35:06 +00:00
Alexander Potapenko 5e9e51874e [ASan] Make the FileCheck pattern more c++filt-resistant.
This test didn't pass for me locally because of "T0's stack" being converted to "T0'short stack" by c++filt.
Strange enough this doesn't show up on our bots.

llvm-svn: 170690
2012-12-20 13:17:49 +00:00
Kostya Serebryany 8627af3779 [asan] add memalign tests
llvm-svn: 170687
2012-12-20 12:11:52 +00:00
Kostya Serebryany 9da3dd0415 [asan] add a flag poison_heap to allow better allocator benchmarking, implemenet malloc_stats() on Linux
llvm-svn: 170685
2012-12-20 11:54:21 +00:00
Kostya Serebryany ab8d33184d [asan] asan_allocator2: make all remaining tests pass.
llvm-svn: 170680
2012-12-20 08:53:41 +00:00
Kostya Serebryany f855bbc2f3 [asan] add ASAN_PCRE_DOTALL to two new multi-line regexps
llvm-svn: 170677
2012-12-20 07:26:33 +00:00
Alexey Samsonov 74cbc4ccd7 [ASan] don't use -fsanitize=address linker flag for unit tests on Android
llvm-svn: 170670
2012-12-20 06:16:50 +00:00
Alexey Samsonov 826b324cb0 [ASan] explicitly link with dynamic ASan runtime when building unittests on Android
llvm-svn: 170552
2012-12-19 15:52:30 +00:00
Alexey Samsonov 85bd73d259 [ASan] Support building both 32- and 64-bit unit tests if we can target both architectures
llvm-svn: 170549
2012-12-19 15:17:23 +00:00
Kostya Serebryany dcdeecb257 [asan] asan_allocator2: add mmap/munmap stats
llvm-svn: 170548
2012-12-19 14:56:38 +00:00
Alexey Samsonov b29d37bea5 [ASan] make sure Android unittests depend on ASan runtime
llvm-svn: 170543
2012-12-19 13:46:58 +00:00
Alexey Samsonov ca7fcf2354 Significantly change the way we build ASan unittests in CMake
build tree. Now just-built Clang is used to:
  1) compile instrumented sources (as before);
  2) compile non-instrumented sources;
  3) compile our own instrumented version of googletest;
  4) link it all together using -fsanitize=address flag
     (instead of trying to copy linker behavior in
      CMake build rules).

This makes ASan unittests pretty much self-consistent
and independent of other LLVM libraries.

llvm-svn: 170541
2012-12-19 12:33:39 +00:00
Alexander Potapenko 7e1fcb8136 [ASan] Change the boilerplate check in the libdispatch tests to fix them.
llvm-svn: 170531
2012-12-19 11:26:41 +00:00
Kostya Serebryany d5c46cb2f7 [asan] print the shadow bytes in different colors and also output the shadow byte legend
llvm-svn: 170520
2012-12-19 09:53:32 +00:00
Kostya Serebryany 479f05b276 [asan] asan_allocator2: improve FindHeapChunkByAddress to find memory chunks to the left of a given address. Almost all tests pass with the new allocator now, only 6 are left to fix.
llvm-svn: 170511
2012-12-19 08:32:50 +00:00
Kostya Serebryany bad01549b6 [asan] add some colors to asan output if printing to tty (following ubsan)
llvm-svn: 170418
2012-12-18 07:32:16 +00:00
Kostya Serebryany d6aec5a8e0 [asan] asan_allocator2: implement malloc_usable_size and fix 32-bit
llvm-svn: 170339
2012-12-17 14:57:25 +00:00
Kostya Serebryany ec339f70d6 [asan] asan_allocator2: don't use TLS and fix calloc
llvm-svn: 170329
2012-12-17 13:43:47 +00:00
Kostya Serebryany 1aae0e67fa [asan] asan_alocator2: implement quarantine and Reallocate
llvm-svn: 170315
2012-12-17 09:06:25 +00:00
Kostya Serebryany 41ffe3db59 [asan] implement AsanChunkFifoList via IntrusiveList<AsanChunk>
llvm-svn: 170313
2012-12-17 07:54:29 +00:00
Kostya Serebryany c510015419 [asan] asan_alocator2: implement free() stacks and actually make malloc/free stacks work
llvm-svn: 170310
2012-12-17 06:31:53 +00:00
Kostya Serebryany 025d64a1b9 [asan] more asan_allocator2 code: record the allocation stack trace, implement calloc/etc
llvm-svn: 170193
2012-12-14 13:16:19 +00:00
Kostya Serebryany 7dfb168eb8 [asan] more asan_allocator2 code: actually un/poison shadow on malloc/free
llvm-svn: 170190
2012-12-14 12:15:09 +00:00
Kostya Serebryany bb69879d09 [asan] pop the internal stack frames in SlowUnwindStack, extend the test to check this
llvm-svn: 170124
2012-12-13 12:31:55 +00:00
Kostya Serebryany 704c1cb23a [asan] extend overflow-in-qsort.cc to check both unwind kinds. One more test for SlowUnwind. Move both to Linux dir (no slow unwind on Mac)
llvm-svn: 170122
2012-12-13 11:47:49 +00:00
Alexey Samsonov 78ba6c1b37 [ASan] Allow leading underscore in function name to please output tests on Mac
llvm-svn: 170121
2012-12-13 11:11:28 +00:00
Alexey Samsonov 340de607a3 [ASan] don't print memory stats on CheckFailed
llvm-svn: 170120
2012-12-13 11:09:26 +00:00
Kostya Serebryany 060bfab568 [asan] fix win build
llvm-svn: 170119
2012-12-13 10:03:50 +00:00
Kostya Serebryany 6852bce2f2 [asan] fix mac build
llvm-svn: 170118
2012-12-13 10:01:20 +00:00
Kostya Serebryany baf583c443 [asan] add two asan flags: fast_unwind_on_fatal and fast_unwind_on_malloc to allow using the slow CFI-based unwinder
llvm-svn: 170117
2012-12-13 09:34:23 +00:00
Alexey Samsonov 5a26e1fbf2 [Sanitizer] Add new header - sanitizer_platform_interceptors.h, which should define whether or not given function should be intercepted on a given platform.
llvm-svn: 170115
2012-12-13 08:50:16 +00:00
Alexey Samsonov 447e2f2f19 [ASan] one more macro for 'read' interception
llvm-svn: 170114
2012-12-13 08:36:13 +00:00
Alexey Samsonov 65c14f5314 [ASan] more macro for conditional interception of pread functions
llvm-svn: 170112
2012-12-13 08:10:23 +00:00
Kostya Serebryany ad81738822 [asan] add asan/lit_tests/overflow-in-qsort.cc (not fully working yet)
llvm-svn: 170111
2012-12-13 08:05:03 +00:00
Kostya Serebryany 07bb3925b0 [sanitizer] replace size_t with SIZE_T in interceptors (same for ssize_t, off_t and off64_t). This is done to avoid confusion and to make the code work with compilers that define size_t w/o any includes (MSVC)
llvm-svn: 170103
2012-12-13 06:31:40 +00:00
Kostya Serebryany eec22a628b [asan] fix the Android build (pread64 interceptor again)
llvm-svn: 170098
2012-12-13 05:27:08 +00:00
Alexander Potapenko d27e4861bf [ASan] Fix test expectations for strcat/strncat.
llvm-svn: 169987
2012-12-12 16:10:46 +00:00
Kostya Serebryany e29883c10a [sanitizer] add OnMap/OnUmap callbacks to the allocator interface
llvm-svn: 169985
2012-12-12 14:32:18 +00:00
Alexander Potapenko dab1a61011 [ASan] Enhance OOB tests to check for access type (read or write).
llvm-svn: 169974
2012-12-12 12:59:47 +00:00
Alexander Potapenko 602a09fa52 [ASan] Fixed a compiler warning.
llvm-svn: 169972
2012-12-12 12:32:57 +00:00
Alexander Potapenko ada2fbd2d4 [ASan] fix compilation on Mac.
llvm-svn: 169969
2012-12-12 11:52:26 +00:00
Kostya Serebryany 28a32c89e9 [asan] fix android build and lint
llvm-svn: 169968
2012-12-12 11:37:23 +00:00
Kostya Serebryany 9a58d399c7 [asan] add sanitizer_common/sanitizer_common_interceptors.h with pread/pread64/read interceptors. Use it in asan. Add asan tests for pread/etc. Add FIXME to tsan/msan interceptors
llvm-svn: 169966
2012-12-12 09:54:35 +00:00
Kostya Serebryany 90a59fafc0 [asan] more code for asan_allocator2: basic Allocate/Deallocate code
llvm-svn: 169864
2012-12-11 14:41:31 +00:00
Timur Iskhodzhanov 4c97604415 ASan: fix lint problems introduced
llvm-svn: 169857
2012-12-11 12:24:41 +00:00