diff options
author | Yury Gribov <y.gribov@samsung.com> | 2014-05-14 08:33:45 +0000 |
---|---|---|
committer | Yury Gribov <ygribov@gcc.gnu.org> | 2014-05-14 08:33:45 +0000 |
commit | 2675305b4f6ed4820b9c41cd7672ec2996799578 (patch) | |
tree | 344d97df3e133d20059ec12568ffce31177be3e3 /gcc | |
parent | 5600d8982ea2d310eb9ebaff2e798b40ed570260 (diff) | |
download | gcc-2675305b4f6ed4820b9c41cd7672ec2996799578.zip gcc-2675305b4f6ed4820b9c41cd7672ec2996799578.tar.gz gcc-2675305b4f6ed4820b9c41cd7672ec2996799578.tar.bz2 |
re PR sanitizer/61100 (asan/tsan should have the sanitizer includes)
2014-05-14 Yury Gribov <y.gribov@samsung.com>
PR sanitizer/61100
* Makefile.am (nodist_saninclude_HEADERS): Install
public headers.
* Makefile.in: Regenerate.
* c-c++-common/asan/asan-interface-1.c: New test.
* lib/asan-dg.exp (asan_include_flags): New function.
(asan_init): Call asan_include_flags to obtain path
to sanitizer headers.
From-SVN: r210413
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/testsuite/c-c++-common/asan/asan-interface-1.c | 13 | ||||
-rw-r--r-- | gcc/testsuite/lib/asan-dg.exp | 23 |
3 files changed, 41 insertions, 3 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 8508f37..2e49912 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2014-05-14 Yury Gribov <y.gribov@samsung.com> + + PR sanitizer/61100 + * c-c++-common/asan/asan-interface-1.c: New test. + * lib/asan-dg.exp (asan_include_flags): New function. + (asan_init): Call asan_include_flags to obtain path + to sanitizer headers. + 2014-05-13 Peter Bergner <bergner@vnet.ibm.com> * lib/target-support.exp (check_dfp_hw_available): New function. diff --git a/gcc/testsuite/c-c++-common/asan/asan-interface-1.c b/gcc/testsuite/c-c++-common/asan/asan-interface-1.c new file mode 100644 index 0000000..33ed1b0 --- /dev/null +++ b/gcc/testsuite/c-c++-common/asan/asan-interface-1.c @@ -0,0 +1,13 @@ +/* Check that interface headers work. */ + +/* { dg-do run { target { *-*-linux* } } } */ + +#include <sanitizer/asan_interface.h> + +int main() { + char tmp; + if (__asan_address_is_poisoned((volatile char *)&tmp + 1)) + return 0; + return 1; +} + diff --git a/gcc/testsuite/lib/asan-dg.exp b/gcc/testsuite/lib/asan-dg.exp index 9ba39db..7a12160 100644 --- a/gcc/testsuite/lib/asan-dg.exp +++ b/gcc/testsuite/lib/asan-dg.exp @@ -23,6 +23,21 @@ proc check_effective_target_faddress_sanitizer {} { } "-fsanitize=address"] } +proc asan_include_flags {} { + global srcdir + global TESTING_IN_BUILD_TREE + + set flags "" + + if { [is_remote host] || ! [info exists TESTING_IN_BUILD_TREE] } { + return "${flags}" + } + + set flags "-I$srcdir/../../libsanitizer/include" + + return "$flags" +} + # # asan_link_flags -- compute library path and flags to find libasan. # (originally from g++.exp) @@ -80,17 +95,19 @@ proc asan_init { args } { } } + set include_flags "[asan_include_flags]" + if [info exists TEST_ALWAYS_FLAGS] { set asan_saved_TEST_ALWAYS_FLAGS $TEST_ALWAYS_FLAGS } if [info exists ALWAYS_CXXFLAGS] { set ALWAYS_CXXFLAGS [concat "{ldflags=$link_flags}" $ALWAYS_CXXFLAGS] - set ALWAYS_CXXFLAGS [concat "{additional_flags=-fsanitize=address -g}" $ALWAYS_CXXFLAGS] + set ALWAYS_CXXFLAGS [concat "{additional_flags=-fsanitize=address -g $include_flags}" $ALWAYS_CXXFLAGS] } else { if [info exists TEST_ALWAYS_FLAGS] { - set TEST_ALWAYS_FLAGS "$link_flags -fsanitize=address -g $TEST_ALWAYS_FLAGS" + set TEST_ALWAYS_FLAGS "$link_flags -fsanitize=address -g $include_flags $TEST_ALWAYS_FLAGS" } else { - set TEST_ALWAYS_FLAGS "$link_flags -fsanitize=address -g" + set TEST_ALWAYS_FLAGS "$link_flags -fsanitize=address -g $include_flags" } } if { $link_flags != "" } { |