]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
div-by-zero-4.c: Don't include limits.h.
authorMarek Polacek <polacek@redhat.com>
Mon, 24 Mar 2014 10:20:15 +0000 (10:20 +0000)
committerMarek Polacek <mpolacek@gcc.gnu.org>
Mon, 24 Mar 2014 10:20:15 +0000 (10:20 +0000)
* c-c++-common/ubsan/div-by-zero-4.c: Don't include limits.h.  Define
INT_MIN.
* c-c++-common/ubsan/overflow-1.c: Check for unwanted output.
* c-c++-common/ubsan/overflow-add-1.c: Likewise.
* c-c++-common/ubsan/overflow-mul-1.c: Likewise.
* c-c++-common/ubsan/overflow-mul-3.c: Likewise.
* c-c++-common/ubsan/overflow-negate-2.c: Likewise.
* c-c++-common/ubsan/overflow-sub-1.c: Likewise.
* c-c++-common/ubsan/pr59503.c: Likewise.
* c-c++-common/ubsan/pr60613-1.c: Likewise.
* c-c++-common/ubsan/save-expr-1.c: Likewise.
* c-c++-common/ubsan/shift-3.c: Likewise.
* c-c++-common/ubsan/shift-6.c: Likewise.
* c-c++-common/ubsan/undefined-1.c: Likewise.
* c-c++-common/ubsan/vla-2.c: Likewise.
* c-c++-common/ubsan/vla-3.c: Likewise.
* c-c++-common/ubsan/vla-4.c: Likewise.
* g++.dg/ubsan/cxx11-shift-1.C: Likewise.
* g++.dg/ubsan/return-2.C: Likewise.

From-SVN: r208787

19 files changed:
gcc/testsuite/ChangeLog
gcc/testsuite/c-c++-common/ubsan/div-by-zero-4.c
gcc/testsuite/c-c++-common/ubsan/overflow-1.c
gcc/testsuite/c-c++-common/ubsan/overflow-add-1.c
gcc/testsuite/c-c++-common/ubsan/overflow-mul-1.c
gcc/testsuite/c-c++-common/ubsan/overflow-mul-3.c
gcc/testsuite/c-c++-common/ubsan/overflow-negate-2.c
gcc/testsuite/c-c++-common/ubsan/overflow-sub-1.c
gcc/testsuite/c-c++-common/ubsan/pr59503.c
gcc/testsuite/c-c++-common/ubsan/pr60613-1.c
gcc/testsuite/c-c++-common/ubsan/save-expr-1.c
gcc/testsuite/c-c++-common/ubsan/shift-3.c
gcc/testsuite/c-c++-common/ubsan/shift-6.c
gcc/testsuite/c-c++-common/ubsan/undefined-1.c
gcc/testsuite/c-c++-common/ubsan/vla-2.c
gcc/testsuite/c-c++-common/ubsan/vla-3.c
gcc/testsuite/c-c++-common/ubsan/vla-4.c
gcc/testsuite/g++.dg/ubsan/cxx11-shift-1.C
gcc/testsuite/g++.dg/ubsan/return-2.C

index 0894bfda7172e96d1608f4504d93fb3076f3167e..0d3500a4ccf45f5388017d1a46085fc945474ab3 100644 (file)
@@ -1,3 +1,25 @@
+2014-03-24  Marek Polacek  <polacek@redhat.com>
+
+       * c-c++-common/ubsan/div-by-zero-4.c: Don't include limits.h.  Define
+       INT_MIN.
+       * c-c++-common/ubsan/overflow-1.c: Check for unwanted output.
+       * c-c++-common/ubsan/overflow-add-1.c: Likewise.
+       * c-c++-common/ubsan/overflow-mul-1.c: Likewise.
+       * c-c++-common/ubsan/overflow-mul-3.c: Likewise.
+       * c-c++-common/ubsan/overflow-negate-2.c: Likewise.
+       * c-c++-common/ubsan/overflow-sub-1.c: Likewise.
+       * c-c++-common/ubsan/pr59503.c: Likewise.
+       * c-c++-common/ubsan/pr60613-1.c: Likewise.
+       * c-c++-common/ubsan/save-expr-1.c: Likewise.
+       * c-c++-common/ubsan/shift-3.c: Likewise.
+       * c-c++-common/ubsan/shift-6.c: Likewise.
+       * c-c++-common/ubsan/undefined-1.c: Likewise.
+       * c-c++-common/ubsan/vla-2.c: Likewise.
+       * c-c++-common/ubsan/vla-3.c: Likewise.
+       * c-c++-common/ubsan/vla-4.c: Likewise.
+       * g++.dg/ubsan/cxx11-shift-1.C: Likewise.
+       * g++.dg/ubsan/return-2.C: Likewise.
+
 2014-03-23  John David Anglin  <danglin@gcc.gnu.org>
 
        * gcc.dg/tree-prof/pr59003.c: Add -fno-common to dg-options on
index 295f624dc34cc1aff8b438a0f2509a29f60fc3c9..02162e139e30518d71bcd9b282eca3afdeab2733 100644 (file)
@@ -1,7 +1,7 @@
 /* { dg-do run } */
 /* { dg-options "-fsanitize=integer-divide-by-zero -Wno-overflow" } */
 
-#include <limits.h>
+#define INT_MIN (-__INT_MAX__ - 1)
 
 int
 main (void)
index 8165463c1f3fa3b9c047442b9a81076ca1eb28ea..68199551b497cda8dac476a44b1d13aa9a357e4f 100644 (file)
@@ -1,6 +1,8 @@
 /* { dg-do run } */
 /* { dg-options "-fsanitize=signed-integer-overflow" } */
 
+#include <stdio.h>
+
 #ifndef ASM1
 # define ASM1(a) /* Nothing */
 #endif
@@ -51,6 +53,8 @@
 int
 main (void)
 {
+  fputs ("UBSAN TEST START\n", stderr);
+
   CHECK (FN1 (char, char, +), 23);
   CHECK (FN1 (char, char, -), 5);
   CHECK (FN1 (char, char, *), 126);
@@ -258,5 +262,8 @@ main (void)
   CHECK (FN5 (long long int), -77);
   CHECK (FN5 (unsigned long long int), -77);
 
+  fputs ("UBSAN TEST END\n", stderr);
   return 0;
 }
+
+/* { dg-output "UBSAN TEST START(\n|\r\n|\r)UBSAN TEST END" } */
index 3f4790b6c34140b33901b0012c50c8d2a29d3b5e..fd6c6d325e8137e09bceb289c3151acc84fbfeab 100644 (file)
@@ -1,6 +1,8 @@
 /* { dg-do run } */
 /* { dg-options "-fsanitize=signed-integer-overflow -Wno-unused-variable" } */
 
+#include <stdio.h>
+
 #define SCHAR_MAX __SCHAR_MAX__
 #define SHRT_MAX __SHRT_MAX__
 #define INT_MAX __INT_MAX__
@@ -16,6 +18,8 @@ check (int i, int j)
 int
 main (void)
 {
+  fputs ("UBSAN TEST START\n", stderr);
+
 #if __INT_MAX__ == 2147483647
   /* Here, nothing should fail.  */
   volatile int j = INT_MAX;
@@ -56,5 +60,8 @@ main (void)
   check (d, -32768);
 #endif
 
+  fputs ("UBSAN TEST END\n", stderr);
   return 0;
 }
+
+/* { dg-output "UBSAN TEST START(\n|\r\n|\r)UBSAN TEST END" } */
index bb355a211114d1816670d34accad2cc5872a52ca..afb1a25967634e0cdd9cdde338e1a0fdeb8752bd 100644 (file)
@@ -1,6 +1,8 @@
 /* { dg-do run } */
 /* { dg-options "-fsanitize=signed-integer-overflow -Wno-unused-variable" } */
 
+#include <stdio.h>
+
 #define SCHAR_MAX __SCHAR_MAX__
 #define SHRT_MAX __SHRT_MAX__
 #define INT_MAX __INT_MAX__
@@ -16,6 +18,8 @@ check (int i, int j)
 int
 main (void)
 {
+  fputs ("UBSAN TEST START\n", stderr);
+
   /* Test integer promotion.  */
 #if __SCHAR_MAX__ == 127
   volatile signed char a = -2;
@@ -42,5 +46,8 @@ main (void)
   check (o, INT_MIN);
 #endif
 
+  fputs ("UBSAN TEST END\n", stderr);
   return 0;
 }
+
+/* { dg-output "UBSAN TEST START(\n|\r\n|\r)UBSAN TEST END" } */
index 49332dc0e36236903451ff38927b55e7f976247b..037609be0ac10764edc033fe7056e466e001238b 100644 (file)
@@ -1,6 +1,8 @@
 /* { dg-do run } */
 /* { dg-options "-fsanitize=signed-integer-overflow" } */
 
+#include <stdio.h>
+
 __attribute__((noinline, noclone)) long long
 mul (long long x, long long y)
 {
@@ -29,10 +31,16 @@ long long tab[] = {
 int
 main ()
 {
+  fputs ("UBSAN TEST START\n", stderr);
+
   unsigned int i;
   for (i = 0; i < sizeof (tab) / sizeof (long long); i += 3)
     if (mul (tab[i], tab[i + 1]) != tab[i + 2]
         || mul (tab[i + 1], tab[i]) != tab[i + 2])
       __builtin_abort ();
+
+  fputs ("UBSAN TEST END\n", stderr);
   return 0;
 }
+
+/* { dg-output "UBSAN TEST START(\n|\r\n|\r)UBSAN TEST END" } */
index 9a711c259765defdc5990837d82a6a499fe9ec7b..6a4f288bbe0c509d109a10b5a776a36881bc1bc5 100644 (file)
@@ -1,6 +1,8 @@
 /* { dg-do run } */
 /* { dg-options "-fsanitize=signed-integer-overflow -Wno-unused-variable" } */
 
+#include <stdio.h>
+
 #define SCHAR_MIN (-__SCHAR_MAX__ - 1)
 #define SHRT_MIN (-__SHRT_MAX__ - 1)
 #define INT_MIN (-__INT_MAX__ - 1)
@@ -12,6 +14,8 @@
 int
 main (void)
 {
+  fputs ("UBSAN TEST START\n", stderr);
+
   volatile signed char c = -SCHAR_MIN;
   CHECK (c, -128);
 
@@ -34,5 +38,8 @@ main (void)
   lli = -(unsigned long long) lli;
   CHECK (lli, -0x8000000000000000L);
 
+  fputs ("UBSAN TEST END\n", stderr);
   return 0;
 }
+
+/* { dg-output "UBSAN TEST START(\n|\r\n|\r)UBSAN TEST END" } */
index 2dcf16d12309b962f7d63da732dd8eae54fb4d2b..15f04455e6eda8caa71d72064f5413b808622809 100644 (file)
@@ -1,6 +1,8 @@
 /* { dg-do run } */
 /* { dg-options "-fsanitize=signed-integer-overflow -Wno-unused-variable" } */
 
+#include <stdio.h>
+
 #define SCHAR_MAX __SCHAR_MAX__
 #define SCHAR_MIN (-__SCHAR_MAX__ - 1)
 #define SHRT_MAX __SHRT_MAX__
@@ -18,6 +20,8 @@ check (int i, int j)
 int
 main (void)
 {
+  fputs ("UBSAN TEST START\n", stderr);
+
 #if __INT_MAX__ == 2147483647
   /* Here, nothing should fail.  */
   volatile int i = -1;
@@ -58,5 +62,8 @@ main (void)
   check (d, 32767);
 #endif
 
+  fputs ("UBSAN TEST END\n", stderr);
   return 0;
 }
+
+/* { dg-output "UBSAN TEST START(\n|\r\n|\r)UBSAN TEST END" } */
index 12fb4c240d7ff6ca275792a5fd87312aa09694f0..1637f01b5a1fa6f500a6efbcd0838cc8fe25f4bd 100644 (file)
@@ -1,13 +1,21 @@
 /* { dg-do run } */
 /* { dg-options "-fsanitize=signed-integer-overflow" } */
 
+#include <stdio.h>
+
 int
 main (void)
 {
+  fputs ("UBSAN TEST START\n", stderr);
+
   long long int a = 14;
   long int b = 9;
   asm volatile ("" : "+r" (a), "+r" (b));
   if ((a - b) != 5)
     __builtin_abort ();
+
+  fputs ("UBSAN TEST END\n", stderr);
   return 0;
 }
+
+/* { dg-output "UBSAN TEST START(\n|\r\n|\r)UBSAN TEST END" } */
index 2161e0b8ec8ce9dddb3aa6d8be4103493d03a1ce..6794532a486881e00b4f1d879a2b3828e1017c62 100644 (file)
@@ -2,6 +2,8 @@
 /* { dg-do run } */
 /* { dg-options "-fsanitize=undefined" } */
 
+#include <stdio.h>
+
 long long y;
 
 __attribute__((noinline, noclone)) long long
@@ -24,10 +26,16 @@ bar (long long x)
 int
 main ()
 {
+  fputs ("UBSAN TEST START\n", stderr);
+
   y = 1;
   if (foo (8 - 2040) != 8 - 1)
     __builtin_abort ();
   if (bar (1) != 8 - 1)
     __builtin_abort ();
+
+  fputs ("UBSAN TEST END\n", stderr);
   return 0;
 }
+
+/* { dg-output "UBSAN TEST START(\n|\r\n|\r)UBSAN TEST END" } */
index 24532e807611d2a23852f07af5e04fcd9ef3b50c..19b1eb08bd662c01fc0cc61c5f615c9befd160d6 100644 (file)
@@ -1,11 +1,19 @@
 /* { dg-do compile } */
 /* { dg-options "-fsanitize=shift -Wall -Werror -O" } */
 
+#include <stdio.h>
+
 static int x;
 int
 main (void)
 {
+  fputs ("UBSAN TEST START\n", stderr);
+
   int o = 1;
   int y = x << o;
+
+  fputs ("UBSAN TEST END\n", stderr);
   return y;
 }
+
+/* { dg-output "UBSAN TEST START(\n|\r\n|\r)UBSAN TEST END" } */
index c639d171184977c0e5c9d32cf65b9d01e617d0d6..65ee5d8821e06adeded76a99492040c712d21fe1 100644 (file)
@@ -1,11 +1,19 @@
 /* { dg-do run } */
 /* { dg-options "-fsanitize=shift -w" } */
 
+#include <stdio.h>
+
 int
 main (void)
 {
+  fputs ("UBSAN TEST START\n", stderr);
+
   unsigned int a = 1;
   a <<= 31;
   a <<= 1;
+
+  fputs ("UBSAN TEST END\n", stderr);
   return 0;
 }
+
+/* { dg-output "UBSAN TEST START(\n|\r\n|\r)UBSAN TEST END" } */
index a0e2e20acc1bde49cd26cbde38174424ec2598a4..d88a42910a6046916bb792e683e81b425a414598 100644 (file)
@@ -2,10 +2,14 @@
 /* { dg-do run { target int32plus } } */
 /* { dg-options "-fsanitize=shift -w" } */
 
+#include <stdio.h>
+
 int x = 7;
 int
 main (void)
 {
+  fputs ("UBSAN TEST START\n", stderr);
+
   /* All of the following should pass.  */
   int A[128 >> 5] = {};
   int B[128 << 5] = {};
@@ -26,5 +30,9 @@ main (void)
     case 128 >> (4 + 1):
       return 1;
     }
+
+  fputs ("UBSAN TEST END\n", stderr);
   return 0;
 }
+
+/* { dg-output "UBSAN TEST START(\n|\r\n|\r)UBSAN TEST END" } */
index 2458fcbd95d43e579690e844fd7f4effbb6f3951..d1b9ce78771f5fdf68aa46edf1c7290169739466 100644 (file)
@@ -1,6 +1,8 @@
 /* { dg-do run } */
 /* { dg-options "-fsanitize=undefined" } */
 
+#include <stdio.h>
+
 int
 foo (int x, int y)
 {
@@ -19,7 +21,13 @@ bar (int x, int y)
 int
 main (void)
 {
+  fputs ("UBSAN TEST START\n", stderr);
+
   foo (3, 2);
   bar (12, 42);
+
+  fputs ("UBSAN TEST END\n", stderr);
   return 0;
 }
+
+/* { dg-output "UBSAN TEST START(\n|\r\n|\r)UBSAN TEST END" } */
index c62ced91348d940956b1cd3642d900496000192a..a11e4e7227ff2b3b4e2a28136a0cf5cecb01b80e 100644 (file)
@@ -1,9 +1,13 @@
 /* { dg-do run } */
 /* { dg-options "-fsanitize=vla-bound -Wall -Wno-unused-variable" } */
 
+#include <stdio.h>
+
 int
 main (void)
 {
+  fputs ("UBSAN TEST START\n", stderr);
+
   const int t = 0;
   struct s {
     int x;
@@ -11,5 +15,8 @@ main (void)
     int g[t];
   };
 
+  fputs ("UBSAN TEST END\n", stderr);
   return 0;
 }
+
+/* { dg-output "UBSAN TEST START(\n|\r\n|\r)UBSAN TEST END" } */
index 5e10af0b593ac64e614278427e0a72c02f147adb..7772857fdea95165485c0474480484fd24d5faf9 100644 (file)
@@ -1,6 +1,8 @@
 /* { dg-do run } */
 /* { dg-options "-fsanitize=vla-bound" } */
 
+#include <stdio.h>
+
 /* Don't instrument the arrays here.  */
 int
 foo (int n, int a[])
@@ -11,6 +13,13 @@ foo (int n, int a[])
 int
 main (void)
 {
+  fputs ("UBSAN TEST START\n", stderr);
+
   int a[6] = { };
-  return foo (3, a);
+  int ret = foo (3, a);
+
+  fputs ("UBSAN TEST END\n", stderr);
+  return ret;
 }
+
+/* { dg-output "UBSAN TEST START(\n|\r\n|\r)UBSAN TEST END" } */
index 3f7dd1de50ccebf66944cd89a6f50bfc42de36a6..8a7bbac9a7166213cb3f0cb146beba1bb1b93146 100644 (file)
@@ -1,13 +1,21 @@
 /* { dg-do run } */
 /* { dg-options "-fsanitize=vla-bound" } */
 
+#include <stdio.h>
+
 int
 main (void)
 {
+  fputs ("UBSAN TEST START\n", stderr);
+
   int x = 1;
   /* Check that the size of an array is evaluated only once.  */
   int a[++x];
   if (x != 2)
     __builtin_abort ();
+
+  fputs ("UBSAN TEST END\n", stderr);
   return 0;
 }
+
+/* { dg-output "UBSAN TEST START(\n|\r\n|\r)UBSAN TEST END" } */
index 3e16892854a539d691c4bf6dc61304faf279a693..f2b2cbd1c2fb8925c611ae2a5421d6d299493f2a 100644 (file)
@@ -1,9 +1,18 @@
 /* { dg-do run { target c++11 } } */
 /* { dg-options "-fsanitize=shift -w" } */
 
+#include <stdio.h>
+
 int
 main (void)
 {
+  fputs ("UBSAN TEST START\n", stderr);
+
   int a = 1;
   a <<= 31;
+
+  fputs ("UBSAN TEST END\n", stderr);
+  return 0;
 }
+
+/* { dg-output "UBSAN TEST START(\n|\r\n|\r)UBSAN TEST END" } */
index c7380f03ed6ba67541b255683a359158d24c625b..546f1781057955e71ac7b4273325f3ddc4e3b0ce 100644 (file)
@@ -1,6 +1,8 @@
 // { dg-do run }
 // { dg-options "-fsanitize=return" }
 
+#include <stdio.h>
+
 struct S { S (); ~S (); };
 
 S::S () {}
@@ -20,6 +22,12 @@ foo (int x)
 int
 main ()
 {
+  fputs ("UBSAN TEST START\n", stderr);
+
   foo (1);
   foo (14);
+
+  fputs ("UBSAN TEST END\n", stderr);
 }
+
+/* { dg-output "UBSAN TEST START(\n|\r\n|\r)UBSAN TEST END" } */