The option is now obsolete.  Remove the remaining enum and update
common.opt to make it official.

gcc/ChangeLog:

        * common.opt:  Updated Wstrict-overflow entry to indicate that
        it does nothing now.
        * coretypes.h (enum warn_strict_overflow_code): Enum removed.
        * opts.cc (common_handle_option): Removed OPT_Wstrict_overflow
        logic.
---
 gcc/common.opt  |  2 +-
 gcc/coretypes.h | 24 ------------------------
 gcc/opts.cc     |  4 +---
 3 files changed, 2 insertions(+), 28 deletions(-)

diff --git a/gcc/common.opt b/gcc/common.opt
index 3ad1444cc88..9797118d187 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -782,7 +782,7 @@ Warn about code which might break strict aliasing rules.
 
 Wstrict-overflow
 Common Warning
-Warn about optimizations that assume that signed overflow is undefined.
+Does nothing.  Preserved for backward compatibility.
 
 Wstrict-overflow=
 Common Joined RejectNegative UInteger Var(warn_strict_overflow) Warning
diff --git a/gcc/coretypes.h b/gcc/coretypes.h
index 465bead6863..c42c053eb33 100644
--- a/gcc/coretypes.h
+++ b/gcc/coretypes.h
@@ -320,30 +320,6 @@ enum var_init_status
   VAR_INIT_STATUS_INITIALIZED
 };
 
-/* Names for the different levels of -Wstrict-overflow=N.  The numeric
-   values here correspond to N.  */
-enum warn_strict_overflow_code
-{
-  /* Overflow warning that should be issued with -Wall: a questionable
-     construct that is easy to avoid even when using macros.  Example:
-     folding (x + CONSTANT > x) to 1.  */
-  WARN_STRICT_OVERFLOW_ALL = 1,
-  /* Overflow warning about folding a comparison to a constant because
-     of undefined signed overflow, other than cases covered by
-     WARN_STRICT_OVERFLOW_ALL.  Example: folding (abs (x) >= 0) to 1
-     (this is false when x == INT_MIN).  */
-  WARN_STRICT_OVERFLOW_CONDITIONAL = 2,
-  /* Overflow warning about changes to comparisons other than folding
-     them to a constant.  Example: folding (x + 1 > 1) to (x > 0).  */
-  WARN_STRICT_OVERFLOW_COMPARISON = 3,
-  /* Overflow warnings not covered by the above cases.  Example:
-     folding ((x * 10) / 5) to (x * 2).  */
-  WARN_STRICT_OVERFLOW_MISC = 4,
-  /* Overflow warnings about reducing magnitude of constants in
-     comparison.  Example: folding (x + 2 > y) to (x + 1 >= y).  */
-  WARN_STRICT_OVERFLOW_MAGNITUDE = 5
-};
-
 /* Kind of artificial, compiler-generated lookup table.  Type of the
    second argument of TARGET_ADDR_SPACE_FOR_ARTIFICIAL_RODATA resp.
    targetm.addr_space.for_artificial_rodata.  */
diff --git a/gcc/opts.cc b/gcc/opts.cc
index 09baa411cfd..17c54b6688e 100644
--- a/gcc/opts.cc
+++ b/gcc/opts.cc
@@ -2952,9 +2952,7 @@ common_handle_option (struct gcc_options *opts,
       break;
 
     case OPT_Wstrict_overflow:
-      opts->x_warn_strict_overflow = (value
-                                     ? (int) WARN_STRICT_OVERFLOW_CONDITIONAL
-                                     : 0);
+      /* Deferred.  */
       break;
 
     case OPT_Wsystem_headers:
-- 
2.43.0

Reply via email to