Hi!

Eric has reported this testcase fails on sparc64 at -O0.

The reason is that after reporting the upcoming UB it actually performs the
UB, out of bounds write and still expects the test to finish properly, which
sometimes just isn't the case.

Fixed by making the ubsan runtime failure fatal and expecting testsuite
failure instead.  Regtested on x86_64-linux and i686-linux, committed to
trunk as obvious.

2018-03-02  Jakub Jelinek  <ja...@redhat.com>

        PR sanitizer/70875
        * gcc.dg/ubsan/bounds-3.c: Add -fno-sanitize-recover=bounds to
        dg-options and dg-shouldfail "ubsan" directive.

--- gcc/testsuite/gcc.dg/ubsan/bounds-3.c.jj    2016-05-06 15:09:06.361758948 
+0200
+++ gcc/testsuite/gcc.dg/ubsan/bounds-3.c       2018-03-01 17:44:13.722455985 
+0100
@@ -1,6 +1,7 @@
 /* PR sanitizer/70875 */
 /* { dg-do run } */
-/* { dg-options "-fsanitize=bounds" } */
+/* { dg-options "-fsanitize=bounds -fno-sanitize-recover=bounds" } */
+/* { dg-shouldfail "ubsan" } */
 
 int
 foo (int n, int k)

        Jakub

Reply via email to