On Thu, Feb 4, 2016 at 1:49 PM, Andreas Schwab <sch...@suse.de> wrote:
>>> OTOH, does this testcase even gets a chance to run? >> >> It's not a runtime check. > > But it didn't link until today: > > Running /opt/gcc/gcc-20160203/gcc/testsuite/gcc.dg/sancov/sancov.exp ... > Executing on host: /opt/gcc/gcc-20160203/Build/gcc/xgcc > -B/opt/gcc/gcc-20160203/Build/gcc/ fsanitize_address29346.c > -fno-diagnostics-show-caret -fdiagnostics-color=never -fsanitize=address > -lm -o fsanitize_address29346.exe (timeout = 300) > spawn -ignore SIGHUP /opt/gcc/gcc-20160203/Build/gcc/xgcc > -B/opt/gcc/gcc-20160203/Build/gcc/ fsanitize_address29346.c > -fno-diagnostics-show-caret -fdiagnostics-color=never -fsanitize=address -lm > -o fsanitize_address29346.exe. > /usr/aarch64-suse-linux/bin/ld: cannot find libasan_preinit.o: No such file > or directory. > /usr/aarch64-suse-linux/bin/ld: cannot find -lasan. > collect2: error: ld returned 1 exit status. > compiler exited with status 1 > output is: > /usr/aarch64-suse-linux/bin/ld: cannot find libasan_preinit.o: No such file > or directory. > /usr/aarch64-suse-linux/bin/ld: cannot find -lasan. > collect2: error: ld returned 1 exit status. > > UNSUPPORTED: gcc.dg/sancov/asan.c -O0 > UNSUPPORTED: gcc.dg/sancov/asan.c -O1 > UNSUPPORTED: gcc.dg/sancov/asan.c -O2 > UNSUPPORTED: gcc.dg/sancov/asan.c -O3 > UNSUPPORTED: gcc.dg/sancov/asan.c -O0 -g > UNSUPPORTED: gcc.dg/sancov/asan.c -O1 -g > UNSUPPORTED: gcc.dg/sancov/asan.c -O2 -g > UNSUPPORTED: gcc.dg/sancov/asan.c -O3 -g We have to move the testcase from sancov to asan directory, otherwise the test won't work (and it didn't work even on x86_64, since the effective target test always failed). 2016-02-04 Uros Bizjak <ubiz...@gmail.com> * gcc.dg/sancov/asan.c: Move to ... * gcc.dg/asan/sancov-1.c: ... here. The patch was tested on x86_64-linux-gnu and I have double checked that the testcase passes. OK for mainline? Uros.
Index: gcc.dg/asan/sancov-1.c =================================================================== --- gcc.dg/asan/sancov-1.c (nonexistent) +++ gcc.dg/asan/sancov-1.c (working copy) @@ -0,0 +1,19 @@ +/* Test coverage/asan interaction: + - coverage instruments __asan_init ctor (thus 4 covarage callbacks) + - coverage does not instrument asan-emitted basic blocks + - asan considers coverage callback as "nonfreeing" (thus 1 asan store + callback. */ +/* { dg-do compile } */ +/* { dg-skip-if "" { *-*-* } { "-flto" } { "" } } */ +/* { dg-options "-fsanitize-coverage=trace-pc -fsanitize=address -fdump-tree-optimized" } */ + +void foo(volatile int *a, int *b) +{ + *a = 1; + if (*b) + *a = 2; +} + +/* { dg-final { scan-tree-dump-times "__builtin___sanitizer_cov_trace_pc \\(\\)" 4 "optimized" } } */ +/* { dg-final { scan-tree-dump-times "__builtin___asan_report_load4 \\(" 1 "optimized" } } */ +/* { dg-final { scan-tree-dump-times "__builtin___asan_report_store4 \\(" 1 "optimized" } } */ Index: gcc.dg/sancov/asan.c =================================================================== --- gcc.dg/sancov/asan.c (revision 233127) +++ gcc.dg/sancov/asan.c (nonexistent) @@ -1,18 +0,0 @@ -/* Test coverage/asan interaction: - - coverage instruments __asan_init ctor (thus 4 covarage callbacks) - - coverage does not instrument asan-emitted basic blocks - - asan considers coverage callback as "nonfreeing" (thus 1 asan store - callback. */ -/* { dg-do compile { target fsanitize_address } } */ -/* { dg-options "-fsanitize-coverage=trace-pc -fsanitize=address -fdump-tree-optimized" } */ - -void foo(volatile int *a, int *b) -{ - *a = 1; - if (*b) - *a = 2; -} - -/* { dg-final { scan-tree-dump-times "__builtin___sanitizer_cov_trace_pc \\(\\)" 4 "optimized" } } */ -/* { dg-final { scan-tree-dump-times "__builtin___asan_report_load4 \\(" 1 "optimized" } } */ -/* { dg-final { scan-tree-dump-times "__builtin___asan_report_store4 \\(" 1 "optimized" } } */