Dmitry Vyukov
9507af2d89
tsan: fix and re-enable a test
...
llvm-svn: 211966
2014-06-27 22:27:02 +00:00
Evgeniy Stepanov
c935ca8c3c
[msan] Add store_context_size= flag.
...
A new flag to control stack trace size for store event (in
track-origins=2 mode) independently of malloc_context_size.
llvm-svn: 211896
2014-06-27 12:48:01 +00:00
Evgeniy Stepanov
63338af398
[tsan] Disable a failing test.
...
java_finalizer is failing on all sanitizer bots since it was added in r211829.
llvm-svn: 211882
2014-06-27 08:10:27 +00:00
Evgeniy Stepanov
7d3c68a9cf
[msan] Fix truncated stack trace in chained origin reports.
...
This is a leftover from the times when the next (chained) origin id
was stored as the last frame of a stack trace.
llvm-svn: 211878
2014-06-27 07:32:08 +00:00
Dmitry Vyukov
fb251f51a9
tsan: add __tsan_java_finalize interface function
...
It is required to prevent false positives between object ctor and finalizer,
as otherwise they look completely unsynchronized.
llvm-svn: 211829
2014-06-27 00:47:38 +00:00
Evgeniy Stepanov
b163f0276f
[msan] Fix bad interaction between with-calls mode and chained origin tracking.
...
Origin history should only be recorded for uninitialized values, because it is
meaningless otherwise. This change moves __msan_chain_origin to the runtime
library side and makes it conditional on the corresponding shadow value.
Previous code was correct, but _very_ inefficient.
llvm-svn: 211700
2014-06-25 14:41:57 +00:00
Evgeniy Stepanov
7ad0bde843
[msan] Fix false positive on dynamic tls.
...
Use existing DTLS code in sanitizer_tls_get_addr.{h,cc} to unpoison DTLS
blocks both on allocation and deallocation.
https://code.google.com/p/memory-sanitizer/issues/detail?id=44
llvm-svn: 211683
2014-06-25 11:30:35 +00:00
Greg Fitzgerald
7c8bfd804b
Remove ARM XFAIL from passing test
...
llvm-svn: 211608
2014-06-24 16:58:59 +00:00
Daniel Sanders
4dc8a78b04
[asan] adding support of 32-bit address sanitizer for MIPS
...
Summary: The patch supports both the clang cross-compiler and native compiler
Patch by Kumar Sukhani <Kumar.Sukhani@imgtec.com>
Test Plan:
Kumar had the following asan test results when compiled on a MIPS board:
Expected Passes : 96
Expected Failures : 2
Unsupported Tests : 84
Unexpected Passes : 4
Unexpected Failures: 19
The list of unexpected failures can be found in the review.
Reviewers: kcc, petarj, dsanders
Reviewed By: kcc
Subscribers: farazs, kcc, llvm-commits
Differential Revision: http://reviews.llvm.org/D4208
llvm-svn: 211587
2014-06-24 12:08:18 +00:00
Evgeniy Stepanov
ad8065f01a
[msan] Print stats even on successful run with atexit=1.
...
llvm-svn: 211574
2014-06-24 09:04:06 +00:00
Kostya Serebryany
cd60ed53f6
[asan] when reporting an ODR violation, also print the stack traces where the globals have been registered (thus show the name of shared library or exe to which the global belongs). The reports become a bit too verbose but I do not see any *simple* way to make them more compact. This should be especially helpful when the ODR happens because the same .cc file is used twice in the project in differend DSOs
...
llvm-svn: 211343
2014-06-20 08:24:12 +00:00
Joerg Sonnenberger
61d5d38e80
Provide mul for IEEE quad. From GuanHong Liu.
...
Differential Revision: http://reviews.llvm.org/D2799
llvm-svn: 211313
2014-06-19 20:34:03 +00:00
Joerg Sonnenberger
361519f409
Provide add and sub for IEEE quad. From GuanHong Liu.
...
Differential Revision: http://reviews.llvm.org/D2798
llvm-svn: 211312
2014-06-19 20:24:49 +00:00
Evgeniy Stepanov
a2327c3a65
[sanitizer] Intercept pthread_*attr_get*.
...
This is a resubmit of r211166 reverted due to osx breakage.
llvm-svn: 211264
2014-06-19 10:19:57 +00:00
Arnold Schwaighofer
868050a667
Revert "[sanitizer] Intercept pthread_*attr_get*."
...
This reverts commit r211166. It broke public mac os x bots.
llvm-svn: 211206
2014-06-18 19:04:47 +00:00
Evgeniy Stepanov
b87f1efc5f
[sanitizer] Intercept pthread_*attr_get*.
...
llvm-svn: 211166
2014-06-18 14:16:41 +00:00
Evgeniy Stepanov
2c27df9a33
[msan] Intercept __getdelim.
...
llvm-svn: 211162
2014-06-18 13:35:13 +00:00
Alexander Potapenko
853a232e66
[ASan] Fix https://code.google.com/p/address-sanitizer/issues/detail?id=321 for time() and frexp()
...
Add a test for the frexp() interceptor.
Annotate the interceptors that may potentially corrupt stack IDs of freed buffers with FIXME comments.
llvm-svn: 211153
2014-06-18 09:27:40 +00:00
Evgeniy Stepanov
df187feae4
[msan] Fix handling of multiplication by a constant with a number of trailing zeroes.
...
Multiplication by an integer with a number of trailing zero bits leaves
the same number of lower bits of the result initialized to zero.
This change makes MSan take this into account in the case of multiplication by
a compile-time constant.
We don't handle the general, non-constant, case because
(a) it's not going to be cheap (computation-wise);
(b) multiplication by a partially uninitialized value in user code is
a bad idea anyway.
Constant case must be handled because it appears from LLVM optimization of a
completely valid user code, as the test case in compiler-rt demonstrates.
llvm-svn: 211092
2014-06-17 09:23:12 +00:00
Alexey Samsonov
e595e1ade0
Remove top-level Clang -fsanitize= flags for optional ASan features.
...
Init-order and use-after-return modes can currently be enabled
by runtime flags. use-after-scope mode is not really working at the
moment.
The only problem I see is that users won't be able to disable extra
instrumentation for init-order and use-after-scope by a top-level Clang flag.
But this instrumentation was implicitly enabled for quite a while and
we didn't hear from users hurt by it.
llvm-svn: 210924
2014-06-13 17:53:44 +00:00
Evgeniy Stepanov
dfa5439652
[asan] Fix mmap-ed coverage with coverage=0.
...
llvm-svn: 210655
2014-06-11 15:11:26 +00:00
Evgeniy Stepanov
9ae3d02193
[asan] Run Android test with asanwrapper.
...
This better replicates the target environment.
llvm-svn: 210650
2014-06-11 10:37:06 +00:00
Evgeniy Stepanov
46fa9f2d9e
[asan] One more coverage test.
...
Test that coverage is dumped correctly (and completely) even when the processed
gets SIGKILL-ed.
llvm-svn: 210647
2014-06-11 09:23:25 +00:00
Evgeniy Stepanov
125a302257
[asan] Fix coverage-android test to avoid name conflict.
...
And re-enable it.
llvm-svn: 210646
2014-06-11 09:09:09 +00:00
Alexander Potapenko
14f8ac04e3
Add detection of OS X relocatable SDK to compiler-rt as a lit.util function
...
Clang's lit cfg already detects the currently selected SDK via
"xcrun --show-sdk-path". The same thing should be done for compiler-rt tests,
to make them work on recent OS X versions. Instead of duplicating the detection
code, this patch extracts the detection function into a lit.util method.
Patch by Kuba Brecka (kuba.brecka@gmail.com ),
reviewed at http://reviews.llvm.org/D4072
llvm-svn: 210534
2014-06-10 14:22:00 +00:00
Evgeniy Stepanov
48eccb7fb3
[asan] Disable a flaky test.
...
llvm-svn: 210517
2014-06-10 08:32:01 +00:00
Alexey Samsonov
f0d1fd6b32
[TSan] Exclude blacklist tests from manual test runner
...
llvm-svn: 210494
2014-06-09 22:02:14 +00:00
Evgeniy Stepanov
b22b963669
[asan] Remove dependency of tests on runtime library in standalone build.
...
llvm-svn: 210465
2014-06-09 11:17:37 +00:00
Evgeniy Stepanov
2be29929be
Fix line numbers for code inlined from __nodebug__ functions.
...
Instructions from __nodebug__ functions don't have file:line
information even when inlined into no-nodebug functions. As a result,
intrinsics (SSE and other) from <*intrin.h> clang headers _never_
have file:line information.
With this change, an instruction without !dbg metadata gets one from
the call instruction when inlined.
Fixes PR19001.
llvm-svn: 210459
2014-06-09 09:09:19 +00:00
Alexey Samsonov
2c8dda4e53
[TSan] Make lit-tests more self-contained
...
llvm-svn: 210370
2014-06-06 21:04:55 +00:00
Greg Fitzgerald
e124a30fbe
Un-xfail passing ARM Android tests
...
llvm-svn: 210360
2014-06-06 18:06:58 +00:00
Evgeniy Stepanov
ee98fb197b
[msan] Fix wrong endianness when printing shadow.
...
llvm-svn: 210335
2014-06-06 14:06:14 +00:00
Evgeniy Stepanov
474e70aeb7
[asan] Add 'asan' to asan test deps.
...
This sound like a good idea in general.
Also, without this on Android we get add_lit_testsuite() with empty DEPENDS
list, and it does not work well.
llvm-svn: 210257
2014-06-05 12:31:22 +00:00
Evgeniy Stepanov
785108b0fc
[asan] Fix lit tests setup on Android.
...
Pass cflags in a way that's compatible with standalone compiler-rt build.
llvm-svn: 210256
2014-06-05 12:29:47 +00:00
Peter Collingbourne
8501e39a85
[dfsan] Fix the declaration of dfsan_add_label.
...
llvm-svn: 210202
2014-06-04 17:54:51 +00:00
Evgeniy Stepanov
fe18102649
[sancov] Handle fork.
...
Reset coverage data on fork().
For memory-mapped mode (coverage_direct=1) this helps avoid loss of data
(before this change two processes would write to the same file simultaneously).
For normal mode, this reduces coverage dump size, because PCs from the parent
process are no longer inherited by the child.
llvm-svn: 210180
2014-06-04 12:13:54 +00:00
Greg Fitzgerald
547f536bcf
Disable unstable test on ARM
...
llvm-svn: 210140
2014-06-04 00:06:41 +00:00
Kostya Serebryany
7d4fc2c6a7
[asan] enable detect_odr_violation=2; https://code.google.com/p/address-sanitizer/wiki/OneDefinitionRuleViolation . This feature has been working quite well so far, found a few bugs and zero false positives. The main problem is that there could be lots of true positives and users will have to disable this checking until the bugs are fixed.
...
llvm-svn: 210106
2014-06-03 15:06:13 +00:00
Evgeniy Stepanov
bb2fc7e4bb
[sancov] Fix map update logic on Android.
...
dlopen()/dlclose() are not interceptable on Android,
so we update .sancov.map in module constructor callbacks.
llvm-svn: 210098
2014-06-03 12:15:43 +00:00
Timur Iskhodzhanov
b1415c46fb
[ASan Win] Manually call __asan_init early in the DLL initialization process to avoid a null function call in cout/cerr constructors
...
llvm-svn: 210030
2014-06-02 14:40:07 +00:00
Timur Iskhodzhanov
51fadc387a
[ASan Win] Fix memset interception in DLLs
...
llvm-svn: 210027
2014-06-02 13:23:42 +00:00
Alexey Samsonov
5c8ce21a6c
[TSan] Add a test case for r209939
...
llvm-svn: 209940
2014-05-31 00:12:20 +00:00
Greg Fitzgerald
52f61086ab
Disable stack-overflow test on ARM
...
llvm-svn: 209925
2014-05-30 22:44:35 +00:00
Dmitry Vyukov
dee68ba6e3
tsan: add a test from data-race-test suite:
...
https://code.google.com/p/data-race-test/source/browse/trunk/unittest/racecheck_unittest.cc
llvm-svn: 209900
2014-05-30 14:27:31 +00:00
Dmitry Vyukov
233f401c2b
tsan: make positive tests more robust
...
Add a script that is used to deflake inherently flaky tsan tests.
It is invoked from lit tests as:
%deflake %run %t
The script runs the target program up to 10 times,
until it produces a tsan warning.
llvm-svn: 209898
2014-05-30 14:08:51 +00:00
Timur Iskhodzhanov
8f655fc0fb
[ASan Win] Fix a couple of warnings in tests and enable -WX
...
llvm-svn: 209887
2014-05-30 11:58:32 +00:00
Joerg Sonnenberger
9ed1beb20a
Implement __divtf3 for IEEE quad precision.
...
Patch by: GuanHong Liu
Differential Revision: http://reviews.llvm.org/D2800
llvm-svn: 209886
2014-05-30 11:08:18 +00:00
Timur Iskhodzhanov
5bed4206c8
[ASan Win] DLL thunk: make each INTERFACE_FUNCTION unique to prevent ICF linker optimizations
...
llvm-svn: 209881
2014-05-30 09:01:17 +00:00
Greg Fitzgerald
1316a0e0e0
Mark currently failing ARM tests with XFAIL.
...
Differential Revision: http://reviews.llvm.org/D3857
llvm-svn: 209862
2014-05-29 23:34:47 +00:00
Greg Fitzgerald
c5fd7305cb
Mark unstable tests as Unsupported on ARM
...
This is half the patch from: http://reviews.llvm.org/D3857
It lets us get deterministic results from the rest of the test suite.
llvm-svn: 209861
2014-05-29 23:34:39 +00:00
Greg Fitzgerald
11b49c3818
light up sanitizers for ARM, take 2
...
Differential Revision: http://reviews.llvm.org/D3794
llvm-svn: 209856
2014-05-29 22:38:13 +00:00
Greg Fitzgerald
c1146ec5ba
Revert "light up sanitizers for ARM"
...
This commit broke the Windows build, where CMAKE_C_COMPILER can
compile and link with -march=armv7-a but the just-built-clang
cannot.
llvm-svn: 209851
2014-05-29 21:33:36 +00:00
Greg Fitzgerald
32685ec5fd
light up sanitizers for ARM
...
You can expect the sanitizers to be built under any of the following conditions:
1) CMAKE_C_COMPILER is GCC built to cross-compile to ARM
2) CMAKE_C_COMPILER is Clang built to cross-compile to ARM (ARM is default target)
3) CMAKE_C_COMPILER is Clang and CMAKE_C_FLAGS contains -target and --sysroot
Differential Revision: http://reviews.llvm.org/D3794
llvm-svn: 209835
2014-05-29 19:01:32 +00:00
Evgeniy Stepanov
fa5c0750f0
[sanitizer] Add coverage_dir flag.
...
llvm-svn: 209815
2014-05-29 14:33:16 +00:00
Dmitry Vyukov
bde4c9c773
tsan: refactor storage of meta information for heap blocks and sync objects
...
The new storage (MetaMap) is based on direct shadow (instead of a hashmap + per-block lists).
This solves a number of problems:
- eliminates quadratic behaviour in SyncTab::GetAndLock (https://code.google.com/p/thread-sanitizer/issues/detail?id=26 )
- eliminates contention in SyncTab
- eliminates contention in internal allocator during allocation of sync objects
- removes a bunch of ad-hoc code in java interface
- reduces java shadow from 2x to 1/2x
- allows to memorize heap block meta info for Java and Go
- allows to cleanup sync object meta info for Go
- which in turn enabled deadlock detector for Go
llvm-svn: 209810
2014-05-29 13:50:54 +00:00
Timur Iskhodzhanov
9e44e590d5
[ASan Win tests] Add a couple more memcpy/memset tests
...
llvm-svn: 209806
2014-05-29 12:15:17 +00:00
Joerg Sonnenberger
fee19280b8
Add __extenddftf2 and __extendsftf2 for IEEE quad precision.
...
Patch by: GuanHong Liu
Differential Revision: http://reviews.llvm.org/D2802
llvm-svn: 209783
2014-05-29 01:00:39 +00:00
Joerg Sonnenberger
5038cb2963
Implement __trunctfdf2 and __trunctfsf2 for IEEE quad precision.
...
Patch by: GuanHong Liu
Differential Revision: http://reviews.llvm.org/D2803
llvm-svn: 209782
2014-05-29 00:58:27 +00:00
Evgeniy Stepanov
0e56b623a5
[asan] Mass-xfail 17 tests on Android.
...
This makes check-asan pass on Android, which should help prevent future
regressions.
https://code.google.com/p/address-sanitizer/issues/detail?id=316
llvm-svn: 209736
2014-05-28 13:45:18 +00:00
Evgeniy Stepanov
15d71b598e
[sanitizer] Replace -lpthread with -pthread in tests.
...
-lpthread does not work on Android.
llvm-svn: 209735
2014-05-28 13:13:30 +00:00
Evgeniy Stepanov
4b42df03de
[asan] XFAIL:android several tests.
...
llvm-svn: 209734
2014-05-28 13:07:39 +00:00
Timur Iskhodzhanov
7f29181323
[ASan tests] Exclude some tests from Windows runs
...
Some features are not supported yet and some are not planned to be fixed soon
llvm-svn: 209733
2014-05-28 13:06:14 +00:00
Evgeniy Stepanov
0651b561a6
[asan] Fix android test setup.
...
llvm-svn: 209724
2014-05-28 09:58:58 +00:00
Timur Iskhodzhanov
a09b70579a
[ASan tests] Move one more test to POSIX-only directory
...
llvm-svn: 209722
2014-05-28 09:38:51 +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
Greg Fitzgerald
329912f54c
[asan] use relative line numbers in tests
...
llvm-svn: 209699
2014-05-27 23:13:52 +00:00
Evgeniy Stepanov
567e516015
[asancov] Write coverage directly to a memory-mapped file.
...
This way does not require a __sanitizer_cov_dump() call. That's
important on Android, where apps can be killed at arbitrary time.
We write raw PCs to disk instead of module offsets; we also write
memory layout to a separate file. This increases dump size by the
factor of 2 on 64-bit systems.
llvm-svn: 209653
2014-05-27 12:37:52 +00:00
Timur Iskhodzhanov
d67df369cf
[ASan tests] Use ASAN_OPTIONS in a portable way
...
llvm-svn: 209629
2014-05-26 13:44:57 +00:00
Sergey Matveev
a531058d2b
[MSan] Implement __sanitizer_print_stack_trace().
...
llvm-svn: 209625
2014-05-26 13:08:08 +00:00
Timur Iskhodzhanov
9011eb81cf
[ASan/Win tests] Remove the extra 'cat' in front of FileCheck now that it's clear we should use GnuWin32 rather than Cygwin on the PATH on Windows (see PR19744)
...
llvm-svn: 209622
2014-05-26 11:54:20 +00:00
Timur Iskhodzhanov
5873419af7
[ASan/Win tests] Use the env keyword in the SUAR tests to work with gnuwin/lit correctly
...
llvm-svn: 209620
2014-05-26 11:25:32 +00:00
Sergey Matveev
2be4a28297
[sanitizer] Make stack traces from dlclose()'d modules more meaningful.
...
Previously, they silently omitted PCs belonging to unknown modules. Now we print
(<unknown module>) instead.
llvm-svn: 209522
2014-05-23 16:04:41 +00:00
Kostya Serebryany
ef769fac90
[ubsan] temporary disable testing with -m32 as there are bots that don't support it
...
llvm-svn: 209517
2014-05-23 15:02:06 +00:00
Kostya Serebryany
a72efdff9e
[ubsan] handle long double in 32-bit mode; part of the patch by Marek Polacek
...
llvm-svn: 209516
2014-05-23 14:45:13 +00:00
Timur Iskhodzhanov
d6ac15dd5f
Quick-fix a copy-and-paste mistake in one of the ASan test
...
llvm-svn: 209448
2014-05-22 15:14:05 +00:00
Timur Iskhodzhanov
b2eb3131f4
[ASan/Win] Make sure the list of wrappers exported by the main module and imported by the DLL thunk always matches
...
llvm-svn: 209444
2014-05-22 14:49:56 +00:00
Timur Iskhodzhanov
8ff177ede3
[ASan/Win] Thread more library functions from the DLL thunk to the main module
...
llvm-svn: 209441
2014-05-22 13:57:22 +00:00
Timur Iskhodzhanov
498e56adb6
[ASan/Win] Add more tests for operator new[]
...
llvm-svn: 209439
2014-05-22 13:28:27 +00:00
Timur Iskhodzhanov
0c7c78f1d1
[ASan/Win] Use the new function interception approach to handle function wrappers too; wrap strlen() in DLLs
...
Reviewed at http://reviews.llvm.org/D3871
llvm-svn: 209427
2014-05-22 12:03:40 +00:00
Sergey Matveev
162d7cb9d1
[sanitizer] Attempt to fix test.
...
llvm-svn: 209301
2014-05-21 14:36:05 +00:00
Sergey Matveev
83f91e786c
[sanitizer] Add __sanitizer_maybe_open_cov_file().
...
Summary: Add a new interface function required for coverage sandboxing support.
llvm-svn: 209298
2014-05-21 13:43:52 +00:00
Kostya Serebryany
301a38b0b7
[asan] add a test which ensures that we dump coverage after SEGV
...
llvm-svn: 209295
2014-05-21 13:20:14 +00:00
Dmitry Vyukov
96ebc5d7db
tsan: deflake test
...
llvm-svn: 209290
2014-05-21 12:02:08 +00:00
Evgeniy Stepanov
bce21acf25
[msan] Implement MSAN_OPTIONS=print_stats=1.
...
llvm-svn: 209287
2014-05-21 09:56:28 +00:00
Evgeniy Stepanov
208aae8ee0
[msan] Chained origins re-design.
...
Generalize StackDepot and create a new specialized instance of it to
efficiently (i.e. without duplicating stack trace data) store the
origin history tree.
This reduces memory usage for chained origins roughly by an order of
magnitude.
Most importantly, this new design allows us to put two limits on
stored history data (exposed in MSAN_OPTIONS) that help avoid
exponential growth in used memory on certain workloads.
See comments in lib/msan/msan_origin.h for more details.
llvm-svn: 209284
2014-05-21 09:02:13 +00:00
Greg Fitzgerald
1733b5e263
XFAIL ptrace test on arm
...
The patch adds better target_triple and target_arch defaults for lit tests,
which allows us to XFAIL tests based on architecture.
Was:
target_triple = LLVM_DEFAULT_TARGET_TRIPLE
target_arch = HOST_ARCH
Now:
target_triple = COMPILER_RT_TEST_TARGET_TRIPLE
, otherwise LLVM_DEFAULT_TARGET_TRIPLE
target_arch = first item in COMPILER_RT_TEST_TARGET_TRIPLE
Differential Revision: http://reviews.llvm.org/D3855
llvm-svn: 209256
2014-05-20 23:31:26 +00:00
Greg Fitzgerald
38ff567743
[ubsan] fix vptr test on ARM
...
Differential Revision: http://reviews.llvm.org/D3751
llvm-svn: 209249
2014-05-20 22:07:58 +00:00
Greg Fitzgerald
40a6401b1f
Run common and profile tests in cross-compiled builds.
...
Route target_cflags to common and profile tests
llvm-svn: 209248
2014-05-20 22:04:27 +00:00
Timur Iskhodzhanov
e7894f3b14
[ASan Win] Simplify and improve the way we forward ASan interface calls from DLLs
...
Reviewed at http://reviews.llvm.org/D3848
llvm-svn: 209210
2014-05-20 14:26:19 +00:00
Sergey Matveev
6cb47a083b
[sanitizer] Support sandboxing in sanitizer coverage.
...
Summary:
Sandboxed code may now pass additional arguments to
__sanitizer_sandbox_on_notify() to force all coverage data to be dumped to a
single file (the default is one file per module). The user may supply a file or
socket to write to. The latter option can be used to broker out the file writing
functionality. If -1 is passed, we pre-open a file.
llvm-svn: 209121
2014-05-19 12:53:03 +00:00
Sergey Matveev
73f64a8f9f
[asan] Make the coverage tests clean up after themselves.
...
llvm-svn: 209119
2014-05-19 11:34:35 +00:00
Saleem Abdulrasool
44a8c7233a
profile: explicitly initialize file name in the test
...
The instrprofile-write-file-only test was failing on the builtbots. The runtime
library initialization is explicitly being discarded to avoid the atexit hook.
However, this would also prevent the filename from being initialized. Thus,
when the write file was invoked, the filename would not be setup, and the test
would fail as the profiling data would never be written out. Explicitly
initialize the filename to ensure that the data is written out when requested.
This should hopefully finally get the build bots all green again.
llvm-svn: 209099
2014-05-18 20:05:35 +00:00
Saleem Abdulrasool
b2aa4726d2
profile: adjust flags for libdl
...
dlopen expects that the flags contains RTLD_LAZY or RTLD_NOW. RTLD_LAZY will
resolve the symbol on first use, and is generally preferred due to efficiency.
Add this to fix the test failure on the build bots.
llvm-svn: 209098
2014-05-18 19:33:39 +00:00
Saleem Abdulrasool
1d338a3406
profile: add logging on failure
...
Add logging to report any failures that may occur on calls to libdl. Without
this, it is difficult to identify the actual problem if the test fails.
llvm-svn: 209097
2014-05-18 19:33:37 +00:00
Saleem Abdulrasool
864e0740c0
profile: explicitly link against libdl
...
Add an explicit link against libdl. libdl may not be indirectly pulled on some
Linux hosts. Explicitly link against it. This should hopefully improve the
state of the build bots.
llvm-svn: 209096
2014-05-18 18:39:19 +00:00
Duncan P. N. Exon Smith
55e4d66f0c
InstrProf: Support profiling dlopen'd shared libraries
...
Shared objects are hard. After this commit, we do the right thing when
profiling two separate shared objects that have been dlopen'd with
`RTLD_LOCAL`, when the main executable is *not* being profiled.
This mainly simplifies the writer logic.
- At initialization, determine the output filename and truncate the
file. Depending on whether shared objects can see each other, this
may happen multiple times.
- At exit, each executable writes its own profile in append mode.
<rdar://problem/16918688>
llvm-svn: 209053
2014-05-17 01:27:30 +00:00
Alexey Samsonov
41c7302888
[TSan] Improve support for running TSan test suite with GCC-TSan.
...
Test results with GCC-4.9.0: 78 expected passes, 74 unexpected failures.
llvm-svn: 209014
2014-05-16 20:33:56 +00:00
Alexey Samsonov
995bdd43f8
Exclude several ASan tests from test suite if we're using GCC
...
llvm-svn: 209013
2014-05-16 20:12:27 +00:00
Alexey Samsonov
36132035ca
[CMake] Don't build libcxx_tsan with compilers other than Clang
...
llvm-svn: 209003
2014-05-16 18:22:04 +00:00
Duncan P. N. Exon Smith
870b77cd4d
InstrProf: Create a PIC version of the profile runtime
...
These tests were XPASS-ing on Linux bots creating Mach-O, which makes
sense, since the real difference is the object format.
I'm hoping a short-term fix to get these tests passing on ELF is to
create two copies of the runtime -- one built with -fPIC, and one
without. A follow-up patch will change clang's driver to pick between
them depending on whether `-shared` is specified.
llvm-svn: 208947
2014-05-16 04:07:09 +00:00
Duncan P. N. Exon Smith
f6366cbeff
InstrProf: XFAIL tests from r208940 on Linux
...
According to the buildbots, the new features for shared objects don't
work on ELF since it requires an -fPIC when building the profile
library. XFAIL these tests for now.
It's possible we'll have to build two versions of the profile library on
Linux (one with -fPIC and one without), but it's not clear to me exactly
how to resolve this.
llvm-svn: 208946
2014-05-16 02:53:19 +00:00
Duncan P. N. Exon Smith
084398857a
InstrProf: Fix shared object profiling
...
Change the API of the instrumented profiling library to work with shared
objects.
- Most things are now declared hidden, so that each executable gets
its own copy.
- Initialization hooks up a linked list of writers.
- The raw format with shared objects that are profiled consists of a
concatenated series of profiles. llvm-profdata knows how to deal
with that since r208938.
<rdar://problem/16918688>
llvm-svn: 208940
2014-05-16 01:30:24 +00:00
Timur Iskhodzhanov
bd6cee7cc3
[ASan/Win tests] Add memcpy/strdup/strlen interception tests
...
llvm-svn: 208899
2014-05-15 16:02:56 +00:00
Timur Iskhodzhanov
5910d6d126
[ASan/Win tests] Add more DLL tests
...
llvm-svn: 208893
2014-05-15 15:13:06 +00:00
Timur Iskhodzhanov
e23889692b
[ASan/Win tests] Add more DLL tests: malloc & friends
...
llvm-svn: 208889
2014-05-15 14:42:41 +00:00
Timur Iskhodzhanov
3bd2c2fe90
[ASan/Win tests] Add the first DLL test
...
llvm-svn: 208884
2014-05-15 14:27:46 +00:00
Timur Iskhodzhanov
130b5651d1
[ASan/Win tests] Add tests for malloc/calloc/realloc
...
llvm-svn: 208881
2014-05-15 13:50:12 +00:00
Timur Iskhodzhanov
a357badc58
[ASan/Win tests] Add tests for stack array manipulation, as well as a use-after-return test
...
llvm-svn: 208873
2014-05-15 12:09:45 +00:00
Timur Iskhodzhanov
2dbedf5e93
[ASan/Win tests] Add tests for operator new/new[]/delete/delete[]
...
llvm-svn: 208871
2014-05-15 11:55:40 +00:00
Timur Iskhodzhanov
dd2d84a223
[ASan/Win tests] Add tests for downcast-related overflows, as well as CRT initiazliers
...
llvm-svn: 208865
2014-05-15 11:14:00 +00:00
Timur Iskhodzhanov
f32b690f69
[ASan/Win tests] Add tests for aligned mallocs, bitfields and global strings
...
llvm-svn: 208859
2014-05-15 10:58:35 +00:00
Timur Iskhodzhanov
8bf36cae28
[ASan tests] Add ASan Windows threading tests
...
llvm-svn: 208854
2014-05-15 09:12:55 +00:00
Alp Toker
1ee7fc7a1a
Fix typos
...
llvm-svn: 208841
2014-05-15 02:22:34 +00:00
Timur Iskhodzhanov
07109b4161
[ASan/Win tests] Add a PR reference for the FileCheck bug
...
llvm-svn: 208807
2014-05-14 19:47:58 +00:00
Timur Iskhodzhanov
78dccb0822
Remove an unneeded stderr redirection
...
llvm-svn: 208805
2014-05-14 19:34:13 +00:00
Timur Iskhodzhanov
3653790410
Remove --check-prefix=CHECK as it's useless
...
llvm-svn: 208803
2014-05-14 19:31:56 +00:00
Timur Iskhodzhanov
2bdca20069
[ASan tests] Add the first Windows-only lit test
...
Reviewed at http://reviews.llvm.org/D3767
llvm-svn: 208802
2014-05-14 19:10:43 +00:00
Timur Iskhodzhanov
9de6fe7b83
[ASan tests] Get rid of SharedLibs/
...
llvm-svn: 208780
2014-05-14 14:41:38 +00:00
Timur Iskhodzhanov
b2e723e448
[ASan tests] Update relative paths from POSIX-only tests to their shared libraries
...
llvm-svn: 208778
2014-05-14 14:16:09 +00:00
Timur Iskhodzhanov
6a9121904d
[ASan tests] Create a Posix/ directory for tests that we don't plan to run on Windows
...
llvm-svn: 208777
2014-05-14 14:12:02 +00:00
Evgeniy Stepanov
99d3791a88
[sanitizer] Fix crash in getgrnam_r and similar interceptors.
...
When no matching record is found, getgrnam_r return 0 but sets result to NULL.
Should fix PR19734.
llvm-svn: 208773
2014-05-14 12:32:40 +00:00
Kostya Serebryany
7534a60753
[asan] Respect personality in kernel area detector, patch by Yuri Gribov
...
llvm-svn: 208760
2014-05-14 08:13:11 +00:00
Evgeniy Stepanov
adc3ff9f48
[sanitizer] Move open_memstream test under Linux.
...
llvm-svn: 208755
2014-05-14 07:27:18 +00:00
Greg Fitzgerald
5a1cf70ac3
removed redundant lit variable
...
Thanks Alexey!
llvm-svn: 208747
2014-05-14 01:04:17 +00:00
Greg Fitzgerald
320713ffbe
Add target flags to ubsan tests
...
llvm-svn: 208746
2014-05-14 00:46:01 +00:00
Greg Fitzgerald
1402830dc5
Add %run to tests that used %T/name.exe
...
llvm-svn: 208744
2014-05-14 00:32:15 +00:00
Alexey Samsonov
5716928ae2
[TSan] Build TSan-instrumented version of libcxx and use it in lit tests.
...
TSan can produce false positives in code that uses C++11 threading,
as it doesn't see synchronization inside standard library. See
http://lists.cs.uiuc.edu/pipermail/cfe-dev/2014-February/035408.html
for an example of such case.
We may build custom TSan-instrumented version libcxx to fight with that.
This change adds build rules for libcxx_tsan and integrates it into
testing infrastructure.
llvm-svn: 208737
2014-05-13 22:30:16 +00:00
Alexander Potapenko
4a6cac4382
[libsanitizer] Use internal_fork() to spawn the symbolizer process.
...
This should fix https://code.google.com/p/thread-sanitizer/issues/detail?id=61
llvm-svn: 208707
2014-05-13 16:17:54 +00:00
Evgeniy Stepanov
5680a26b0b
[msan] Better open_memstream support.
...
Move fflush and fclose interceptors to sanitizer_common.
Use a metadata map to keep information about the external locations
that must be updated when the file is written to.
llvm-svn: 208676
2014-05-13 08:36:31 +00:00
Alexey Samsonov
79b8fb5d2c
Mark ptrace test as Linux-specific
...
llvm-svn: 208643
2014-05-13 00:02:18 +00:00
Alexey Samsonov
b51d6081f3
Restrict the set of sanitizers that should run tests from test/sanitizer_common
...
llvm-svn: 208639
2014-05-12 22:48:29 +00:00
Greg Fitzgerald
fb1d83a978
Add %run to new lit test
...
llvm-svn: 208624
2014-05-12 20:17:14 +00:00
Kostya Serebryany
118d469660
[asan] one more attempt to enable lsan by default (PR19521)
...
llvm-svn: 208545
2014-05-12 12:49:48 +00:00
Sergey Matveev
aeb18fc787
[asan] Further fix the test from r208333.
...
Remove a debug print and some copypasta.
llvm-svn: 208535
2014-05-12 10:33:31 +00:00
Kostya Serebryany
d7992fc921
[asan] fix a self deadlock when printing stats; add a relevant test, cleanup that test while at it to remove linux/darwin differences. Fixes http://code.google.com/p/address-sanitizer/issues/detail?id=306
...
llvm-svn: 208525
2014-05-12 08:01:51 +00:00
Duncan P. N. Exon Smith
b6bd2f6cf7
InstrProf: Pacify buildbots after r208460
...
llvm-svn: 208462
2014-05-09 23:47:49 +00:00
Duncan P. N. Exon Smith
238137294f
InstrProf: Test the functions in the runtime
...
Check that the profile runtime works as expected. This tests the
functions that are meant to be available to advanced users.
In particular, check that the `atexit()` hook can be disabled by
defining a custom `__llvm_profile_runtime` variable, that the libc
dependencies are optional, and that the various functions for writing
out files work for basic cases.
llvm-svn: 208460
2014-05-09 23:14:58 +00:00
Alexey Samsonov
0bef819f9f
[Sanitizer] Add the machinery to run the same test under several sanitizers
...
llvm-svn: 208378
2014-05-09 00:28:18 +00:00
Alexey Samsonov
6dd8dfb1c4
[Sanitizer] Move lit config for sanitizer_common unit tests under Unit/ dir for consistency.
...
llvm-svn: 208373
2014-05-08 23:53:02 +00:00
Alexey Samsonov
35744c4753
Fixup for r208066. Properly get values of PTRACE_GETREGSET/PTRACE_SETREGSET.
...
llvm-svn: 208363
2014-05-08 22:11:20 +00:00
Alexey Samsonov
0b9b36623a
Fixup test added in r208333
...
llvm-svn: 208356
2014-05-08 20:21:11 +00:00
Sergey Matveev
76e02e90c5
[ASan] Fix coverage behavior when a PC belongs to an unknown address range.
...
This happens, e.g., when coverage data is collected for a module which is then
dlclose()'d. Currently this causes CovDump() to ignore all PCs that are greater
than the unrecognized PC. In other words, unloading a module causes ASan to
silently ignore any coverage data for modules loaded at higher addresses.
Instead we should just skip the unrecognized PCs.
llvm-svn: 208333
2014-05-08 16:09:54 +00:00
Evgeniy Stepanov
c5e51926dc
[msan] Intercept strxfrm.
...
llvm-svn: 208303
2014-05-08 12:04:01 +00:00
Evgeniy Stepanov
9c20cb1a7c
[msan] Fix potential infinite recursion in a test.
...
If printf is intercepted (it is not atm), REAL(printf) call in the interceptor
would get redirected back to my_lgamma, resulting in infinite recursion.
llvm-svn: 208294
2014-05-08 09:37:36 +00:00
Evgeniy Stepanov
5ee9fd5f45
[asan] Update tests for r208290.
...
sprintf output buffer is now always sanitized.
llvm-svn: 208291
2014-05-08 09:24:53 +00:00
Greg Fitzgerald
dda7f8cfd0
[asan] fix i386 tests broken from r207707
...
llvm-svn: 208240
2014-05-07 19:22:16 +00:00
Evgeniy Stepanov
55590227f8
[sanitizer] Intercept obstack.
...
llvm-svn: 208196
2014-05-07 11:50:56 +00:00
Evgeniy Stepanov
8dd62dc3be
[msan] Fix __msan_check_mem_is_initialized and prettify its output.
...
llvm-svn: 208195
2014-05-07 11:50:14 +00:00
Kostya Serebryany
7a733480c8
[asan] introduce interface function __sanitizer_verify_contiguous_container to verify annotations in vector-like containers
...
llvm-svn: 208092
2014-05-06 14:41:01 +00:00
Evgeniy Stepanov
06475bf752
[msan] Fix print_shadow test.
...
llvm-svn: 208069
2014-05-06 08:15:50 +00:00
Kostya Serebryany
12963b54a8
[asan] disable GetKernelStartAddress as it misbehaves in schroot
...
llvm-svn: 207768
2014-05-01 16:20:23 +00:00
Greg Fitzgerald
b8aae5405b
Add %run to all lit tests
...
llvm-svn: 207709
2014-04-30 21:34:17 +00:00
Greg Fitzgerald
6759fd9fdd
Allow any test to be executed via a %run command.
...
Configure %run with COMPILER_RT_EMULATOR:
$ cmake -DCOMPILER_RT_EMULATOR="qemu-arm -L $SYSROOT"
llvm-svn: 207707
2014-04-30 21:32:30 +00:00
Evgeniy Stepanov
fe250b0014
[msan] Prettify __msan_print_shadow.
...
Makes __msan_print_shadow output much more readable, adds origin info.
llvm-svn: 207622
2014-04-30 09:50:30 +00:00
Kostya Serebryany
cacbac7ba9
[asan] fix a test
...
llvm-svn: 207417
2014-04-28 13:18:59 +00:00
Kostya Serebryany
4f9c31a2fa
[asan] split detect_odr_violation into two: =2 detects all ODR violations, =1 detects only those where the variable sizes are different. BTW, the detector seems to be working well and finding nice bugs. Early adopters are welcome.
...
llvm-svn: 207415
2014-04-28 12:47:58 +00:00
Evgeniy Stepanov
f3d5d119a8
[sanitizer] Intercept a bunch of stdio calls.
...
Add move fopen/freopen interceptors from TSan to common.
llvm-svn: 207224
2014-04-25 13:26:21 +00:00
Kostya Serebryany
e91930a7e6
[asan] implement an experimental detector of ODR violations. Not tested yet outside of a tiny test, may need tuning.
...
llvm-svn: 207210
2014-04-25 08:58:28 +00:00
Dmitry Vyukov
56a18f02ea
tsan: better reports for "read lock of a write locked mutex"
...
llvm-svn: 207209
2014-04-25 08:58:23 +00:00
Dmitry Vyukov
e296164f77
tsan: improve "read unlock of a write locked mutex" report
...
llvm-svn: 207208
2014-04-25 08:21:30 +00:00
Dmitry Vyukov
66dbbbc47b
tsan: fix tests
...
failure:
http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-centos-6.5/builds/3747/steps/test/logs/stdio
llvm-svn: 207207
2014-04-25 08:13:45 +00:00
Dmitry Vyukov
2c87108a42
tsan: better report for bad mutex unlocks
...
+ fixes crashes due to races on symbolizer, see
https://code.google.com/p/thread-sanitizer/issues/detail?id=55
llvm-svn: 207206
2014-04-25 07:55:11 +00:00
Dmitry Vyukov
ea014b787a
tsan: add new test for commit 207204 (forget to add new file)
...
llvm-svn: 207205
2014-04-25 07:49:36 +00:00
Peter Collingbourne
16f2f18105
Add user-defined callback on write() calls.
...
Add dfsan_set_write_callback(), which sets a callback to be invoked when
a write() call is invoked within DFSan instrumented code.
Patch by Sam Kerner!
Differential Revision: http://reviews.llvm.org/D3268
llvm-svn: 207131
2014-04-24 17:42:16 +00:00
Kostya Serebryany
7afc6b2c72
[asan] enable use_sigaltstack by default (this will provide verbose reports on stack-overflow instead of silently crashing with SEGV)
...
llvm-svn: 207099
2014-04-24 11:55:17 +00:00
Evgeniy Stepanov
5a7c364343
[msan] Disable chained origins in signal handlers.
...
StackDepot is not async-signal-safe; storing a new origin to it can deadlock.
llvm-svn: 206983
2014-04-23 14:01:57 +00:00
Dmitry Vyukov
ac81ee5533
tsan: fix atexit handling after fork
...
fixes issue http://code.google.com/p/thread-sanitizer/issues/detail?id=57
llvm-svn: 206980
2014-04-23 13:42:16 +00:00
Kostya Serebryany
8cd3d27879
[asan] disable lsan back. :( -- It appears that quite a few lit tests have leaks and they were not covered by out buildbot
...
llvm-svn: 206955
2014-04-23 08:15:16 +00:00
Dmitry Vyukov
b1edac069e
tsan: more precise check for "app memory" in COMPAT mode
...
this fires when a user makes mmap with fixed address (see the test)
llvm-svn: 206952
2014-04-23 07:01:02 +00:00
Kostya Serebryany
c9db838267
[asan] enable LeakSanitizer (LSan) by default in asan. This only affects Linux x86_64. LSan has been used in various projects for more than half a year and we now consider it quite stable to be on by default.
...
llvm-svn: 206896
2014-04-22 13:56:56 +00:00
Alexander Potapenko
6e647c13e4
[ASan] Fixed the expectation for Darwin memset test.
...
Added a comment about keeping the Linux/Darwin test versions in sync.
llvm-svn: 206881
2014-04-22 10:53:57 +00:00
Kostya Serebryany
26c4e96455
[sanitizer] enable check_printf by default for asan and tsan. We've been using this flag for a while and it seems to be stable enough for the rest of the world.
...
llvm-svn: 206872
2014-04-22 09:17:08 +00:00
Evgeniy Stepanov
a7f9071f25
[sanitizer] Intercept tsearch.
...
llvm-svn: 206755
2014-04-21 14:21:51 +00:00
Dmitry Vyukov
5e52f3a142
tsan: deflake test
...
ocasionally it fails with a slightly different report:
WARNING: ThreadSanitizer: signal handler spoils errno (pid=3674)
#0 MyHandler(int, siginfo*, void*)
...
#4 __tsan_free_hook
#5 main signal_errno.cc:40
llvm-svn: 206754
2014-04-21 14:21:24 +00:00
Kostya Serebryany
38bb53b2c5
[asan] add a run-time flag detect_container_overflow=true/false
...
llvm-svn: 206753
2014-04-21 14:18:45 +00:00
Kostya Serebryany
632751539e
[asan] add __asan_memset and friends
...
llvm-svn: 206748
2014-04-21 11:58:25 +00:00
Dmitry Vyukov
10d4b14a16
tsan: add benchmark that allows to investigate shadow memory consumption
...
llvm-svn: 206578
2014-04-18 10:37:39 +00:00
Kostya Serebryany
498b18a01e
[asan] try to harden __tls_get_addr interceptor against signals (no good test still); update the comment in a test.
...
llvm-svn: 206367
2014-04-16 09:07:27 +00:00
Alexander Potapenko
65a6c57013
[ASan] Replace a CHECK for mmap_limit_mb with a RAW_CHECK.
...
In the case of a CHECK failure the program tries to fork and launch llvm-symbolizer,
but hangs in mz_force_lock because one of the allocator locks is already acquired.
llvm-svn: 206274
2014-04-15 11:36:18 +00:00
Kostya Serebryany
b1232474b2
[asan] try fixing the mmap_limit_mb failure on buildbot (tests pass locally)
...
llvm-svn: 206262
2014-04-15 08:35:43 +00:00
Evgeniy Stepanov
81d80f7578
[asan] Fix mmap_limit_mb test to not use C++11.
...
llvm-svn: 206182
2014-04-14 15:37:02 +00:00
Evgeniy Stepanov
681016b2ea
[asan] Do not use lambda in sanitizer lit tests.
...
We may be building with a very old C++ library.
llvm-svn: 206180
2014-04-14 15:19:07 +00:00
Kostya Serebryany
bcfbea6d4e
[asan] added internal flag mmap_limit_mb
...
llvm-svn: 206178
2014-04-14 14:51:01 +00:00
Kostya Serebryany
90527cb324
[asan] don't use bool in public interface, make sure the interface headers are usable in plain C
...
llvm-svn: 206160
2014-04-14 11:16:53 +00:00
Kostya Serebryany
f694ab1f18
[asan] provide better reports for cases where memcpy/etc get negative size parameter. Also fix a typo found by Tetsuo Kiso
...
llvm-svn: 206158
2014-04-14 09:50:52 +00:00
Evgeniy Stepanov
77d8793fa6
[tsan] Fix output tests.
...
llvm-svn: 206031
2014-04-11 13:01:20 +00:00
Evgeniy Stepanov
652cbd7c15
[tsan] Fix false positive on xdr*_create.
...
llvm-svn: 206030
2014-04-11 12:29:24 +00:00
Evgeniy Stepanov
24c8d92fec
[sanitizer] Intercept a subset of sunrpc interface (xdr_*).
...
llvm-svn: 205627
2014-04-04 14:51:23 +00:00
Alexey Samsonov
7dc3c0fb2b
[ASan] Explicitly specify -ldl/-lpthread in RUN-lines where needed
...
llvm-svn: 205623
2014-04-04 12:24:46 +00:00
Dmitry Vyukov
1d66c4d5b7
tsan: improve error message in test
...
we've seen a flake on this test
next time it happens we will be able to gather some info
llvm-svn: 205619
2014-04-04 09:52:41 +00:00
Kostya Serebryany
9f20c9b17c
[asan] fix a leak in __tls_get_addr handler; introduce a run-time flag to disable this handler completely; remove a workaround for a bug fixed in glibc
...
llvm-svn: 205617
2014-04-04 09:10:58 +00:00
Evgeniy Stepanov
6d8f71f928
Revert r205613.
...
llvm-svn: 205614
2014-04-04 08:58:16 +00:00
Evgeniy Stepanov
fe82d5f849
[msan] Fix compilation of a disabled test.
...
llvm-svn: 205613
2014-04-04 08:39:50 +00:00
Evgeniy Stepanov
6cc687541f
[msan] Add missing test for r205413.
...
llvm-svn: 205417
2014-04-02 12:38:13 +00:00
Duncan P. N. Exon Smith
dd690a2ca4
InstrProfile: Use SANITIZER_COMMON_LIT_TEST_DEPS
...
Take advantage of the SANITIZER_COMMON_LIT_TEST_DEPS variable.
<rdar://problem/16458307>
llvm-svn: 205321
2014-04-01 16:05:15 +00:00
Duncan P. N. Exon Smith
48e24c7355
InstrProf: Turn on test for Linux
...
Enabling test/profile on Linux to get feedback from the buildbots. I'm
hoping this just works...
<rdar://problem/16458307>
llvm-svn: 205319
2014-04-01 15:56:05 +00:00
Duncan P. N. Exon Smith
a5f806e599
InstrProf: Remove LTO dependency from test
...
The -flto flag relies on linker features that are not available on all
platforms.
<rdar://problem/16458307>
llvm-svn: 205318
2014-04-01 15:29:27 +00:00
Joerg Sonnenberger
6530149704
Add support for IEEE754 quad precision comparison functions.
...
From GuanHong Liu.
Differential Revision: http://llvm-reviews.chandlerc.com/D2797
llvm-svn: 205312
2014-04-01 13:42:56 +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
28f30b4176
[TSan] Make this test more portable
...
llvm-svn: 205300
2014-04-01 11:51:50 +00:00
Kostya Serebryany
432c46bf70
[sanitizer] one more stress test for the deadlock detector; this one stresses the slow path with a global lock
...
llvm-svn: 205299
2014-04-01 11:35:55 +00:00
Duncan P. N. Exon Smith
da91cbdfa8
InstrProf: lit.cfg magic for running tests from source
...
Implement magic in compiler-rt to enable llvm-lit to be invoked on the
source tree in lib/profile. This relies on a paired commit in the llvm
tree that exposes a new built-in parameter.
<rdar://problem/16458307>
llvm-svn: 205263
2014-03-31 23:14:28 +00:00
Duncan P. N. Exon Smith
ae2f0bbcf1
InstrProf: Add simple compiler-rt test
...
Add the test infrastructure for testing lib/profile and a single test.
This initial commit only enables the tests on Darwin, but they'll be
enabled on Linux soon after.
<rdar://problem/16458307>
llvm-svn: 205256
2014-03-31 22:45:37 +00:00
Evgeniy Stepanov
3c95744de8
[msan] Remove an extra top frame from track-origins=2 reports.
...
llvm-svn: 205192
2014-03-31 14:18:55 +00:00
Alexander Potapenko
0315b52444
[TSan] Follow-up for r205175: typo fix in the test.
...
llvm-svn: 205176
2014-03-31 10:51:13 +00:00
Evgeniy Stepanov
92bee36b3e
[sanitizer] Intercept rand_r.
...
llvm-svn: 205001
2014-03-28 11:21:45 +00:00
Evgeniy Stepanov
2e972f63b5
[sanitizer] Intercept mktime.
...
llvm-svn: 204994
2014-03-28 09:02:57 +00:00
Evgeniy Stepanov
7b44e1ad42
[sanitizer] Intercept ftime.
...
llvm-svn: 204991
2014-03-28 08:33:32 +00:00
Evgeniy Stepanov
a6eb1bb59e
[sanitizer] Intercept __bzero on Mac.
...
This should make memset_test pass on Mac.
llvm-svn: 204929
2014-03-27 14:20:34 +00:00
Evgeniy Stepanov
89602651e8
[msan] Implement __msan_set_death_callback.
...
llvm-svn: 204926
2014-03-27 14:04:58 +00:00
Evgeniy Stepanov
9dcd5a353a
[msan] Intercept several malloc-related functions.
...
llvm-svn: 204923
2014-03-27 13:29:29 +00:00
Kostya Serebryany
d093b5ac43
[asan] add a test case for r204897.
...
llvm-svn: 204903
2014-03-27 08:51:32 +00:00
Kostya Serebryany
88d0eac412
[asan] Do not sanitize kernel area on 32-bit targets, patch by Yuri Gribov
...
llvm-svn: 204897
2014-03-27 07:36:26 +00:00
Peter Collingbourne
5d167dae7d
Add function to get the number of DFSan labels allocated.
...
Expose the number of DFSan labels allocated by adding function dfsan_get_label_count().
Patch by Sam Kerner!
Differential Revision: http://llvm-reviews.chandlerc.com/D3109
llvm-svn: 204854
2014-03-26 21:09:53 +00:00
Dmitry Vyukov
e31dd3473e
tsan: deflake test
...
llvm-svn: 204824
2014-03-26 15:51:11 +00:00
Dmitry Vyukov
4bfb4cb1e7
tsan: add pthread_barrier_t test
...
llvm-svn: 204810
2014-03-26 14:13:49 +00:00
Evgeniy Stepanov
16d89fc356
[sanitizer] Intercept __aeabi_mem(set|cpy|move).
...
llvm-svn: 204800
2014-03-26 12:14:34 +00:00
Dmitry Vyukov
775b11cc53
tsan: reduce default number of threads in benchmarks
...
buildbots seem to OOM with that many threads
llvm-svn: 204610
2014-03-24 15:23:05 +00:00
Dmitry Vyukov
238bd23534
tsan: add benchmarks for synchronization handling
...
llvm-svn: 204608
2014-03-24 14:32:59 +00:00
Kostya Serebryany
3df5d87da4
[sanitizer] print threads in deadlock report
...
llvm-svn: 204461
2014-03-21 13:00:18 +00:00
Kostya Serebryany
7317d9499b
[sanitizer] more human-readable deadlock reports
...
llvm-svn: 204454
2014-03-21 11:37:43 +00:00
Sergey Matveev
fa76f3b3a5
[MSan] Add __msan_unpoison_string() to the public interface.
...
Using __msan_unpoison() on null-terminated strings is awkward because
strlen() can't be called on a poisoned string. This case warrants a special
interface function.
llvm-svn: 204448
2014-03-21 10:12:17 +00:00
Evgeniy Stepanov
d17b061eed
[msan] Use new -fsanitize-memory-track-origins= flag in MSan tests.
...
llvm-svn: 204347
2014-03-20 15:00:39 +00:00
Dmitry Vyukov
454abc0093
tsan: deflake test
...
llvm-svn: 204340
2014-03-20 13:27:11 +00:00
Alexey Samsonov
6c3f7fcb8a
Mark this test as 64-bit specific
...
llvm-svn: 204319
2014-03-20 07:37:45 +00:00
Dmitry Vyukov
1af191e1f4
tsan: add test for second_deadlock_stack flag
...
llvm-svn: 204240
2014-03-19 15:00:38 +00:00
Evgeniy Stepanov
a57750482f
[msan] Fix line numbers in test.
...
This corresponds to a fix in llvm::SplitBlockAndInsertIfThen.
llvm-svn: 204229
2014-03-19 12:56:38 +00:00
Kostya Serebryany
2ea796e05f
[sanitizer] deadlock detector: a) initial support for suppressions, b) be more robust in case we failed to extract a stack trace for one of the locks
...
llvm-svn: 204225
2014-03-19 12:26:33 +00:00
Joerg Sonnenberger
14743127b7
Use CRT_HAS_128BIT.
...
llvm-svn: 204182
2014-03-18 21:35:30 +00:00
Evgeniy Stepanov
412d973980
[msan] Origin tracking with history, compiler-rt part.
...
Compiler-rt part of MSan implementation of advanced origin tracking,
when we record not only creation point, but all locations where
an uninitialized value was stored to memory, too.
llvm-svn: 204152
2014-03-18 13:45:19 +00:00
Dmitry Vyukov
eac8cc7a42
tsan: fix flaky test
...
llvm-svn: 204119
2014-03-18 06:37:31 +00:00
Kostya Serebryany
5c0171b811
[sanitizer] a bit more informative deadlock detector report (still lots to improve)
...
llvm-svn: 204115
2014-03-18 05:56:14 +00:00
Kostya Serebryany
f01c094cdd
[sanitizer] reverse the order of the stack traces printed for every pair of locks in the deadlock report (first print the 'from' node, then print the 'to' node of the deadlock graph)
...
llvm-svn: 204043
2014-03-17 14:56:04 +00:00
Kostya Serebryany
8976539627
[sanitizer] make the deadlock detector print 2*N stack traces on lock-order-inversion with N locks (i.e. print stack traces for both lock acquisitions in every edge in the graph). More improvements to follow
...
llvm-svn: 204042
2014-03-17 14:41:36 +00:00
Kostya Serebryany
779ccf3b2c
[sanitizer] one more output test for the deadlock detector
...
llvm-svn: 204036
2014-03-17 09:32:48 +00:00
Kostya Serebryany
b9cb473fb8
[sanitizer] fix build warnings; add an output test for the deadlock detecor
...
llvm-svn: 204035
2014-03-17 09:21:41 +00:00
Alexander Potapenko
b76ea32834
[ASan] Fix https://code.google.com/p/address-sanitizer/issues/detail?id=274
...
by ignoring globals from __TEXT,__cstring,cstring_literals during instrumenation.
Add a regression test.
llvm-svn: 203916
2014-03-14 10:41:49 +00:00
Dmitry Vyukov
a02fac7bec
tsan: update the test since the bug is fixed
...
http://llvm.org/bugs/show_bug.cgi?id=19113 is fixed, so enable the better CHECK
llvm-svn: 203784
2014-03-13 10:54:16 +00:00
Kostya Serebryany
de3f20cf4b
[sanitizer] support recursive rwlocks in bitset-based deadlock detector
...
llvm-svn: 203779
2014-03-13 10:26:03 +00:00
Dmitry Vyukov
8c0f86e307
tsan: fix handling of pthread_cond_wait in presence of pthread_cancel
...
if the thread is cancelled in pthread_cond_wait, it locks the mutex before
processing pthread_cleanup stack
but tsan was missing that, thus reporting false double-lock/wrong-unlock errors
see the test for details
llvm-svn: 203648
2014-03-12 09:48:14 +00:00
Dmitry Vyukov
47fd6179b1
tsan: add disabled test for http://llvm.org/bugs/show_bug.cgi?id=19113
...
llvm-svn: 203646
2014-03-12 08:24:49 +00:00
Alexey Samsonov
8ad7a05bb4
Improve llvm-symbolizer discovery in asan_symbolize.py
...
llvm-svn: 202982
2014-03-05 15:00:36 +00:00
Sergey Matveev
8bf42919e6
[msan] Make up for missing interceptor in getxattr() test.
...
llvm-svn: 202846
2014-03-04 13:13:34 +00:00
Alexey Samsonov
3d9adc0a73
[ASan] Speed up stack trace unwinding for stacks of size 2.
...
Summary:
We don't need to do any work in this case - just take
the current PC and caller PC.
Reviewers: eugenis, ygribov
Reviewed By: eugenis
CC: llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D2936
llvm-svn: 202845
2014-03-04 13:12:25 +00:00
Sergey Matveev
e7b3e4c2ae
[msan] Add missing line to getxattr() test.
...
llvm-svn: 202841
2014-03-04 12:41:18 +00:00
Dmitry Vyukov
811d16c953
tsan: prevent actual deadlock in deadlock detector test
...
llvm-svn: 202502
2014-02-28 14:34:25 +00:00
Kostya Serebryany
eae464f911
[sanitizer] speedup deadlock detector for the case when we acquire the first lock in a thread
...
llvm-svn: 202492
2014-02-28 11:56:14 +00:00
Kostya Serebryany
afc4f2af76
[sanitizer] speedup deadlock detector for the case when we destroy a mutex that has never been locked
...
llvm-svn: 202487
2014-02-28 10:59:33 +00:00
Dmitry Vyukov
371639ea1f
tsan: deflake test
...
llvm-svn: 202484
2014-02-28 10:47:07 +00:00
Kostya Serebryany
261993ad1a
[sanitizer] a test for recursive rwlock and deadlock detector (currently fails)
...
llvm-svn: 202480
2014-02-28 10:03:51 +00:00