null-8.C (bar): New function.
authorJakub Jelinek <jakub@redhat.com>
Mon, 27 Nov 2017 10:29:03 +0000 (11:29 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Mon, 27 Nov 2017 10:29:03 +0000 (11:29 +0100)
* g++.dg/ubsan/null-8.C (bar): New function.
(foo): Use bar instead of __builtin_printf.

From-SVN: r255162

gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/ubsan/null-8.C

index 87e930a..1c09306 100644 (file)
@@ -1,5 +1,8 @@
 2017-11-27  Jakub Jelinek  <jakub@redhat.com>
 
+       * g++.dg/ubsan/null-8.C (bar): New function.
+       (foo): Use bar instead of __builtin_printf.
+
        PR debug/81307
        * g++.dg/debug/debug9.C: Remove -fno-reorder-blocks-and-partition
        workaround.
index 259a213..cea289e 100644 (file)
@@ -3,13 +3,20 @@
 // { dg-options "-fsanitize=null -std=c++14" }
 // { dg-output "reference binding to null pointer of type 'const int'" }
 
+__attribute__((noinline, noclone))
+void
+bar (int x)
+{
+  asm volatile ("" : : "r" (x) : "memory");
+}
+
 void
 foo (const int &iref)
 {
   if (&iref)
-    __builtin_printf ("iref %d\n", iref);
+    bar (iref);
   else
-    __builtin_printf ("iref is NULL\n");
+    bar (1);
 }
 
 int