diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 87e930a3a0a133bbd40fced1f8769014ded6f707..1c0930619f36466424c22fa0579ba21bc7e6fc07 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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.
diff --git a/gcc/testsuite/g++.dg/ubsan/null-8.C b/gcc/testsuite/g++.dg/ubsan/null-8.C
index 259a213183a9a29d6b997dfe072ffe7efd070516..cea289ec2613568e4972ad7dc1d1d8b9afc965c2 100644
--- a/gcc/testsuite/g++.dg/ubsan/null-8.C
+++ b/gcc/testsuite/g++.dg/ubsan/null-8.C
@@ -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