https://gcc.gnu.org/g:abe7e10012051344695760e89419c7df73cce856
commit r17-1056-gabe7e10012051344695760e89419c7df73cce856 Author: Daniel Barboza <[email protected]> Date: Fri Jan 16 09:02:07 2026 -0800 testsuite: remove all Wstrict-overflow tests We're no longer issuing Wstrict-overflow warnings, even with the -Wstrict-overflow flag being used. Remove the tests that are still testing for it. They're either compile tests that are testing cases where a warning shouldn't be issued or XFAIL tests. gcc/testsuite/ChangeLog: * gcc.dg/Wstrict-overflow-10.c: Removed. * gcc.dg/Wstrict-overflow-11.c: Removed. * gcc.dg/Wstrict-overflow-12.c: Removed. * gcc.dg/Wstrict-overflow-13.c: Removed. * gcc.dg/Wstrict-overflow-14.c: Removed. * gcc.dg/Wstrict-overflow-15.c: Removed. * gcc.dg/Wstrict-overflow-16.c: Removed. * gcc.dg/Wstrict-overflow-17.c: Removed. * gcc.dg/Wstrict-overflow-18.c: Removed. * gcc.dg/Wstrict-overflow-19.c: Removed. * gcc.dg/Wstrict-overflow-2.c: Removed. * gcc.dg/Wstrict-overflow-20.c: Removed. * gcc.dg/Wstrict-overflow-21.c: Removed. * gcc.dg/Wstrict-overflow-23.c: Removed. * gcc.dg/Wstrict-overflow-26.c: Removed. * gcc.dg/Wstrict-overflow-27.c: Removed. * gcc.dg/Wstrict-overflow-4.c: Removed. * gcc.dg/Wstrict-overflow-6.c: Removed. * gcc.dg/Wstrict-overflow-7.c: Removed. * gcc.dg/Wstrict-overflow-8.c: Removed. Diff: --- gcc/testsuite/gcc.dg/Wstrict-overflow-10.c | 10 ---------- gcc/testsuite/gcc.dg/Wstrict-overflow-11.c | 19 ------------------ gcc/testsuite/gcc.dg/Wstrict-overflow-12.c | 16 --------------- gcc/testsuite/gcc.dg/Wstrict-overflow-13.c | 18 ----------------- gcc/testsuite/gcc.dg/Wstrict-overflow-14.c | 15 --------------- gcc/testsuite/gcc.dg/Wstrict-overflow-15.c | 15 --------------- gcc/testsuite/gcc.dg/Wstrict-overflow-16.c | 11 ----------- gcc/testsuite/gcc.dg/Wstrict-overflow-17.c | 20 ------------------- gcc/testsuite/gcc.dg/Wstrict-overflow-18.c | 23 ---------------------- gcc/testsuite/gcc.dg/Wstrict-overflow-19.c | 15 --------------- gcc/testsuite/gcc.dg/Wstrict-overflow-2.c | 13 ------------- gcc/testsuite/gcc.dg/Wstrict-overflow-20.c | 15 --------------- gcc/testsuite/gcc.dg/Wstrict-overflow-21.c | 12 ------------ gcc/testsuite/gcc.dg/Wstrict-overflow-23.c | 31 ------------------------------ gcc/testsuite/gcc.dg/Wstrict-overflow-26.c | 16 --------------- gcc/testsuite/gcc.dg/Wstrict-overflow-27.c | 28 --------------------------- gcc/testsuite/gcc.dg/Wstrict-overflow-4.c | 13 ------------- gcc/testsuite/gcc.dg/Wstrict-overflow-6.c | 13 ------------- gcc/testsuite/gcc.dg/Wstrict-overflow-7.c | 10 ---------- gcc/testsuite/gcc.dg/Wstrict-overflow-8.c | 10 ---------- 20 files changed, 323 deletions(-) diff --git a/gcc/testsuite/gcc.dg/Wstrict-overflow-10.c b/gcc/testsuite/gcc.dg/Wstrict-overflow-10.c deleted file mode 100644 index d2c259728cb4..000000000000 --- a/gcc/testsuite/gcc.dg/Wstrict-overflow-10.c +++ /dev/null @@ -1,10 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-fstrict-overflow -O2 -Wstrict-overflow=1" } */ - -/* Source: Ian Lance Taylor. */ - -int -foo (int i) -{ - return __builtin_abs (i) >= 0; -} diff --git a/gcc/testsuite/gcc.dg/Wstrict-overflow-11.c b/gcc/testsuite/gcc.dg/Wstrict-overflow-11.c deleted file mode 100644 index 3caf1cb6f09f..000000000000 --- a/gcc/testsuite/gcc.dg/Wstrict-overflow-11.c +++ /dev/null @@ -1,19 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-fstrict-overflow -O2 -Wstrict-overflow=1" } */ - -/* Based on strict-overflow-5.c. */ - -/* We can only unroll when using strict overflow semantics. But we - don't issue a warning for relying on undefined overflow in - loops. */ - -int foo (int i) -{ - int index; - int r=0; - - for (index = i; index <= i+4; index+=2) - r++; - - return r; -} diff --git a/gcc/testsuite/gcc.dg/Wstrict-overflow-12.c b/gcc/testsuite/gcc.dg/Wstrict-overflow-12.c deleted file mode 100644 index 2837ce3a44ec..000000000000 --- a/gcc/testsuite/gcc.dg/Wstrict-overflow-12.c +++ /dev/null @@ -1,16 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-fstrict-overflow -O2 -Wstrict-overflow=2" } */ - -/* Source: Ian Lance Taylor. Dual of no-strict-overflow-6.c. */ - -/* VRP test. This turns into an infinite loop when using strict - overflow semantics. */ - -int -foo () -{ - int i, bits; - for (i = 1, bits = 1; i > 0; i += i) /* { dg-warning "assuming signed overflow does not occur" "correct warning" { xfail *-*-* } } */ - ++bits; - return bits; -} diff --git a/gcc/testsuite/gcc.dg/Wstrict-overflow-13.c b/gcc/testsuite/gcc.dg/Wstrict-overflow-13.c deleted file mode 100644 index 8691cd82fe41..000000000000 --- a/gcc/testsuite/gcc.dg/Wstrict-overflow-13.c +++ /dev/null @@ -1,18 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-fstrict-overflow -O2 -Wstrict-overflow=2" } */ - -/* Source: Ian Lance Taylor. Dual of no-strict-overflow-6.c. */ - -/* VRP test. This turns into an infinite loop (depending on what - bigtime_test does), but at least we warn about it. */ - -extern int bigtime_test (int); -int -foo () -{ - int j; - for (j = 1; 0 < j; j *= 2) /* { dg-warning "assuming signed overflow does not occur" "correct warning" { xfail *-*-* } } */ - if (! bigtime_test (j)) - return 1; - return 0; -} diff --git a/gcc/testsuite/gcc.dg/Wstrict-overflow-14.c b/gcc/testsuite/gcc.dg/Wstrict-overflow-14.c deleted file mode 100644 index dda07ea733b6..000000000000 --- a/gcc/testsuite/gcc.dg/Wstrict-overflow-14.c +++ /dev/null @@ -1,15 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-fstrict-overflow -O2 -Wstrict-overflow=4" } */ - -/* Source: Ian Lance Taylor. */ - -int -foo (int j) -{ - int i; - int sum = 0; - - for (i = 1; i < j; i += i) - sum += i / 16; /* { dg-warning "assuming signed overflow does not occur" "" { xfail *-*-* } } */ - return sum; -} diff --git a/gcc/testsuite/gcc.dg/Wstrict-overflow-15.c b/gcc/testsuite/gcc.dg/Wstrict-overflow-15.c deleted file mode 100644 index c9e275c0bd61..000000000000 --- a/gcc/testsuite/gcc.dg/Wstrict-overflow-15.c +++ /dev/null @@ -1,15 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-fstrict-overflow -O2 -Wstrict-overflow=4" } */ - -/* Source: Ian Lance Taylor. */ - -int -foo (int j) -{ - int i; - int sum = 0; - - for (i = 1; i < j; i += i) - sum += __builtin_abs (i); /* { dg-warning "assuming signed overflow does not occur" "" { xfail *-*-* } } */ - return sum; -} diff --git a/gcc/testsuite/gcc.dg/Wstrict-overflow-16.c b/gcc/testsuite/gcc.dg/Wstrict-overflow-16.c deleted file mode 100644 index e8c31cf50465..000000000000 --- a/gcc/testsuite/gcc.dg/Wstrict-overflow-16.c +++ /dev/null @@ -1,11 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-fstrict-overflow -O2 -Wstrict-overflow" } */ - -/* From PR 31522. */ - -int f (int x) { - int y; - if (x <= 4) y = 1; - else y = x / 4; - return y <= 0; -} diff --git a/gcc/testsuite/gcc.dg/Wstrict-overflow-17.c b/gcc/testsuite/gcc.dg/Wstrict-overflow-17.c deleted file mode 100644 index 5625bc2a7f3c..000000000000 --- a/gcc/testsuite/gcc.dg/Wstrict-overflow-17.c +++ /dev/null @@ -1,20 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-fstrict-overflow -O2 -Wstrict-overflow" } */ - -/* This erroneously gave an overflow warning. */ - -extern void bar (char); -void -foo (char *s) -{ - int len, i; - - for (len = 1; len < 5000; ++len) - { - for (i = 0; i < len; ++i) - { - if (s[i] != '\0') - bar (s[i]); - } - } -} diff --git a/gcc/testsuite/gcc.dg/Wstrict-overflow-18.c b/gcc/testsuite/gcc.dg/Wstrict-overflow-18.c deleted file mode 100644 index 8c8ddcf2b26e..000000000000 --- a/gcc/testsuite/gcc.dg/Wstrict-overflow-18.c +++ /dev/null @@ -1,23 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-fstrict-overflow -O2 -Wstrict-overflow" } */ - -/* Warn about an overflow when folding i > 0, p->a - p->b can be larger - than INT_MAX and thus i can wrap. */ - -struct c { unsigned int a; unsigned int b; }; -extern void bar (struct c *); -int -foo (struct c *p) -{ - int i; - int sum = 0; - - for (i = 0; i < p->a - p->b; ++i) - { - /* See PR80511 for the XFAIL. */ - if (i > 0) /* { dg-warning "signed overflow" "" { xfail *-*-* } } */ - sum += 2; - bar (p); - } - return sum; -} diff --git a/gcc/testsuite/gcc.dg/Wstrict-overflow-19.c b/gcc/testsuite/gcc.dg/Wstrict-overflow-19.c deleted file mode 100644 index daf98b0ce630..000000000000 --- a/gcc/testsuite/gcc.dg/Wstrict-overflow-19.c +++ /dev/null @@ -1,15 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-fstrict-overflow -O2 -Wstrict-overflow" } */ - -/* Don't warn about an overflow when threading jumps. We used to get - a warning from comparing bounds generated by VRP. */ - -int -bar(int a, int b, int n) -{ - if (b > a) - n = a - b; - if (a >= b) - n = 1; - return n; -} diff --git a/gcc/testsuite/gcc.dg/Wstrict-overflow-2.c b/gcc/testsuite/gcc.dg/Wstrict-overflow-2.c deleted file mode 100644 index 2112571cabe4..000000000000 --- a/gcc/testsuite/gcc.dg/Wstrict-overflow-2.c +++ /dev/null @@ -1,13 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-fstrict-overflow -O2 -Wstrict-overflow=2" } */ - -/* Source: Ian Lance Taylor. Based on strict-overflow-1.c. */ - -/* We can only simplify the conditional when using strict overflow - semantics. */ - -int -foo (int i) -{ - return i - 5 < 10; -} diff --git a/gcc/testsuite/gcc.dg/Wstrict-overflow-20.c b/gcc/testsuite/gcc.dg/Wstrict-overflow-20.c deleted file mode 100644 index 260d20c9c9c3..000000000000 --- a/gcc/testsuite/gcc.dg/Wstrict-overflow-20.c +++ /dev/null @@ -1,15 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-std=gnu17 -fstrict-overflow -O2 -Wstrict-overflow" } */ - -/* Don't warn about an overflow in a copied loop header. We used to - get a warning in value numbering. This is PR 33565. */ - -void do_something (); - -void f (int m, int n) -{ - int j; - - for (j = m; j < m + 10 && j < n; j ++) - do_something (j); -} diff --git a/gcc/testsuite/gcc.dg/Wstrict-overflow-21.c b/gcc/testsuite/gcc.dg/Wstrict-overflow-21.c deleted file mode 100644 index 82a61d966f3c..000000000000 --- a/gcc/testsuite/gcc.dg/Wstrict-overflow-21.c +++ /dev/null @@ -1,12 +0,0 @@ -/* PR 32102: -Wall stomps on -Wstrict-overflow */ -/* { dg-do compile } */ -/* { dg-options "-fstrict-overflow -O2 -Wstrict-overflow=2 -Wall" } */ -int -foo () -{ - int i, bits; - for (i = 1, bits = 1; i > 0; i += i) /* { dg-warning "assuming signed overflow does not occur" "correct warning" { xfail *-*-* } } */ - ++bits; - return bits; -} - diff --git a/gcc/testsuite/gcc.dg/Wstrict-overflow-23.c b/gcc/testsuite/gcc.dg/Wstrict-overflow-23.c deleted file mode 100644 index 16014bb15c52..000000000000 --- a/gcc/testsuite/gcc.dg/Wstrict-overflow-23.c +++ /dev/null @@ -1,31 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-O2 -Wstrict-overflow" } */ - -unsigned int -do_scrolling (unsigned int window_size, unsigned int writecost) -{ - unsigned int i = window_size; - - int terminal_window_p = 0; - unsigned int queue = 0; - - for (i = window_size; i; i--) - { - if (writecost < i) - ++queue; - else if (writecost & 1) - terminal_window_p = 1; - } - - if (queue > 0) - { - if (!terminal_window_p) - { - terminal_window_p = 1; - } - } - - if (terminal_window_p) - return 100; - return 0; -} diff --git a/gcc/testsuite/gcc.dg/Wstrict-overflow-26.c b/gcc/testsuite/gcc.dg/Wstrict-overflow-26.c deleted file mode 100644 index ef805b56d252..000000000000 --- a/gcc/testsuite/gcc.dg/Wstrict-overflow-26.c +++ /dev/null @@ -1,16 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-O2 -Wstrict-overflow" } */ - -int -f (int i, int j) -{ - unsigned int c = 0; - if (i < j) - { - unsigned int n = j - i; - unsigned int i; - for (i = 0; i < n; i++) /* { dg-bogus "signed overflow" } */ - c++; - } - return c; -} diff --git a/gcc/testsuite/gcc.dg/Wstrict-overflow-27.c b/gcc/testsuite/gcc.dg/Wstrict-overflow-27.c deleted file mode 100644 index 95d101ad02e5..000000000000 --- a/gcc/testsuite/gcc.dg/Wstrict-overflow-27.c +++ /dev/null @@ -1,28 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-O3 -Wstrict-overflow=2 -Werror" } */ - -typedef __SIZE_TYPE__ size_t; -extern char *strtok_r (char *__restrict __s, const char *__restrict __delim, - char **__restrict __save_ptr) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3))); -extern const unsigned short int **__ctype_b_loc (void) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); -extern int *DEBUGLEVEL_CLASS; -size_t debug_num_classes = 0; -void debug_parse_param(char *param); -void -debug_parse_levels(const char *params_str, size_t str_len) -{ - char str[str_len+1]; - char *tok, *saveptr; - size_t i; - tok = strtok_r(str, " \t,\n\r", &saveptr); - if (((*__ctype_b_loc ())[(int) ((tok[0]))])) - tok = strtok_r(((void *)0), " \t,\n\r", &saveptr); - else - DEBUGLEVEL_CLASS[0] = 0; - for (i = 0 +1; i < debug_num_classes; i++) - DEBUGLEVEL_CLASS[i] = DEBUGLEVEL_CLASS[0]; - while (tok != ((void *)0) ) - debug_parse_param(tok); -} diff --git a/gcc/testsuite/gcc.dg/Wstrict-overflow-4.c b/gcc/testsuite/gcc.dg/Wstrict-overflow-4.c deleted file mode 100644 index e880bef45ff0..000000000000 --- a/gcc/testsuite/gcc.dg/Wstrict-overflow-4.c +++ /dev/null @@ -1,13 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-fstrict-overflow -O2 -Wstrict-overflow=3" } */ - -/* Source: Ian Lance Taylor. Based on strict-overflow-2.c. */ - -/* We can only simplify the division when using strict overflow - semantics. */ - -int -foo (int i) -{ - return (i * 100) / 10; -} diff --git a/gcc/testsuite/gcc.dg/Wstrict-overflow-6.c b/gcc/testsuite/gcc.dg/Wstrict-overflow-6.c deleted file mode 100644 index c3a160c60027..000000000000 --- a/gcc/testsuite/gcc.dg/Wstrict-overflow-6.c +++ /dev/null @@ -1,13 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-fstrict-overflow -O2 -Wstrict-overflow=2" } */ - -/* Source: Ian Lance Taylor. Based on strict-overflow-3.c. */ - -/* We can only simplify the conditional when using strict overflow - semantics. */ - -int -foo (int i, int j) -{ - return i + 100 < j + 1000; -} diff --git a/gcc/testsuite/gcc.dg/Wstrict-overflow-7.c b/gcc/testsuite/gcc.dg/Wstrict-overflow-7.c deleted file mode 100644 index 401cbc3c9871..000000000000 --- a/gcc/testsuite/gcc.dg/Wstrict-overflow-7.c +++ /dev/null @@ -1,10 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-fstrict-overflow -O2 -Wstrict-overflow" } */ - -/* Source: Ian Lance Taylor. */ - -int -foo (int i) -{ - return i + 10 > i; /* { dg-warning "assuming signed overflow does not occur" "correct warning" { xfail *-*-* } } */ -} diff --git a/gcc/testsuite/gcc.dg/Wstrict-overflow-8.c b/gcc/testsuite/gcc.dg/Wstrict-overflow-8.c deleted file mode 100644 index 566729fe3088..000000000000 --- a/gcc/testsuite/gcc.dg/Wstrict-overflow-8.c +++ /dev/null @@ -1,10 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-fstrict-overflow -O2 -Wall -Wno-strict-overflow" } */ - -/* Source: Ian Lance Taylor. */ - -int -foo (int i) -{ - return i + 10 > i; -}
