[pushed] c++: -fsanitize=vptr and -fstrong-eval-order. [PR95221]
Thomas Schwinge
thomas@codesourcery.com
Tue Jun 23 11:21:05 GMT 2020
Hi Jason!
On 2020-05-22T17:03:01-0400, Jason Merrill via Gcc-patches <gcc-patches@gcc.gnu.org> wrote:
> [...]
>
> This issue suggests that we should be running the ubsan tests in multiple
> standard modes like the rest of the G++ testsuite, so I've made that change
> as well.
> --- a/gcc/testsuite/g++.dg/ubsan/ubsan.exp
> +++ b/gcc/testsuite/g++.dg/ubsan/ubsan.exp
> @@ -26,7 +26,7 @@ ubsan_init
>
> # Main loop.
> if [check_effective_target_fsanitize_undefined] {
> - gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.C $srcdir/c-c++-common/ubsan/*.c]] "" ""
> + g++-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.C $srcdir/c-c++-common/ubsan/*.c]] "" ""
> }
Hmm, but that means that testing is now no longer running the
"optimization options torture testing":
Running [...]/source-gcc/gcc/testsuite/g++.dg/ubsan/ubsan.exp ...
-PASS: c-c++-common/ubsan/align-1.c -O0 (test for excess errors)
-PASS: c-c++-common/ubsan/align-1.c -O0 execution test
-PASS: c-c++-common/ubsan/align-1.c -O1 (test for excess errors)
-PASS: c-c++-common/ubsan/align-1.c -O1 execution test
-PASS: c-c++-common/ubsan/align-1.c -O2 (test for excess errors)
-PASS: c-c++-common/ubsan/align-1.c -O2 execution test
-PASS: c-c++-common/ubsan/align-1.c -O2 -flto -fno-use-linker-plugin -flto-partition=none (test for excess errors)
-PASS: c-c++-common/ubsan/align-1.c -O2 -flto -fno-use-linker-plugin -flto-partition=none execution test
-PASS: c-c++-common/ubsan/align-1.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects (test for excess errors)
-PASS: c-c++-common/ubsan/align-1.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects execution test
-PASS: c-c++-common/ubsan/align-1.c -O3 -g (test for excess errors)
-PASS: c-c++-common/ubsan/align-1.c -O3 -g execution test
-PASS: c-c++-common/ubsan/align-1.c -Os (test for excess errors)
-PASS: c-c++-common/ubsan/align-1.c -Os execution test
+PASS: c-c++-common/ubsan/align-1.c -std=gnu++14 (test for excess errors)
+PASS: c-c++-common/ubsan/align-1.c -std=gnu++14 execution test
+PASS: c-c++-common/ubsan/align-1.c -std=gnu++17 (test for excess errors)
+PASS: c-c++-common/ubsan/align-1.c -std=gnu++17 execution test
+PASS: c-c++-common/ubsan/align-1.c -std=gnu++2a (test for excess errors)
+PASS: c-c++-common/ubsan/align-1.c -std=gnu++2a execution test
+PASS: c-c++-common/ubsan/align-1.c -std=gnu++98 (test for excess errors)
+PASS: c-c++-common/ubsan/align-1.c -std=gnu++98 execution test
Etc.
Not sure if that was intentional? I suppose this removed way more
testsuite coverage compared to what different C++ '-std=[...]' add?
> The testcase changes are all to accommodate that.
> /* { dg-options "-fsanitize=bounds -Wno-array-bounds" } */
> +/* { dg-options "-fsanitize=bounds -Wno-array-bounds -Wno-volatile" { target c++ } } */
Simpler would've been (untested):
+/* { dg-additional-options "-Wno-volatile" { target c++ } } */
Etc.
;-)
Grüße
Thomas
-----------------
Mentor Graphics (Deutschland) GmbH, Arnulfstraße 201, 80634 München / Germany
Registergericht München HRB 106955, Geschäftsführer: Thomas Heurung, Alexander Walter
More information about the Gcc-patches
mailing list