https://gcc.gnu.org/g:91c503431f675bf3c94bd23c2b1deecdd2df52b8
commit r15-6028-g91c503431f675bf3c94bd23c2b1deecdd2df52b8 Author: Thomas Schwinge <tschwi...@baylibre.com> Date: Thu Dec 5 14:28:26 2024 +0100 GCN: Fix 'real_from_integer' usage The recent commit b3f1b9e2aa079f8ec73e3cb48143a16645c49566 "build: Remove INCLUDE_MEMORY [PR117737]" exposed an issue in code added in 2020 GCN back end commit 95607c12363712c39345e1d97f2c1aee8025e188 "Zero-initialise masked load destinations"; compilation now fails: [...] In file included from ../../source-gcc/gcc/coretypes.h:507:0, from ../../source-gcc/gcc/config/gcn/gcn.cc:24: ../../source-gcc/gcc/real.h: In instantiation of ‘format_helper::format_helper(const T&) [with T = std::nullptr_t]’: ../../source-gcc/gcc/config/gcn/gcn.cc:1178:46: required from here ../../source-gcc/gcc/real.h:233:17: error: no match for ‘operator==’ (operand types are ‘std::nullptr_t’ and ‘machine_mode’) : m_format (m == VOIDmode ? 0 : REAL_MODE_FORMAT (m)) ^ [...] That's with 'g++ (GCC) 5.5.0', and seen similarly with 'g++ (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0', for example. gcc/ * config/gcn/gcn.cc (gcn_vec_constant): Fix 'real_from_integer' usage. Diff: --- gcc/config/gcn/gcn.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/config/gcn/gcn.cc b/gcc/config/gcn/gcn.cc index 8fce1c9234ac..d017f22d1bc4 100644 --- a/gcc/config/gcn/gcn.cc +++ b/gcc/config/gcn/gcn.cc @@ -1175,7 +1175,7 @@ gcn_vec_constant (machine_mode mode, int a) if (FLOAT_MODE_P (innermode)) { REAL_VALUE_TYPE rv; - real_from_integer (&rv, NULL, a, SIGNED); + real_from_integer (&rv, VOIDmode, a, SIGNED); tem = const_double_from_real_value (rv, innermode); } else