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;
-}

Reply via email to