From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1643) id 615073858D28; Mon, 17 Oct 2022 12:24:37 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 615073858D28 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1666009477; bh=L9VitjHkUwuCmvWM9+qygcKgx6EXsbzWvFNrI8S61I0=; h=From:To:Subject:Date:From; b=byh4WrWJ0rGnMKlvtIrQO2+NbeDDidKBSn/pD93UOSxON71JY3Uan9tnXofh5FBeR c8DEIZ4GLBkgnipgNUCUxM4ArwoVDELxuLMHKbtfeic0nZ3GmWSCS5Zl9zJ1B1m4WS xLAZi2kyMN0VaNqTyl6lnMD29QugwwBuda+MzIvM= MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="utf-8" From: Thomas Schwinge To: gcc-cvs@gcc.gnu.org Subject: [gcc/devel/omp/gcc-12] GCN: Restore build with GCC 4.8 X-Act-Checkin: gcc X-Git-Author: Thomas Schwinge X-Git-Refname: refs/heads/devel/omp/gcc-12 X-Git-Oldrev: f36ce95ad928578aa6739f61480e6c8fbaf2248e X-Git-Newrev: 38e4f4f55a6823d028b8f5332c500b7267ad320b Message-Id: <20221017122437.615073858D28@sourceware.org> Date: Mon, 17 Oct 2022 12:24:37 +0000 (GMT) List-Id: https://gcc.gnu.org/g:38e4f4f55a6823d028b8f5332c500b7267ad320b commit 38e4f4f55a6823d028b8f5332c500b7267ad320b Author: Thomas Schwinge Date: Sat Oct 15 00:10:29 2022 +0200 GCN: Restore build with GCC 4.8 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) Diff: --- gcc/ChangeLog.omp | 8 ++++++++ gcc/config/gcn/gcn.cc | 14 +++++++------- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/gcc/ChangeLog.omp b/gcc/ChangeLog.omp index c34d0ec7c77..527a9850dba 100644 --- a/gcc/ChangeLog.omp +++ b/gcc/ChangeLog.omp @@ -1,3 +1,11 @@ +2022-10-17 Thomas Schwinge + + Backported from master: + 2022-10-17 Thomas Schwinge + + * config/gcn/gcn.cc (VnMODE): Use 'case E_QImode:' instead of + 'case QImode:', etc. + 2022-10-14 Julian Brown * omp-low.cc (oacc_privatization_candidate_p): Artificial vars are not diff --git a/gcc/config/gcn/gcn.cc b/gcc/config/gcn/gcn.cc index b01131c0dc2..9c2fd4c5b8a 100644 --- a/gcc/config/gcn/gcn.cc +++ b/gcc/config/gcn/gcn.cc @@ -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;