]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
GCN: Restore build with GCC 4.8
authorThomas Schwinge <thomas@codesourcery.com>
Fri, 14 Oct 2022 22:10:29 +0000 (00:10 +0200)
committerThomas Schwinge <thomas@codesourcery.com>
Mon, 17 Oct 2022 12:23:30 +0000 (14:23 +0200)
For example, for "g++-4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.4) 4.8.4", the recent
commit r13-3220-g45381d6f9f4e7b5c7b062f5ad8cc9788091c2d07
"amdgcn: add multiple vector sizes" broke the build:

    In file included from [...]/source-gcc/gcc/coretypes.h:458:0,
                     from [...]/source-gcc/gcc/config/gcn/gcn.cc:24:
    [...]/source-gcc/gcc/config/gcn/gcn.cc: In function ‘machine_mode VnMODE(int, machine_mode)’:
    ./insn-modes.h:42:71: error: temporary of non-literal type ‘scalar_int_mode’ in a constant expression
     #define QImode (scalar_int_mode ((scalar_int_mode::from_int) E_QImode))
                                                                           ^
    [...]/source-gcc/gcc/config/gcn/gcn.cc:405:10: note: in expansion of macro ‘QImode’
         case QImode:
              ^
    In file included from [...]/source-gcc/gcc/coretypes.h:478:0,
                     from [...]/source-gcc/gcc/config/gcn/gcn.cc:24:
    [...]/source-gcc/gcc/machmode.h:410:7: note: ‘scalar_int_mode’ is not literal because:
     class scalar_int_mode
           ^
    [...]/source-gcc/gcc/machmode.h:410:7: note:   ‘scalar_int_mode’ is not an aggregate, does not have a trivial default constructor, and has no constexpr constructor that is not a copy or move constructor
    [...]

Addressing this like simiar issues have been addressed in the past.

gcc/
* config/gcn/gcn.cc (VnMODE): Use 'case E_QImode:' instead of
'case QImode:', etc.

(cherry picked from commit 612de72b0d2904b5a5a2b487ce4cb907c768a947)

gcc/ChangeLog.omp
gcc/config/gcn/gcn.cc

index c34d0ec7c77a584b961da4e1895584cc8d7d5c47..527a9850dba8b753c6b6e09fd18dc4b749900dfc 100644 (file)
@@ -1,3 +1,11 @@
+2022-10-17  Thomas Schwinge  <thomas@codesourcery.com>
+
+       Backported from master:
+       2022-10-17  Thomas Schwinge  <thomas@codesourcery.com>
+
+       * config/gcn/gcn.cc (VnMODE): Use 'case E_QImode:' instead of
+       'case QImode:', etc.
+
 2022-10-14  Julian Brown  <julian@codesourcery.com>
 
        * omp-low.cc (oacc_privatization_candidate_p): Artificial vars are not
index b01131c0dc2a345d72948db8786a5679dffcce3c..9c2fd4c5b8a966d98d3ee3f54c5c0b4031ab51e7 100644 (file)
@@ -412,7 +412,7 @@ VnMODE (int n, machine_mode mode)
 {
   switch (mode)
     {
-    case QImode:
+    case E_QImode:
       switch (n)
        {
        case 2: return V2QImode;
@@ -423,7 +423,7 @@ VnMODE (int n, machine_mode mode)
        case 64: return V64QImode;
        }
       break;
-    case HImode:
+    case E_HImode:
       switch (n)
        {
        case 2: return V2HImode;
@@ -434,7 +434,7 @@ VnMODE (int n, machine_mode mode)
        case 64: return V64HImode;
        }
       break;
-    case HFmode:
+    case E_HFmode:
       switch (n)
        {
        case 2: return V2HFmode;
@@ -445,7 +445,7 @@ VnMODE (int n, machine_mode mode)
        case 64: return V64HFmode;
        }
       break;
-    case SImode:
+    case E_SImode:
       switch (n)
        {
        case 2: return V2SImode;
@@ -456,7 +456,7 @@ VnMODE (int n, machine_mode mode)
        case 64: return V64SImode;
        }
       break;
-    case SFmode:
+    case E_SFmode:
       switch (n)
        {
        case 2: return V2SFmode;
@@ -467,7 +467,7 @@ VnMODE (int n, machine_mode mode)
        case 64: return V64SFmode;
        }
       break;
-    case DImode:
+    case E_DImode:
       switch (n)
        {
        case 2: return V2DImode;
@@ -478,7 +478,7 @@ VnMODE (int n, machine_mode mode)
        case 64: return V64DImode;
        }
       break;
-    case DFmode:
+    case E_DFmode:
       switch (n)
        {
        case 2: return V2DFmode;