https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68810
--- Comment #6 from David Malcolm <dmalcolm at gcc dot gnu.org> --- The location of the error does indeed move from line 21 to line 20 upon adding -m32: Here's recent trunk (r231296) on x86_64-pc-linux-gnu, running manually (without the -fno-diagnostics-show-caret from the test harness): Without -m32: $ ./xg++ \ -B. \ -c ../../src/gcc/testsuite/g++.dg/cpp0x/constexpr-reinterpret1.C ../../src/gcc/testsuite/g++.dg/cpp0x/constexpr-reinterpret1.C: In static member function ‘static constexpr B::Inner& B::getInner()’: ../../src/gcc/testsuite/g++.dg/cpp0x/constexpr-reinterpret1.C:21:3: error: reinterpret_cast from integer to pointer } // { dg-error "reinterpret_cast" "" } ^ With -m32: $ ./xg++ \ -B. \ -c ../../src/gcc/testsuite/g++.dg/cpp0x/constexpr-reinterpret1.C \ -m32 ../../src/gcc/testsuite/g++.dg/cpp0x/constexpr-reinterpret1.C: In static member function ‘static constexpr B::Inner& B::getInner()’: ../../src/gcc/testsuite/g++.dg/cpp0x/constexpr-reinterpret1.C:20:14: error: reinterpret_cast from integer to pointer return *((Inner *)4); ~^~~~~~~~~~~