Will Dietz
3177a7f38a
ubsan: Fix typo in 'TypeCheck/vptr.cpp' test to resolve 32bit failure.
...
llvm-svn: 196799
2013-12-09 19:04:33 +00:00
Will Dietz
186507dac6
Fix integer tests on platforms where uint64_t is 'unsigned long long'.
...
llvm-svn: 196612
2013-12-06 21:49:18 +00:00
Alexey Samsonov
164841036d
[UBSan] Make sure ASan and UBSan interact properly by running each test from UBSan test suite with and without ASan
...
llvm-svn: 194698
2013-11-14 12:30:09 +00:00
Peter Collingbourne
791e65dcfb
Overhaul the symbolizer interface.
...
This moves away from creating the symbolizer object and initializing the
external symbolizer as separate steps. Those steps now always take place
together.
Sanitizers with a legacy requirement to specify their own symbolizer path
should use InitSymbolizer to initialize the symbolizer with the desired
path, and GetSymbolizer to access the symbolizer. Sanitizers with no
such requirement (e.g. UBSan) can use GetOrInitSymbolizer with no need for
initialization.
The symbolizer interface has been made thread-safe (as far as I can
tell) by protecting its member functions with mutexes.
Finally, the symbolizer interface no longer relies on weak externals, the
introduction of which was probably a mistake on my part.
Differential Revision: http://llvm-reviews.chandlerc.com/D1985
llvm-svn: 193448
2013-10-25 23:03:29 +00:00
Peter Collingbourne
90a0876ae7
Runtime support for the indirect function call checker.
...
Differential Revision: http://llvm-reviews.chandlerc.com/D1339
llvm-svn: 193060
2013-10-20 21:29:46 +00:00
Peter Collingbourne
b714e7e12a
[ubsan] Introduce %clangxx substitution for all C++ tests.
...
llvm-svn: 193059
2013-10-20 21:29:32 +00:00
Alexey Samsonov
f2b811a618
Refactor the usage of strip_path_prefix option and make it more consistent across sanitizers
...
llvm-svn: 191943
2013-10-04 08:55:03 +00:00
Nick Lewycky
f60d8ae155
This fixme is resolved, fix the test.
...
llvm-svn: 191810
2013-10-02 05:05:28 +00:00
Rui Ueyama
633ec6848b
Add "CHECK-" prefix to un-break buildbot failure.
...
After r188221, the prefix given by --check-prefix must match with the label
as a whole. Substring is not considered to be a correct label anymore.
llvm-svn: 188227
2013-08-12 23:43:19 +00:00
Daniel Dunbar
bc5dbc435e
[tests] Update to use lit_config and lit package, as appropriate.
...
llvm-svn: 188116
2013-08-09 22:14:01 +00:00
Rafael Espindola
f4fa0d8d9f
disable pipefail for ubsan.
...
llvm-svn: 187273
2013-07-26 23:40:17 +00:00
Hans Wennborg
cb445d882e
Fix another instance of -ccc-cxx vs. --driver-mode=g++
...
llvm-svn: 186609
2013-07-18 21:09:03 +00:00
Alexey Samsonov
889e3ab83c
[ASan] create separate configs for running ASan lit tests in both 32- and 64-bit mode. Clean up RUN-lines in tests.
...
llvm-svn: 183498
2013-06-07 09:38:55 +00:00
Alexey Samsonov
e3bf521b7c
Remove a bunch of copy-paste: use common config for sanitizer lit/unit tests
...
llvm-svn: 183407
2013-06-06 13:28:37 +00:00
Alexey Samsonov
9c2bcf8c15
Improve support for compiler-rt tests in CMake build.
...
Now compiler-rt tests run correctly if compiler-rt is checked out into
arbitrary directory (not necessarily projects/compiler-rt).
Patch by Greg Fitzgerald!
llvm-svn: 182726
2013-05-27 09:35:24 +00:00
Alexey Samsonov
9f3938e271
Explicitly list all sanitizer headers in CMake build rules. Make sure sanitizer lit_tests depend on fresh headers.
...
llvm-svn: 179293
2013-04-11 15:49:52 +00:00
Richard Smith
74e3d39710
compiler-rt part of r178194. Remove ubsan test for diagnostic on inf/nan conversion between floating-point types.
...
llvm-svn: 178195
2013-03-27 23:21:10 +00:00
Richard Smith
807e4dced5
Update ubsan test for clang change r177362.
...
llvm-svn: 177363
2013-03-19 00:04:20 +00:00
Richard Smith
0404ec8396
ubsan: Runtime handlers for array indexing checks.
...
llvm-svn: 175948
2013-02-23 02:40:07 +00:00
Richard Smith
6d9f13127c
ubsan: Add checking for invalid downcasts. Per [expr.static.cast]p2 and p11,
...
base-to-derived casts have undefined behavior if the object is not actually an
instance of the derived type. Runtime library part.
llvm-svn: 175079
2013-02-13 21:18:23 +00:00
Will Dietz
765c266892
[ubsan] Add deduplication functionality, always enabled.
...
llvm-svn: 171948
2013-01-09 03:40:03 +00:00
Will Dietz
2b40b7ef84
[ubsan] Check for appropriate types on compound assignment overflow diagnostics.
...
llvm-svn: 171802
2013-01-07 22:25:54 +00:00
Will Dietz
82f61bf4b6
[ubsan] Don't suggest casting to unsigned for unsigned unary minus overflow.
...
Fixed version of r171273.
llvm-svn: 171278
2012-12-31 06:36:44 +00:00
Chandler Carruth
5f8061bc36
Revert r171273 which doesn't actually compile.
...
Original commit message:
[ubsan] Don't suggest casting to unsigned for unsigned unary minus overflow.
llvm-svn: 171277
2012-12-31 06:16:47 +00:00
Will Dietz
d6cd3203f6
[ubsan] Don't suggest casting to unsigned for unsigned unary minus overflow.
...
llvm-svn: 171273
2012-12-31 02:20:55 +00:00
Will Dietz
2a5f569d88
[ubsan] Update test now that check recovery is default and has driver flag.
...
llvm-svn: 171265
2012-12-30 20:53:39 +00:00
Alexey Samsonov
c20f5d2246
Define COMPILER_RT_CAN_EXECUTE_TESTS variable on platforms where we can produce working binaries and use it in build rules for sanitizers tests
...
llvm-svn: 171160
2012-12-27 13:19:23 +00:00
Richard Smith
7e45562ad0
ubsan: Demangle class names, and be more informative when a reinterpret_cast
...
has got us to the wrong offset within an object.
llvm-svn: 170423
2012-12-18 09:30:21 +00:00
Richard Smith
cf56ebd52a
ubsan: When diagnosing something wrong somewhere in memory, emit a note
...
pointing at the bad location and a snippet of nearby memory values. This is
strictly best-effort; reading these bytes to display the note could lead to a
seg fault, and that's explicitly OK.
llvm-svn: 170415
2012-12-18 06:30:32 +00:00
Richard Smith
52987120f9
ubsan: if the frontend didn't provide us with a source location, try to work
...
one out from the return address. Currently, we can only resolve this address to
a file and line number if we have an external symbolizer.
llvm-svn: 170407
2012-12-18 04:23:18 +00:00
Richard Smith
37a913ae8f
Rein ubsan's vptr sanitizer back a bit. Per core issue 453, binding a reference
...
to an object outside its lifetime does not have undefined behavior.
llvm-svn: 170388
2012-12-18 00:23:12 +00:00
Richard Smith
177f80376d
ubsan unit tests for -fsanitize=bool and -fsanitize=enum.
...
llvm-svn: 170109
2012-12-13 07:12:20 +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
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
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
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
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
Richard Smith
2f0d7d564c
-fcatch-undefined-behavior checking for appropriate vptr value: library side.
...
llvm-svn: 166660
2012-10-25 02:07:02 +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
68b3014cd3
Add a runtime diagnostics library for Clang's -fcatch-undefined-behavior.
...
llvm-svn: 165533
2012-10-09 19:34:32 +00:00