Use volatile pointers when attempting to trigger SIGSEGVs
authorGary Benson <gbenson@redhat.com>
Mon, 13 Jul 2020 13:47:44 +0000 (14:47 +0100)
committerGary Benson <gbenson@redhat.com>
Mon, 13 Jul 2020 13:47:44 +0000 (14:47 +0100)
Clang fails to compile a number of files with the following warning:
indirection of non-volatile null pointer will be deleted, not trap
[-Wnull-dereference].  This commit qualifies the relevant pointers
with 'volatile'.

gdb/testsuite/ChangeLog:

* gdb.base/bigcore.c (main): Use a volatile pointer when
attempting to trigger a SIGSEGV.
* gdb.base/gcore-relro-pie.c (break_here): Likewise.
* gdb.base/gcore-tls-pie.c (break_here): Likewise.
* gdb.base/savedregs.c (thrower): Likewise.
* gdb.mi/mi-syn-frame.c (bar): Likewise.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/bigcore.c
gdb/testsuite/gdb.base/gcore-relro-pie.c
gdb/testsuite/gdb.base/gcore-tls-pie.c
gdb/testsuite/gdb.base/savedregs.c
gdb/testsuite/gdb.mi/mi-syn-frame.c

index 1798f92705b102dba192fd41d08af618b137d466..fc9dcac563abc3db941cdb5a6c14ec5ea946cb20 100644 (file)
@@ -1,3 +1,12 @@
+2020-07-13  Gary Benson <gbenson@redhat.com>
+
+       * gdb.base/bigcore.c (main): Use a volatile pointer when
+       attempting to trigger a SIGSEGV.
+       * gdb.base/gcore-relro-pie.c (break_here): Likewise.
+       * gdb.base/gcore-tls-pie.c (break_here): Likewise.
+       * gdb.base/savedregs.c (thrower): Likewise.
+       * gdb.mi/mi-syn-frame.c (bar): Likewise.
+
 2020-07-13  Gary Benson <gbenson@redhat.com>
 
        * gdb.base/vla-datatypes.c (vla_factory): Factor out sections
index 174e0f67f00080933f81db446d1e5c2d26d7937e..8be1b154b3908fbdfe294dcb0cb8bb0c82f5d6a9 100644 (file)
@@ -267,5 +267,5 @@ main ()
   /* Push everything out to disk.  */
 
   print_string ("Dump core ....\n");
-  *(char*)0 = 0;
+  *(volatile char*)0 = 0;
 }
index 20cf12c56329de586796d6fe269dd7ab291fe0ea..9ae7cb2cb9b6044df020ea79a35a9896394b0a97 100644 (file)
@@ -18,7 +18,7 @@
 void
 break_here (void)
 {
-  *(int *) 0 = 0;
+  *(volatile int *) 0 = 0;
 }
 
 void
index 73aec409f1ede1db4a80cf2ede9fb508bb1d4aa6..18169fcd6274fcc5fa02812b7bc90539fbd352f2 100644 (file)
@@ -25,7 +25,7 @@ __thread char i;
 void
 break_here (void)
 {
-  *(int *) 0 = 0;
+  *(volatile int *) 0 = 0;
 }
 
 void
index d3bcbf7826da517505906cc4b907469e0cf62f7b..05fba5061562b6d58f87fe73b65a38ad1c607ec3 100644 (file)
@@ -46,7 +46,7 @@ static void
 thrower (void)
 {
   /* Trigger a SIGSEGV.  */
-  *(char *)0 = 0;
+  *(volatile char *)0 = 0;
 
   /* On MMU-less system, previous memory access to address zero doesn't
      trigger a SIGSEGV.  Trigger a SIGILL.  Each arch should define its
index c260112b3fd1c7d0003b99f0050e20561d830abc..b6ab6e8d88ad8d973fd6f16747f970ba289e4933 100644 (file)
@@ -27,7 +27,7 @@ foo (void)
 void 
 bar (void)
 {
-  *(char *)0 = 0;    /* try to cause a segfault */
+  *(volatile char *)0 = 0;    /* try to cause a segfault */
 
   /* On MMU-less system, previous memory access to address zero doesn't
      trigger a SIGSEGV.  Trigger a SIGILL.  Each arch should define its