https://gcc.gnu.org/g:74e6dfb23163c2dd670d1d60fbf4c782e0b44b94

commit r15-2027-g74e6dfb23163c2dd670d1d60fbf4c782e0b44b94
Author: Roger Sayle <ro...@nextmovesoftware.com>
Date:   Sun Jul 14 17:22:27 2024 +0100

    i386: Tweak i386-expand.cc to restore bootstrap on RHEL.
    
    This is a minor change to restore bootstrap on systems using gcc 4.8
    as a host compiler.  The fatal error is:
    
    In file included from gcc/gcc/coretypes.h:471:0,
                     from gcc/gcc/config/i386/i386-expand.cc:23:
    gcc/gcc/config/i386/i386-expand.cc: In function 'void 
ix86_expand_fp_absneg_operator(rtx_code, machine_mode, rtx_def**)':
    ./insn-modes.h:315:75: error: temporary of non-literal type 
'scalar_float_mode' in a constant expression
     #define HFmode (scalar_float_mode ((scalar_float_mode::from_int) E_HFmode))
                                                                               ^
    gcc/gcc/config/i386/i386-expand.cc:2179:8: note: in expansion of macro 
'HFmode'
       case HFmode:
            ^
    
    The solution is to use the E_?Fmode enumeration constants as case values
    in switch statements.
    
    2024-07-14  Roger Sayle  <ro...@nextmovesoftware.com>
    
            * config/i386/i386-expand.cc (ix86_expand_fp_absneg_operator):
            Use E_?Fmode enumeration constants in switch statement.
            (ix86_expand_copysign): Likewise.
            (ix86_expand_xorsign): Likewise.

Diff:
---
 gcc/config/i386/i386-expand.cc | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/gcc/config/i386/i386-expand.cc b/gcc/config/i386/i386-expand.cc
index cfcfdd94e8f0..9a31e6df2aa2 100644
--- a/gcc/config/i386/i386-expand.cc
+++ b/gcc/config/i386/i386-expand.cc
@@ -2176,19 +2176,19 @@ ix86_expand_fp_absneg_operator (enum rtx_code code, 
machine_mode mode,
 
   switch (mode)
   {
-  case HFmode:
+  case E_HFmode:
     use_sse = true;
     vmode = V8HFmode;
     break;
-  case BFmode:
+  case E_BFmode:
     use_sse = true;
     vmode = V8BFmode;
     break;
-  case SFmode:
+  case E_SFmode:
     use_sse = TARGET_SSE_MATH && TARGET_SSE;
     vmode = V4SFmode;
     break;
-  case DFmode:
+  case E_DFmode:
     use_sse = TARGET_SSE_MATH && TARGET_SSE2;
     vmode = V2DFmode;
     break;
@@ -2330,19 +2330,19 @@ ix86_expand_copysign (rtx operands[])
 
   switch (mode)
   {
-  case HFmode:
+  case E_HFmode:
     vmode = V8HFmode;
     break;
-  case BFmode:
+  case E_BFmode:
     vmode = V8BFmode;
     break;
-  case SFmode:
+  case E_SFmode:
     vmode = V4SFmode;
     break;
-  case DFmode:
+  case E_DFmode:
     vmode = V2DFmode;
     break;
-  case TFmode:
+  case E_TFmode:
     vmode = mode;
     break;
   default:
@@ -2410,16 +2410,16 @@ ix86_expand_xorsign (rtx operands[])
 
   switch (mode)
   {
-  case HFmode:
+  case E_HFmode:
     vmode = V8HFmode;
     break;
-  case BFmode:
+  case E_BFmode:
     vmode = V8BFmode;
     break;
-  case SFmode:
+  case E_SFmode:
     vmode = V4SFmode;
     break;
-  case DFmode:
+  case E_DFmode:
     vmode = V2DFmode;
     break;
   default:

Reply via email to