Evgeniy Stepanov
86c077b3a2
[asan] Remove runtime assembly helpers.
...
Remove helper functions that were used in assembly instrumentation.
Patch by Yuri Gorshenin.
llvm-svn: 212456
2014-07-07 13:59:12 +00:00
Dan Albert
1c71fde161
Exclude Android from the tests for valloc/pvalloc.
...
These functions are being removed from Android because they were removed
from POSIX 2004.
llvm-svn: 210962
2014-06-14 00:50:03 +00:00
Evgeniy Stepanov
3641cd43b2
[asan] Use -pthread instead of -lpthread in tests.
...
llvm-svn: 210255
2014-06-05 12:22:37 +00:00
Timur Iskhodzhanov
1b42b81549
[Sanitizers Win] Move duplicate Windows-specific compiler flags to a common CMake variable
...
Reviewed at http://reviews.llvm.org/D3952
llvm-svn: 209889
2014-05-30 12:42:57 +00:00
Timur Iskhodzhanov
82ee0433da
[ASan/Win] Use clang rather than clang-cl by default for lit tests. Make Windows-only tests explicitly use clang-cl.
...
Reviewed at http://reviews.llvm.org/D3893
llvm-svn: 209719
2014-05-28 08:38:13 +00:00
Kostya Serebryany
e1e9a4e2ec
[asan] fix a test following r209508
...
llvm-svn: 209509
2014-05-23 11:52:38 +00:00
Kostya Serebryany
e31d5b6a2c
[asan] relax the test for long double
...
llvm-svn: 209445
2014-05-22 14:50:14 +00:00
Evgeniy Stepanov
687933f55d
[asan] Fix x86 asm instrumentation to preserve flags.
...
This change also enables asm instrumentation in asan tests that was
accidentally disabled yearlier, and adds a sanity test for that.
Patch by Yuri Gorshenin.
llvm-svn: 209282
2014-05-21 08:21:14 +00:00
Timur Iskhodzhanov
930ffe94aa
[Sanitizer tests] Don't need to use -lstdc++ thanks to --driver-mode=g++
...
Reviewed at http://reviews.llvm.org/D3796
llvm-svn: 209115
2014-05-19 08:19:38 +00:00
Timur Iskhodzhanov
339e8c98f8
[Sanitizer tests] Add sanitizer_test_config.h to make the inclusion of gtest.h conditional
...
Reviewed at http://reviews.llvm.org/D3744
llvm-svn: 208696
2014-05-13 13:25:12 +00:00
Timur Iskhodzhanov
2e9136c2da
[Sanitizer/ASan tests] Automatically detect the presence of libstdc++
...
llvm-svn: 208695
2014-05-13 12:57:50 +00:00
Timur Iskhodzhanov
7d07fe20a0
[ASan tests] Add Windows-specific flags to lib/asan/tests/CMakeLists.txt
...
Reviewed at http://reviews.llvm.org/D3720
llvm-svn: 208682
2014-05-13 10:33:42 +00:00
Timur Iskhodzhanov
711269966c
[Sanitizer tests] Make simple pthread tests compile and pass on Windows
...
Reviewed at http://reviews.llvm.org/D3725
llvm-svn: 208674
2014-05-13 08:07:09 +00:00
Alexey Samsonov
1866b58885
[ASan] Split static ASan runtime in two parts: asan and asan_cxx.
...
asan_cxx containts replacements for new/delete operators, and should
only be linked in C++ mode. We plan to start building this part
with exception support to make new more standard-compliant.
See https://code.google.com/p/address-sanitizer/issues/detail?id=295
for more details.
llvm-svn: 208609
2014-05-12 18:39:22 +00:00
Timur Iskhodzhanov
a9e9e9d640
[ASan tests] Don't define __asan_default_options in tests on Windows as it is not supported
...
llvm-svn: 208575
2014-05-12 15:12:44 +00:00
Timur Iskhodzhanov
d5d5f6a8b9
[ASan tests] Exclude/simplify a bunch of tests to make them build on Windows
...
(This also requires D3720, D3725 and a few more small changes to land)
llvm-svn: 208573
2014-05-12 15:04:25 +00:00
Timur Iskhodzhanov
9bd988b33b
[ASan tests] Don't run FakeStack.CreateDestroy on Windows as it OOMs
...
llvm-svn: 208572
2014-05-12 14:49:17 +00:00
Timur Iskhodzhanov
9a205ed8ee
[ASan tests] Use the proper attribute on RunStrChrTest helper functions to avoid "unused function" warnings
...
llvm-svn: 208568
2014-05-12 14:31:57 +00:00
Timur Iskhodzhanov
e153347cc5
[ASan tests] Fix non-Windows breakage
...
llvm-svn: 208332
2014-05-08 15:59:35 +00:00
Timur Iskhodzhanov
21a22d34be
[ASan tests] More progress towards Windows support
...
llvm-svn: 208326
2014-05-08 15:13:26 +00:00
Timur Iskhodzhanov
48253ed689
[ASan tests] More progress towards Windows support
...
llvm-svn: 208325
2014-05-08 15:05:42 +00:00
Timur Iskhodzhanov
498052b8eb
[ASan tests] More progress towards Windows support
...
llvm-svn: 208323
2014-05-08 15:01:29 +00:00
Timur Iskhodzhanov
fddadefc33
[ASan tests] Auto-define ASAN_NEEDS_SEGV rather than hardcode it in cmake
...
llvm-svn: 208322
2014-05-08 14:53:59 +00:00
Timur Iskhodzhanov
76f43eecb0
[ASan] Update sanitizer_common and asan test_util headers to support building on Windows
...
llvm-svn: 208306
2014-05-08 12:43:33 +00:00
Viktor Kutuzov
f9eba2f51d
Fix building Asan and common sanitizers tests on FreeBSD 9.2
...
llvm-svn: 207408
2014-04-28 10:33:01 +00:00
Kostya Serebryany
74f8d65ae4
[asan] add one more mode to run asan tests with '-with-calls', i.e. using -mllvm -asan-instrumentation-with-call-threshold=0. This is very unfortunate since it effectively doubles the number of gunit asan tests that need to be built and run, but as long as we need out-lined calls (PR17409) I see no other way to test this workaround
...
llvm-svn: 206742
2014-04-21 10:31:35 +00:00
Evgeniy Stepanov
561c4db707
[asan] Reenable tests that should pass since PR19207 is fixed.
...
llvm-svn: 206593
2014-04-18 13:24:03 +00:00
Alexander Potapenko
da1c510ea6
[ASan] Change AddressSanitizer.LoadStoreCallbacks to use asan_malloc and asan_free.
...
Interceptors don't really work on OSX in asan_noinst_test.cc (this is more or less intentional),
so one shouldn't call intercepted functions in this test -- added a comment about this.
llvm-svn: 206477
2014-04-17 17:29:07 +00:00
Kostya Serebryany
664b1e2f9b
[asan] fix a bug in outlined asan checks and in the corresponding test (ouch)
...
llvm-svn: 206470
2014-04-17 14:38:25 +00:00
Kostya Serebryany
ae401ca5e7
[asan] add __asan_load1/__asan_store1/... callbacks to asan-rt; together with -mllvm -asan-instrumentation-with-call-threshold=N this will be a workaround for PR17409
...
llvm-svn: 206387
2014-04-16 13:52:28 +00:00
Alexey Samsonov
56b6ee9833
[ASan] Optional support for dynamic ASan runtime on Linux.
...
Based on http://llvm-reviews.chandlerc.com/D3042 by Yuri Gribov!
llvm-svn: 205308
2014-04-01 13:16:30 +00:00
Alexey Samsonov
c41ca6d31a
[CMake] Rename the variable
...
llvm-svn: 204602
2014-03-24 13:29:20 +00:00
Alexey Samsonov
1847401332
[CMake] Respect CMAKE_CXX_FLAGS in custom clang_compile commands
...
llvm-svn: 204593
2014-03-24 09:42:12 +00:00
Evgeniy Stepanov
ce002ad3b2
[asan] Disable setjmp/sigsetjmp tests.
...
Failing due to PR19207.
llvm-svn: 204590
2014-03-24 08:30:59 +00:00
Evgeniy Stepanov
d7f06ee3c7
[asan] Fix a comment.
...
llvm-svn: 204589
2014-03-24 08:27:31 +00:00
Alexey Samsonov
a2fdd8e253
[CMake] Fix build of ASan tests on Mac
...
llvm-svn: 204238
2014-03-19 14:45:40 +00:00
Alexey Samsonov
17703c1092
[CMake] Build sanitizer unit tests with -std=c++11
...
llvm-svn: 204234
2014-03-19 13:57:33 +00:00
Alexey Samsonov
32956d651a
[CMake] Make append_if semantics similar to those used in LLVM
...
llvm-svn: 203773
2014-03-13 09:31:36 +00:00
Alexey Samsonov
fefeecc7b0
[ASan] Better way to disable tests for functions unavailable on certain platforms
...
llvm-svn: 203224
2014-03-07 09:39:01 +00:00
Alexey Samsonov
d964e7cd81
[CMake] Test for libdl and libpthread presence
...
llvm-svn: 202847
2014-03-04 13:28:21 +00:00
Alexey Samsonov
a7c602ac29
A set of trivial changes to support sanitizers on FreeBSD.
...
Patch by Viktor Kutuzov!
llvm-svn: 202801
2014-03-04 08:55:41 +00:00
Joerg Sonnenberger
9d09e2fe90
Reapply r201910. MSVC gets __func__ defined explicitly, even though it
...
can't build anything here.
llvm-svn: 202297
2014-02-26 20:33:22 +00:00
Kostya Serebryany
78443cfda6
[asan] remove UB (comparison of two unrelated pointers) from a test
...
llvm-svn: 202266
2014-02-26 13:53:23 +00:00
Kostya Serebryany
cc92c79531
[asan] simplify the code that compute the shadow offset; get rid of two internal flags that allowed to override it. The tests pass, but still this change might break asan on some platform not covered by tests. If you see this, please submit a fix with a test.
...
llvm-svn: 202033
2014-02-24 13:40:24 +00:00
Reid Kleckner
324eee45a7
Revert "Replace __FUNCTION__ with __func__, the latter being standard C99/C++11."
...
This reverts commit r201910.
While __func__ may be standard in C++11, it was only recently added to
MSVC in 2013 CTP, and LLVM supports MSVC 2012. __FUNCTION__ may not be
standard, but it's *very* portable.
llvm-svn: 201916
2014-02-22 00:37:45 +00:00
Joerg Sonnenberger
b15779f307
Replace __FUNCTION__ with __func__, the latter being standard C99/C++11.
...
llvm-svn: 201910
2014-02-21 23:55:15 +00:00
Alexey Samsonov
11705b2f10
[CMake] break dependency between unit tests and runtimes in standalone build
...
llvm-svn: 201778
2014-02-20 12:03:56 +00:00
Evgeniy Stepanov
caaaac8c30
[asan] Disable asm instrumentation and tests on Mac.
...
Move asm tests to their own file.
llvm-svn: 201653
2014-02-19 09:14:39 +00:00
Evgeniy Stepanov
2169c6bba4
[asan] Added assembly functions for x86/amd64 asan.
...
These are runtime support functions for inline assembly instrumentation.
This is a re-submit of r201402.
Patch by Yuri Gorshenin.
llvm-svn: 201650
2014-02-19 08:30:39 +00:00
Alexey Samsonov
9a1ffce25a
[CMake] Simplify code for detecting/setting compiler flags
...
llvm-svn: 201543
2014-02-18 07:26:58 +00:00
Alexey Samsonov
9a70077b47
[ASan] Rename asan_runtime_libraries to asan. Re-enable tests on Android.
...
llvm-svn: 201417
2014-02-14 14:45:13 +00:00
Evgeniy Stepanov
0de2b9b1e2
[asan] Revert r201402, r201404.
...
Test fails in bootstrap build.
llvm-svn: 201411
2014-02-14 12:37:41 +00:00
Evgeniy Stepanov
f335bd9c69
[asan] Added assembly functions for x86/amd64 asan.
...
These are runtime support functions for inline assembly instrumentation.
Patch by Yuri Gorshenin.
llvm-svn: 201402
2014-02-14 11:55:53 +00:00
Evgeniy Stepanov
8978389a32
[asan] Enable SEGV handler on Android by default.
...
Seems stable enough.
Fixes null_deref.cc test.
llvm-svn: 201326
2014-02-13 13:43:47 +00:00
Evgeniy Stepanov
350fe4b1af
[asan] Android logging.
...
This change duplicates all ASan output to system log on Android.
llvm-svn: 199887
2014-01-23 11:34:41 +00:00
Evgeniy Stepanov
fe906a1df6
[asan] Restore lost -pie in Android tests.
...
llvm-svn: 199379
2014-01-16 13:11:37 +00:00
Evgeniy Stepanov
780d85a8ef
[asan] Remove leftover use of -fsanitize-address-zero-base-shadow.
...
llvm-svn: 199373
2014-01-16 11:42:40 +00:00
Evgeniy Stepanov
e259b658e4
[asan] Nuke ASAN_FLEXIBLE_MAPPING_AND_OFFSET.
...
llvm-svn: 199370
2014-01-16 10:16:19 +00:00
Kostya Serebryany
7a3a93f112
[asan] if verbosity>=2, print the fake stack usage stats at thread exit; No functionality change in non-verboze mode
...
llvm-svn: 197037
2013-12-11 13:54:01 +00:00
Kostya Serebryany
b00a0e2971
[asan] relax HugeMallocTest so that it does not fail on small-RAM machines
...
llvm-svn: 196904
2013-12-10 10:34:55 +00:00
Kostya Serebryany
b2eb3d3177
[asan] remove one test from SizedStackTest which relied on a now-wrong assumption that the left stack redzone is >= 32 bytes (PR18195)
...
llvm-svn: 196900
2013-12-10 09:49:31 +00:00
Kostya Serebryany
3429f78289
[asan] in SizedStackTest check the death string, also restrict one of the checks to 64-bit
...
llvm-svn: 196576
2013-12-06 09:33:36 +00:00
Kostya Serebryany
5b66bad259
[asan] require __i686__ for the SSE test; also make weaker claims about stack buffer overflows in another test
...
llvm-svn: 196375
2013-12-04 10:48:16 +00:00
Kostya Serebryany
32b0b21790
[asan] revert 196373: committed to many files by mistake
...
llvm-svn: 196374
2013-12-04 10:47:14 +00:00
Kostya Serebryany
0060391a63
[asan] require __i686__ for the SSE test; also make weaker claims about stack buffer overflows in another test
...
llvm-svn: 196373
2013-12-04 10:44:13 +00:00
Kostya Serebryany
5236c79932
[asan] disable AddressSanitizer.HugeMallocTest if ASAN_AVOID_EXPENSIVE_TESTS is set
...
llvm-svn: 196097
2013-12-02 13:22:27 +00:00
Alexey Samsonov
003c4bfc42
[ASan] Introduce a top-level target to collect all ASan runtimes and deps
...
llvm-svn: 194696
2013-11-14 12:24:12 +00:00
Alexey Samsonov
9ff4598225
[ASan] Do not rely on malloc context in allocator reports.
...
Invoke a fatal stack trace unwinder when ASan prints allocator-relevant
error reports (double-free, alloc-dealloc-mismatch, invalid-free).
Thus we'll be able to print complete stack trace even if allocation/free
stacks are not stored (malloc_context_size=0).
Based on the patch by Yuri Gribov!
llvm-svn: 194579
2013-11-13 14:46:58 +00:00
Alexey Samsonov
c5e1b16d0c
[ASan] Kill use_stack_depot runtime flag and stack trace compression routines.
...
llvm-svn: 193868
2013-11-01 17:23:22 +00:00
Evgeniy Stepanov
e8cd2fad0e
[asan] Maybe fix test failures on lld bots.
...
llvm-svn: 193647
2013-10-29 20:06:12 +00:00
Evgeniy Stepanov
ec8ec333f0
[asan] Remove CallocOverflow32 test from asan_test.
...
The same as with MSan, this test behavior depends on ASAN_OPTIONS, and we've
got a lit_test that covers this.
llvm-svn: 192777
2013-10-16 08:34:31 +00:00
Kostya Serebryany
3c42ce1516
[asan] introduce run-time flag uar_stack_size_log to control the size of FakeStack; don't crash when the fake stack is exhausted, move some code to .cc file
...
llvm-svn: 191510
2013-09-27 11:37:23 +00:00
Alexander Potapenko
ae49e8c34a
[ASan] Fix GCD tests by spinning forever in the main thread.
...
Since the error is always reported by one of the GCD workers, this will help avoid premature program termination with exit code 0.
llvm-svn: 191294
2013-09-24 12:42:25 +00:00
Kostya Serebryany
01ff028814
[asan] remove -fsanitize=use-after-return from the tests (this flag now comes with asan by default)
...
llvm-svn: 191204
2013-09-23 14:34:06 +00:00
Alexander Potapenko
bff7e64a3f
[ASan] Fix compilation of asan_str_test.cc on non-Darwin.
...
llvm-svn: 191083
2013-09-20 11:03:27 +00:00
Alexander Potapenko
7be1a632b2
[ASan] Enforce the memmove semantics for both memcpy() and memmove() interceptors on Darwin.
...
Due to bugs in the interposition of resolver functions on 10.7 and 10.8 both memcpy() and memmove()
were previously intercepted by INTERCEPTOR(memcpy), which led to false positives and crashes (see http://llvm.org/bugs/show_bug.cgi?id=16362 )
We choose to use a memmove-like function in both cases. This effectively disables the overlap checks in memcpy(), but the overlaps
aren't possible in practice, because memcpy() and memmove() are the same function on Darwin.
Once the interposition is fixed in 10.9, we'll need to revisit this issue, see https://code.google.com/p/address-sanitizer/issues/detail?id=226
llvm-svn: 191081
2013-09-20 10:56:34 +00:00
Alexey Samsonov
a7f35c06dc
[ASan] Enable fake stack test on Mac and Android, as no-instrumentation tests are now fixed
...
llvm-svn: 190856
2013-09-17 08:40:32 +00:00
Alexey Samsonov
676c109c24
[ASan] Link tests with -pie if ASan runtime uses zero-base shadow
...
llvm-svn: 190853
2013-09-17 07:50:12 +00:00
Kostya Serebryany
2f5c2be6bd
[asan] further speedup use-after-return: simplify deallocation of fake frames. ~ 20% speedup.
...
llvm-svn: 190852
2013-09-17 07:42:54 +00:00
Alexey Samsonov
f71c88910c
[ASan] Don't link with pthread on Android
...
llvm-svn: 190794
2013-09-16 16:51:49 +00:00
Alexey Samsonov
036a5bef2d
[ASan] Split ASan unit tests into two different binaries:
...
(1) instrumented, i.e. compiled and linked with -fsanitize=address
(2) not instrumented, compiled w/o -fsanitize=address and linked with ASan runtime statically.
llvm-svn: 190788
2013-09-16 15:50:53 +00:00
Alexey Samsonov
70c93d3b1c
[ASan] Temporary disable UAR unit test on Android due to https://code.google.com/p/address-sanitizer/issues/detail?id=222
...
llvm-svn: 190667
2013-09-13 08:07:21 +00:00
Kostya Serebryany
9583b87077
[asan] don't record the class_id in FakeFrame (scratching the last bits of performance)
...
llvm-svn: 190666
2013-09-13 07:50:44 +00:00
Kostya Serebryany
7638aa135e
[asan] a bit of performance improvement in fake stack, generalized one test, fixed android build of another test
...
llvm-svn: 190606
2013-09-12 14:41:10 +00:00
Alexander Potapenko
9caa10d0c7
[ASan] Do not build asan_fake_stack_test.cc on OSX until https://code.google.com/p/address-sanitizer/issues/detail?id=222 is fixed.
...
llvm-svn: 190597
2013-09-12 09:46:56 +00:00
Kostya Serebryany
729c8dc65b
[asan] fully re-implement the FakeStack (use-after-return) to make it faster and async-signal-safe. The implementation is not yet complete (see FIXMEs) but the existing tests pass.
...
llvm-svn: 190588
2013-09-12 07:11:58 +00:00
Kostya Serebryany
8fc35ca008
[asan] refactor the use-after-return API so that the size class is computed at compile time instead of at run-time. compiler-rt part
...
llvm-svn: 190406
2013-09-10 13:16:26 +00:00
Alexey Samsonov
071cc9e89d
[ASan] turn on leak checking for ASan tests and fix a few discovered leaks
...
llvm-svn: 190274
2013-09-08 13:23:29 +00:00
Alexey Samsonov
6985f3f67b
Fix compiler warning introduced in r190022
...
llvm-svn: 190137
2013-09-06 11:08:12 +00:00
Alexey Samsonov
16516b9b00
Migrate ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS to new spelling - ATTRIBUTE_NO_SANITIZE_ADDRESS
...
llvm-svn: 190136
2013-09-06 11:07:33 +00:00
Kostya Serebryany
e009ef4ac1
[asan] make calloc crash instead of returning 0 on overflow (controlled by the allocator_may_return_null flag)
...
llvm-svn: 190128
2013-09-06 09:51:50 +00:00
Kostya Serebryany
ada5a7b7ef
[sanitizer] make the allocator crash instead of returning 0 on huge size (controlled by the allocator_may_return_null flag)
...
llvm-svn: 190127
2013-09-06 09:25:11 +00:00
Reid Kleckner
0071525492
asan: Add a wcslen interceptor mirroring strlen
...
Tested on Linux, since I can't build the tests on Windows yet.
llvm-svn: 190022
2013-09-05 01:13:49 +00:00
Kostya Serebryany
fab9336413
[asan]: fix a CHECK failure in use-after-return mode; enable and fix stack-use-after-return.cc; add a test for UAR mode in asan_noinst_test
...
llvm-svn: 189457
2013-08-28 08:59:23 +00:00
Alexey Samsonov
79d79da0e1
[ASan] Fix leaks in ASan tests found by LSan
...
llvm-svn: 186577
2013-07-18 12:59:52 +00:00
Kostya Serebryany
e71982d589
[asan] fix the bug with memalign and malloc_usable_size ( http://code.google.com/p/address-sanitizer/issues/detail?id=193 ); also fix lint
...
llvm-svn: 183647
2013-06-10 10:46:27 +00:00
Alexey Samsonov
e674320ade
[ASan] make pthread_getschedparam test more robust
...
llvm-svn: 183411
2013-06-06 14:08:40 +00:00
Alexey Samsonov
8f5138a23f
Call __asan_free_hook() before marking the chunk quarantinned
...
Summary:
With this change, the user may safely call __asan_get_ownership()
from malloc/free hooks and assume it would return "true". If there is a
realloc/free race, free hook might be called twice, but I think it's acceptable,
as it's a data race and would later be reported anyway.
This change also fixes a bug when failing realloc incorrectly marked the
original memory as "quarantinned".
Reviewers: timurrrr, kcc, samsonov
Reviewed By: samsonov
CC: llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D913
llvm-svn: 183220
2013-06-04 12:19:31 +00:00
Kostya Serebryany
8410a867eb
[asan] workaround for asan bug 189 (swapcontext followed by throw gets OOM kill). Also, disable swapcontext_test on non-x86. Fix lint
...
llvm-svn: 182456
2013-05-22 08:54:30 +00:00
Evgeniy Stepanov
970be35808
[sanitizer] Intercept pthread_getschedparam.
...
llvm-svn: 182353
2013-05-21 08:12:08 +00:00