Alexey Samsonov
de443c5002
[UBSan] Add returns-nonnull sanitizer.
...
Summary:
This patch adds a runtime check verifying that functions
annotated with "returns_nonnull" attribute do in fact return nonnull pointers.
It is based on suggestion by Jakub Jelinek:
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20140623/223693.html .
Test Plan: regression test suite
Reviewers: rsmith
Reviewed By: rsmith
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D4849
llvm-svn: 215485
2014-08-13 00:26:40 +00:00
Alexey Samsonov
b9ec65cd4d
[Sanitizer] Kill deprecated allocator interfaces in ASan, MSan and TSan in favor of
...
a unified interface in <sanitizer/allocator_interface.h>.
llvm-svn: 215469
2014-08-12 20:28:20 +00:00
Alexey Samsonov
68b9e74592
[CMake] Determine which compiler-rt libraries are supported on
...
a given platform in a top-level CMakeLists.txt to use it both
in lib/ and in test/ subdirectories. Move architecture/platform
checks to config-ix.
llvm-svn: 215247
2014-08-08 22:01:20 +00:00
Timur Iskhodzhanov
255958391d
[ASan/Win] Print out a big warning and continue without checking for success if SymInitialize() fails
...
llvm-svn: 215203
2014-08-08 13:25:55 +00:00
Evgeniy Stepanov
f5c1f8ac84
[sanitizer] Intercept timerfd_settime, timerfd_gettime.
...
llvm-svn: 215112
2014-08-07 14:21:42 +00:00
Viktor Kutuzov
c68a37c531
Add FreeBSD support to the address sanitizer's malloc_context_size.cc test case
...
Differential Revision: http://reviews.llvm.org/D4665
llvm-svn: 215081
2014-08-07 04:58:41 +00:00
Dmitry Vyukov
70db9d4d72
tsan: allocate vector clocks using slab allocator
...
Vector clocks is the most actively allocated object in tsan runtime.
Current internal allocator is not scalable enough to handle allocation
of clocks in scalable way (too small caches). This changes transforms
clocks to 2-level array with 512-byte blocks. Since all blocks are of
the same size, it's possible to cache them more efficiently in per-thread caches.
llvm-svn: 214912
2014-08-05 18:45:02 +00:00
Timur Iskhodzhanov
0575694729
[ASan/Win] Handle SEH exceptions even with -GS
...
This is a follow-up to r213654, r213656, r213667 and r213668.
llvm-svn: 214861
2014-08-05 13:26:26 +00:00
Alexander Kornienko
c3f7bcbd48
The test doesn't export ASAN_OPTIONS, so $ASAN_OPTIONS should not be used in RUN lines.
...
llvm-svn: 214855
2014-08-05 11:12:23 +00:00
Alexey Samsonov
ff24fd2516
[UBSan] Allow to suppress reports from vptr checker for specified types.
...
Based on http://reviews.llvm.org/D4702 by Byoungyoung Lee!
llvm-svn: 214833
2014-08-05 01:24:22 +00:00
Kostya Serebryany
1cd57ebb6b
[asan] intercept sized operator delete[]
...
llvm-svn: 214704
2014-08-04 10:10:50 +00:00
Viktor Kutuzov
f164bee0e0
Add FreeBSD support to the address sanitizer's deep_stack_uaf.cc test case
...
Differential Revision: http://reviews.llvm.org/D4668
llvm-svn: 214544
2014-08-01 19:37:05 +00:00
Ehsan Akhgari
9e5b6a08d4
[ASan] Support the asan_loadN/asan_storeN functions in the DLL thunk library
...
Summary:
This is required for linking DLLs with large functions exceeding
san-instrumentation-with-call-threshold. One such function is
vp9_fdct16x16_sse2 in libvpx.
Reviewers: timurrrr
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D4758
llvm-svn: 214532
2014-08-01 18:04:53 +00:00
Alexey Samsonov
77f646c623
[Sanitizer] Make "suppressions" and "print_suppressions" common runtime flags.
...
No functionality change.
llvm-svn: 214343
2014-07-30 21:33:04 +00:00
Evgeniy Stepanov
c3478490ed
[asan] XFAIL sized-delete test on Android.
...
llvm-svn: 214303
2014-07-30 12:39:30 +00:00
Kostya Serebryany
e7532e59c0
[asan] rename new-delete-size-mismatch to new-delete-type-mismatch and make the report more verbose
...
llvm-svn: 214299
2014-07-30 11:20:37 +00:00
Kostya Serebryany
69852a843c
[asan] add a feature to detect new-delete-size-mismatch (when used with -Xclang -fsized-deallocation). Not yet on Mac. Also, remove some unused code.
...
llvm-svn: 214296
2014-07-30 09:48:23 +00:00
Evgeniy Stepanov
5c72938c39
[msan] Use SIGHUP instead of SIGUSR1 in test.
...
Apparently, SIGUSR1 does not work on x86_64+ArchLinux for some reason.
For more details, see:
https://groups.google.com/forum/#!topic/llvm-dev/4Ag1FF4M2Dw
llvm-svn: 214289
2014-07-30 08:17:58 +00:00
Alexey Samsonov
8b9d18e4fe
[UBSan] Try to enable pipefail in UBSan lit tests to make them behave more predictably
...
llvm-svn: 214149
2014-07-29 00:30:01 +00:00
Dmitry Vyukov
5b1b02eb29
tsan: improve shadow flush benchmark
...
allow to specify access stride
llvm-svn: 214029
2014-07-26 16:40:33 +00:00
Alexander Potapenko
08cfa79d87
[lsan] Follow-up for r213518: replace MAP_ANONYMOUS with MAP_ANON
...
(despite it's deprecated on Linux) to remove the ifdefs.
llvm-svn: 213929
2014-07-25 08:57:51 +00:00
Viktor Kutuzov
545ff90d47
Add FreeBSD support to Asan test cases that use mmap() with MAP_ANON
...
Differential Revision: http://reviews.llvm.org/D4561
llvm-svn: 213858
2014-07-24 12:05:13 +00:00
Alexey Samsonov
bfa711c8b0
[UBSan] Add the ability to dump call stacks to -fsanitize=vptr
...
This change introduces the first UBSan-specific runtime flag: print_stacktrace
(off by default). It can be set in UBSAN_OPTIONS to unwind and print call stacks
in addition to diagnostic messages. For now these stacks are printed only
in vptr checker.
This change is based on http://reviews.llvm.org/D4410 by Byoungyoung Lee!
llvm-svn: 213783
2014-07-23 18:44:54 +00:00
Alexey Samsonov
cd875aa551
[UBSan] Introduce UBSAN_OPTIONS environment variable.
...
If UBSan is run in a standalone mode (w/o any other sanitizer), it
still uses functions from sanitizer_common, some of which depend on
the value of runtime flags. Allow to override the default values of these
flags with UBSAN_OPTIONS variable. In particular, UBSAN_OPTIONS=symbolize=0
can be used to turn off online symbolization.
llvm-svn: 213782
2014-07-23 18:32:55 +00:00
Timur Iskhodzhanov
4bea5a83bd
[ASan/Win tests] Bring back -GS- as SEH tests fail otherwise
...
llvm-svn: 213668
2014-07-22 16:09:11 +00:00
Timur Iskhodzhanov
74487a7c32
[ASan/Win tests] Don't generate debug info where it is not needed
...
Otherwise it results in flaky tests
llvm-svn: 213667
2014-07-22 15:53:10 +00:00
Timur Iskhodzhanov
cb5bf58f3d
[ASan/Win] Add SEH handling to the DLL thunk as well
...
llvm-svn: 213656
2014-07-22 14:02:53 +00:00
Timur Iskhodzhanov
6d4a6cd68f
[ASan/Win] Handle SEH exceptions (best-effort, similar to longjmp)
...
llvm-svn: 213654
2014-07-22 13:44:18 +00:00
Timur Iskhodzhanov
f2b96e3009
[ASan/Win] Add handling of C++ exceptions to the RTL
...
Also add a longjmp() test
llvm-svn: 213649
2014-07-22 12:37:51 +00:00
Timur Iskhodzhanov
8f41c3eb74
[ASan] Simplify exception/longjmp tests even further
...
llvm-svn: 213646
2014-07-22 12:25:51 +00:00
Timur Iskhodzhanov
723c81ff80
[ASan] Split throw_catch tests into two files: throw/catch + longjmp
...
Also add some more assertions into these tests
llvm-svn: 213642
2014-07-22 11:46:24 +00:00
Alexey Samsonov
a89ad664b1
[ASan] Fix __asan_describe_address and add a test for it.
...
llvm-svn: 213583
2014-07-21 21:33:46 +00:00
Alexander Potapenko
96008ea849
[lsan] Allow using ucontext.h in the test on OSX.
...
llvm-svn: 213523
2014-07-21 13:35:09 +00:00
Alexander Potapenko
e816521c00
[lsan] Define MAP_ANONYMOUS as MAP_ANON for OSX in the test.
...
llvm-svn: 213518
2014-07-21 13:12:44 +00:00
Alexander Potapenko
4789f63bf3
[lsan] Use a more standard-conformant sched_yield() instead of pthread_yield().
...
There's no pthread_yield() on OSX (only sched_yield() and pthread_yield_np()).
llvm-svn: 213516
2014-07-21 13:01:06 +00:00
Viktor Kutuzov
838afd799d
Add FreeBSD support to the address sanitizer's waitid.cc test case
...
Differential Revision: http://reviews.llvm.org/D4422
llvm-svn: 213368
2014-07-18 12:02:42 +00:00
Timur Iskhodzhanov
bdf23a51b1
[ASan/Win] Handle situations when the client app has used DbgHelp before
...
Reviewed at http://reviews.llvm.org/D4533
llvm-svn: 213151
2014-07-16 14:11:02 +00:00
Timur Iskhodzhanov
5d96f44da1
[ASan] Adjust 'sed' invocation to work on OS X
...
This is a follow-up to r213053
llvm-svn: 213144
2014-07-16 12:56:47 +00:00
Viktor Kutuzov
4a9638324a
Add FreeBSD support to the address sanitizer's assign_large_valloc_to_global.cc test case
...
Differential Revision: http://reviews.llvm.org/D4525
llvm-svn: 213135
2014-07-16 10:14:01 +00:00
Viktor Kutuzov
f7dfafe712
Add FreeBSD support to the address sanitizer's atexit_stats.cc test case
...
Differential Revision: http://reviews.llvm.org/D4524
llvm-svn: 213134
2014-07-16 10:05:29 +00:00
Viktor Kutuzov
39c28e86a6
Remove explicit references to libdl from Asan test cases
...
Differential Revision: http://reviews.llvm.org/D4499
llvm-svn: 213131
2014-07-16 09:53:00 +00:00
Viktor Kutuzov
82041bbc08
Add FreeBSD support to the address sanitizer's null_deref.cc test case
...
Differential Revision: http://reviews.llvm.org/D4421
llvm-svn: 213130
2014-07-16 09:37:40 +00:00
Kuba Brecka
58f44dce96
[ASan] Add ASan debugging API to get malloc/free stack traces and shadow memory mapping info
...
Reviewed at http://reviews.llvm.org/D4466
llvm-svn: 213080
2014-07-15 17:33:23 +00:00
Evgeniy Stepanov
bce3cf8074
[sanitizer] De-flake one test.
...
llvm-svn: 213054
2014-07-15 08:46:51 +00:00
Timur Iskhodzhanov
9e4580c8ee
[ASan] Only define macros in asan_init_version.h, move the __asan_init declaration back to asan_interface_internal.h
...
This fixes the issues we've uncovered after landing r212815.
Reviewed at http://reviews.llvm.org/D4500
llvm-svn: 213053
2014-07-15 08:16:04 +00:00
Timur Iskhodzhanov
0aad92e0d6
[ASan/Win] Add a test for the case when dll_thunk is linked twice to the same DLL
...
This is a test case for r212815.
llvm-svn: 212959
2014-07-14 17:04:03 +00:00
Kostya Serebryany
6cdb0b8051
[tsan] honour XFAIL in tsan/test_output.sh
...
llvm-svn: 212952
2014-07-14 16:03:13 +00:00
Kostya Serebryany
850a837cf2
[tsan] add a printf to a test
...
llvm-svn: 212951
2014-07-14 15:52:33 +00:00
Kostya Serebryany
94b6801839
[tsan] add a currently-failing test with a must-deadlock
...
llvm-svn: 212944
2014-07-14 14:27:21 +00:00
Timur Iskhodzhanov
9b8fa878ea
[ASan] Fix a couple of nits in NULL deref tests
...
This is a follow-up to r212807
llvm-svn: 212943
2014-07-14 14:26:35 +00:00