From: Marek Polacek Date: Mon, 24 Mar 2014 10:20:15 +0000 (+0000) Subject: div-by-zero-4.c: Don't include limits.h. X-Git-Tag: releases/gcc-4.9.0~333 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=55af811bab8b557b20b99005aef08bee13ea0472;p=thirdparty%2Fgcc.git div-by-zero-4.c: Don't include limits.h. * 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 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 0894bfda7172..0d3500a4ccf4 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,25 @@ +2014-03-24 Marek Polacek + + * 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 * gcc.dg/tree-prof/pr59003.c: Add -fno-common to dg-options on diff --git a/gcc/testsuite/c-c++-common/ubsan/div-by-zero-4.c b/gcc/testsuite/c-c++-common/ubsan/div-by-zero-4.c index 295f624dc34c..02162e139e30 100644 --- a/gcc/testsuite/c-c++-common/ubsan/div-by-zero-4.c +++ b/gcc/testsuite/c-c++-common/ubsan/div-by-zero-4.c @@ -1,7 +1,7 @@ /* { dg-do run } */ /* { dg-options "-fsanitize=integer-divide-by-zero -Wno-overflow" } */ -#include +#define INT_MIN (-__INT_MAX__ - 1) int main (void) diff --git a/gcc/testsuite/c-c++-common/ubsan/overflow-1.c b/gcc/testsuite/c-c++-common/ubsan/overflow-1.c index 8165463c1f3f..68199551b497 100644 --- a/gcc/testsuite/c-c++-common/ubsan/overflow-1.c +++ b/gcc/testsuite/c-c++-common/ubsan/overflow-1.c @@ -1,6 +1,8 @@ /* { dg-do run } */ /* { dg-options "-fsanitize=signed-integer-overflow" } */ +#include + #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" } */ diff --git a/gcc/testsuite/c-c++-common/ubsan/overflow-add-1.c b/gcc/testsuite/c-c++-common/ubsan/overflow-add-1.c index 3f4790b6c341..fd6c6d325e81 100644 --- a/gcc/testsuite/c-c++-common/ubsan/overflow-add-1.c +++ b/gcc/testsuite/c-c++-common/ubsan/overflow-add-1.c @@ -1,6 +1,8 @@ /* { dg-do run } */ /* { dg-options "-fsanitize=signed-integer-overflow -Wno-unused-variable" } */ +#include + #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" } */ diff --git a/gcc/testsuite/c-c++-common/ubsan/overflow-mul-1.c b/gcc/testsuite/c-c++-common/ubsan/overflow-mul-1.c index bb355a211114..afb1a2596763 100644 --- a/gcc/testsuite/c-c++-common/ubsan/overflow-mul-1.c +++ b/gcc/testsuite/c-c++-common/ubsan/overflow-mul-1.c @@ -1,6 +1,8 @@ /* { dg-do run } */ /* { dg-options "-fsanitize=signed-integer-overflow -Wno-unused-variable" } */ +#include + #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" } */ diff --git a/gcc/testsuite/c-c++-common/ubsan/overflow-mul-3.c b/gcc/testsuite/c-c++-common/ubsan/overflow-mul-3.c index 49332dc0e362..037609be0ac1 100644 --- a/gcc/testsuite/c-c++-common/ubsan/overflow-mul-3.c +++ b/gcc/testsuite/c-c++-common/ubsan/overflow-mul-3.c @@ -1,6 +1,8 @@ /* { dg-do run } */ /* { dg-options "-fsanitize=signed-integer-overflow" } */ +#include + __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" } */ diff --git a/gcc/testsuite/c-c++-common/ubsan/overflow-negate-2.c b/gcc/testsuite/c-c++-common/ubsan/overflow-negate-2.c index 9a711c259765..6a4f288bbe0c 100644 --- a/gcc/testsuite/c-c++-common/ubsan/overflow-negate-2.c +++ b/gcc/testsuite/c-c++-common/ubsan/overflow-negate-2.c @@ -1,6 +1,8 @@ /* { dg-do run } */ /* { dg-options "-fsanitize=signed-integer-overflow -Wno-unused-variable" } */ +#include + #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" } */ diff --git a/gcc/testsuite/c-c++-common/ubsan/overflow-sub-1.c b/gcc/testsuite/c-c++-common/ubsan/overflow-sub-1.c index 2dcf16d12309..15f04455e6ed 100644 --- a/gcc/testsuite/c-c++-common/ubsan/overflow-sub-1.c +++ b/gcc/testsuite/c-c++-common/ubsan/overflow-sub-1.c @@ -1,6 +1,8 @@ /* { dg-do run } */ /* { dg-options "-fsanitize=signed-integer-overflow -Wno-unused-variable" } */ +#include + #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" } */ diff --git a/gcc/testsuite/c-c++-common/ubsan/pr59503.c b/gcc/testsuite/c-c++-common/ubsan/pr59503.c index 12fb4c240d7f..1637f01b5a1f 100644 --- a/gcc/testsuite/c-c++-common/ubsan/pr59503.c +++ b/gcc/testsuite/c-c++-common/ubsan/pr59503.c @@ -1,13 +1,21 @@ /* { dg-do run } */ /* { dg-options "-fsanitize=signed-integer-overflow" } */ +#include + 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" } */ diff --git a/gcc/testsuite/c-c++-common/ubsan/pr60613-1.c b/gcc/testsuite/c-c++-common/ubsan/pr60613-1.c index 2161e0b8ec8c..6794532a4868 100644 --- a/gcc/testsuite/c-c++-common/ubsan/pr60613-1.c +++ b/gcc/testsuite/c-c++-common/ubsan/pr60613-1.c @@ -2,6 +2,8 @@ /* { dg-do run } */ /* { dg-options "-fsanitize=undefined" } */ +#include + 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" } */ diff --git a/gcc/testsuite/c-c++-common/ubsan/save-expr-1.c b/gcc/testsuite/c-c++-common/ubsan/save-expr-1.c index 24532e807611..19b1eb08bd66 100644 --- a/gcc/testsuite/c-c++-common/ubsan/save-expr-1.c +++ b/gcc/testsuite/c-c++-common/ubsan/save-expr-1.c @@ -1,11 +1,19 @@ /* { dg-do compile } */ /* { dg-options "-fsanitize=shift -Wall -Werror -O" } */ +#include + 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" } */ diff --git a/gcc/testsuite/c-c++-common/ubsan/shift-3.c b/gcc/testsuite/c-c++-common/ubsan/shift-3.c index c639d1711849..65ee5d8821e0 100644 --- a/gcc/testsuite/c-c++-common/ubsan/shift-3.c +++ b/gcc/testsuite/c-c++-common/ubsan/shift-3.c @@ -1,11 +1,19 @@ /* { dg-do run } */ /* { dg-options "-fsanitize=shift -w" } */ +#include + 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" } */ diff --git a/gcc/testsuite/c-c++-common/ubsan/shift-6.c b/gcc/testsuite/c-c++-common/ubsan/shift-6.c index a0e2e20acc1b..d88a42910a60 100644 --- a/gcc/testsuite/c-c++-common/ubsan/shift-6.c +++ b/gcc/testsuite/c-c++-common/ubsan/shift-6.c @@ -2,10 +2,14 @@ /* { dg-do run { target int32plus } } */ /* { dg-options "-fsanitize=shift -w" } */ +#include + 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" } */ diff --git a/gcc/testsuite/c-c++-common/ubsan/undefined-1.c b/gcc/testsuite/c-c++-common/ubsan/undefined-1.c index 2458fcbd95d4..d1b9ce78771f 100644 --- a/gcc/testsuite/c-c++-common/ubsan/undefined-1.c +++ b/gcc/testsuite/c-c++-common/ubsan/undefined-1.c @@ -1,6 +1,8 @@ /* { dg-do run } */ /* { dg-options "-fsanitize=undefined" } */ +#include + 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" } */ diff --git a/gcc/testsuite/c-c++-common/ubsan/vla-2.c b/gcc/testsuite/c-c++-common/ubsan/vla-2.c index c62ced91348d..a11e4e7227ff 100644 --- a/gcc/testsuite/c-c++-common/ubsan/vla-2.c +++ b/gcc/testsuite/c-c++-common/ubsan/vla-2.c @@ -1,9 +1,13 @@ /* { dg-do run } */ /* { dg-options "-fsanitize=vla-bound -Wall -Wno-unused-variable" } */ +#include + 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" } */ diff --git a/gcc/testsuite/c-c++-common/ubsan/vla-3.c b/gcc/testsuite/c-c++-common/ubsan/vla-3.c index 5e10af0b593a..7772857fdea9 100644 --- a/gcc/testsuite/c-c++-common/ubsan/vla-3.c +++ b/gcc/testsuite/c-c++-common/ubsan/vla-3.c @@ -1,6 +1,8 @@ /* { dg-do run } */ /* { dg-options "-fsanitize=vla-bound" } */ +#include + /* 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" } */ diff --git a/gcc/testsuite/c-c++-common/ubsan/vla-4.c b/gcc/testsuite/c-c++-common/ubsan/vla-4.c index 3f7dd1de50cc..8a7bbac9a716 100644 --- a/gcc/testsuite/c-c++-common/ubsan/vla-4.c +++ b/gcc/testsuite/c-c++-common/ubsan/vla-4.c @@ -1,13 +1,21 @@ /* { dg-do run } */ /* { dg-options "-fsanitize=vla-bound" } */ +#include + 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" } */ diff --git a/gcc/testsuite/g++.dg/ubsan/cxx11-shift-1.C b/gcc/testsuite/g++.dg/ubsan/cxx11-shift-1.C index 3e16892854a5..f2b2cbd1c2fb 100644 --- a/gcc/testsuite/g++.dg/ubsan/cxx11-shift-1.C +++ b/gcc/testsuite/g++.dg/ubsan/cxx11-shift-1.C @@ -1,9 +1,18 @@ /* { dg-do run { target c++11 } } */ /* { dg-options "-fsanitize=shift -w" } */ +#include + 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" } */ diff --git a/gcc/testsuite/g++.dg/ubsan/return-2.C b/gcc/testsuite/g++.dg/ubsan/return-2.C index c7380f03ed6b..546f17810579 100644 --- a/gcc/testsuite/g++.dg/ubsan/return-2.C +++ b/gcc/testsuite/g++.dg/ubsan/return-2.C @@ -1,6 +1,8 @@ // { dg-do run } // { dg-options "-fsanitize=return" } +#include + 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" } */