Created attachment 36440 [details] Preprocessed source tools/gcc-arm-none-eabi-4_9-2015q1/bin/arm-none-eabi-g++ -MT .obj/main.cpp.o -MMD -MP -MF .obj/main.Td -c -DDEVELOPER_VERSION -Iinclude -Wno-unused -g3 -O0 -std=c++11 -fno-exceptions -save-temps -v src/main.cpp -o .obj/main.cpp.o Using built-in specs. COLLECT_GCC=tools/gcc-arm-none-eabi-4_9-2015q1/bin/arm-none-eabi-g++ Target: arm-none-eabi Configured with: /home/build/work/GCC-4-9-build/src/gcc/configure --target=arm-none-eabi --prefix=/home/build/work/GCC-4-9-build/install-native --libexecdir=/home/build/work/GCC-4-9-build/install-native/lib --infodir=/home/build/work/GCC-4-9-build/install-native/share/doc/gcc-arm-none-eabi/info --mandir=/home/build/work/GCC-4-9-build/install-native/share/doc/gcc-arm-none-eabi/man --htmldir=/home/build/work/GCC-4-9-build/install-native/share/doc/gcc-arm-none-eabi/html --pdfdir=/home/build/work/GCC-4-9-build/install-native/share/doc/gcc-arm-none-eabi/pdf --enable-languages=c,c++ --enable-plugins --disable-decimal-float --disable-libffi --disable-libgomp --disable-libmudflap --disable-libquadmath --disable-libssp --disable-libstdcxx-pch --disable-nls --disable-shared --disable-threads --disable-tls --with-gnu-as --with-gnu-ld --with-newlib --with-headers=yes --with-python-dir=share/gcc-arm-none-eabi --with-sysroot=/home/build/work/GCC-4-9-build/install-native/arm-none-eabi --build=i686-linux-gnu --host=i686-linux-gnu --with-gmp=/home/build/work/GCC-4-9-build/build-native/host-libs/usr --with-mpfr=/home/build/work/GCC-4-9-build/build-native/host-libs/usr --with-mpc=/home/build/work/GCC-4-9-build/build-native/host-libs/usr --with-isl=/home/build/work/GCC-4-9-build/build-native/host-libs/usr --with-cloog=/home/build/work/GCC-4-9-build/build-native/host-libs/usr --with-libelf=/home/build/work/GCC-4-9-build/build-native/host-libs/usr --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --with-pkgversion='GNU Tools for ARM Embedded Processors' --with-multilib-list=armv6-m,armv7-m,armv7e-m,cortex-m7,armv7-r Thread model: single gcc version 4.9.3 20150303 (release) [ARM/embedded-4_9-branch revision 221220] (GNU Tools for ARM Embedded Processors) COLLECT_GCC_OPTIONS='-MT' '.obj/main.cpp.o' '-MMD' '-MP' '-MF' '.obj/main.Td' '-c' '-D' 'DEVELOPER_VERSION' '-I' 'include' '-Wno-unused' '-g3' '-O0' '-std=c++11' '-fno-exceptions' '-save-temps' '-v' '-o' '.obj/main.cpp.o' /home/tooma/proj/cnc/fw/nstm32f4/tools/gcc-arm-none-eabi-4_9-2015q1/bin/../lib/gcc/arm-none-eabi/4.9.3/cc1plus -E -quiet -v -I include -iprefix /home/tooma/proj/cnc/fw/nstm32f4/tools/gcc-arm-none-eabi-4_9-2015q1/bin/../lib/gcc/arm-none-eabi/4.9.3/ -isysroot /home/tooma/proj/cnc/fw/nstm32f4/tools/gcc-arm-none-eabi-4_9-2015q1/bin/../arm-none-eabi -MMD .obj/main.cpp.d -MF .obj/main.Td -MP -MT .obj/main.cpp.o -dD -D__USES_INITFINI__ -D DEVELOPER_VERSION src/main.cpp -std=c++11 -Wno-unused -fno-exceptions -g3 -fworking-directory -O0 -fpch-preprocess -o main.ii ignoring duplicate directory "/home/tooma/proj/cnc/fw/nstm32f4/tools/gcc-arm-none-eabi-4_9-2015q1/bin/../lib/gcc/../../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/include/c++/4.9.3" ignoring duplicate directory "/home/tooma/proj/cnc/fw/nstm32f4/tools/gcc-arm-none-eabi-4_9-2015q1/bin/../lib/gcc/../../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/include/c++/4.9.3/arm-none-eabi" ignoring duplicate directory "/home/tooma/proj/cnc/fw/nstm32f4/tools/gcc-arm-none-eabi-4_9-2015q1/bin/../lib/gcc/../../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/include/c++/4.9.3/backward" ignoring duplicate directory "/home/tooma/proj/cnc/fw/nstm32f4/tools/gcc-arm-none-eabi-4_9-2015q1/bin/../lib/gcc/../../lib/gcc/arm-none-eabi/4.9.3/include" ignoring nonexistent directory "/home/tooma/proj/cnc/fw/nstm32f4/tools/gcc-arm-none-eabi-4_9-2015q1/bin/../arm-none-eabi/usr/local/include" ignoring duplicate directory "/home/tooma/proj/cnc/fw/nstm32f4/tools/gcc-arm-none-eabi-4_9-2015q1/bin/../lib/gcc/../../lib/gcc/arm-none-eabi/4.9.3/include-fixed" ignoring duplicate directory "/home/tooma/proj/cnc/fw/nstm32f4/tools/gcc-arm-none-eabi-4_9-2015q1/bin/../lib/gcc/../../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/include" ignoring nonexistent directory "/home/tooma/proj/cnc/fw/nstm32f4/tools/gcc-arm-none-eabi-4_9-2015q1/bin/../arm-none-eabi/usr/include" #include "..." search starts here: #include <...> search starts here: include /home/tooma/proj/cnc/fw/nstm32f4/tools/gcc-arm-none-eabi-4_9-2015q1/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/include/c++/4.9.3 /home/tooma/proj/cnc/fw/nstm32f4/tools/gcc-arm-none-eabi-4_9-2015q1/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/include/c++/4.9.3/arm-none-eabi /home/tooma/proj/cnc/fw/nstm32f4/tools/gcc-arm-none-eabi-4_9-2015q1/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/include/c++/4.9.3/backward /home/tooma/proj/cnc/fw/nstm32f4/tools/gcc-arm-none-eabi-4_9-2015q1/bin/../lib/gcc/arm-none-eabi/4.9.3/include /home/tooma/proj/cnc/fw/nstm32f4/tools/gcc-arm-none-eabi-4_9-2015q1/bin/../lib/gcc/arm-none-eabi/4.9.3/include-fixed /home/tooma/proj/cnc/fw/nstm32f4/tools/gcc-arm-none-eabi-4_9-2015q1/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/include End of search list. COLLECT_GCC_OPTIONS='-MT' '.obj/main.cpp.o' '-MMD' '-MP' '-MF' '.obj/main.Td' '-c' '-D' 'DEVELOPER_VERSION' '-I' 'include' '-Wno-unused' '-g3' '-O0' '-std=c++11' '-fno-exceptions' '-save-temps' '-v' '-o' '.obj/main.cpp.o' /home/tooma/proj/cnc/fw/nstm32f4/tools/gcc-arm-none-eabi-4_9-2015q1/bin/../lib/gcc/arm-none-eabi/4.9.3/cc1plus -fpreprocessed main.ii -quiet -dumpbase main.cpp -auxbase-strip .obj/main.cpp.o -g3 -O0 -Wno-unused -std=c++11 -version -fno-exceptions -o main.s GNU C++ (GNU Tools for ARM Embedded Processors) version 4.9.3 20150303 (release) [ARM/embedded-4_9-branch revision 221220] (arm-none-eabi) compiled by GNU C version 4.7.4, GMP version 4.3.2, MPFR version 2.4.2, MPC version 0.8.1 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 GNU C++ (GNU Tools for ARM Embedded Processors) version 4.9.3 20150303 (release) [ARM/embedded-4_9-branch revision 221220] (arm-none-eabi) compiled by GNU C version 4.7.4, GMP version 4.3.2, MPFR version 2.4.2, MPC version 0.8.1 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Compiler executable checksum: 67ffeb4f308275707e0820985f703a94 src/main.cpp: In function 'void __static_initialization_and_destruction_0(int, int)': src/main.cpp:17:12: internal compiler error: in make_decl_rtl, at varasm.c:1223 const Task tasks[] = {
This also reproduces on x86_64 trunk. Probably related to PR 67398. $ cat main2.cc struct Task { struct TaskStaticData { constexpr TaskStaticData() {} } const &tsd; constexpr Task() : tsd(TaskStaticData()) {} }; Task tasks{Task()}; $ cc1plus main2.cc main2.cc: In function 'void __static_initialization_and_destruction_0(int, int)': main2.cc:8:6: internal compiler error: in make_decl_rtl, at varasm.c:1306 Task tasks{Task()}; ^ 0xf5c1d5 make_decl_rtl(tree_node*) /home/miyuki/gcc/src/gcc/varasm.c:1302 0x9d4378 expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) /home/miyuki/gcc/src/gcc/expr.c:9550 0x9de576 expand_expr /home/miyuki/gcc/src/gcc/expr.h:255 0x9de576 expand_expr_addr_expr_1 /home/miyuki/gcc/src/gcc/expr.c:7601 0x9d2931 expand_expr_addr_expr /home/miyuki/gcc/src/gcc/expr.c:7721 0x9d2931 expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) /home/miyuki/gcc/src/gcc/expr.c:10709 0x9df24f store_expr_with_bounds(tree_node*, rtx_def*, int, bool, tree_node*) /home/miyuki/gcc/src/gcc/expr.c:5399 0x9e1825 expand_assignment(tree_node*, tree_node*, bool) /home/miyuki/gcc/src/gcc/expr.c:5171 0x8d3358 expand_gimple_stmt_1 /home/miyuki/gcc/src/gcc/cfgexpand.c:3584 0x8d3358 expand_gimple_stmt /home/miyuki/gcc/src/gcc/cfgexpand.c:3680 0x8d5906 expand_gimple_basic_block /home/miyuki/gcc/src/gcc/cfgexpand.c:5684 0x8dbee6 execute /home/miyuki/gcc/src/gcc/cfgexpand.c:6296 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <http://gcc.gnu.org/bugs.html> for instructions. clang++ -S -std=c++11 main2.cc main2.cc:5:26: warning: binding reference member 'tsd' to a temporary value [-Wdangling-field] constexpr Task() : tsd(TaskStaticData()) {} ^~~~~~~~~~~~~~~~ main2.cc:4:12: note: reference member declared here } const &tsd; ^ 1 warning generated.
Author: paolo Date: Tue Oct 17 09:06:53 2017 New Revision: 253807 URL: https://gcc.gnu.org/viewcvs?rev=253807&root=gcc&view=rev Log: 2017-10-17 Paolo Carlini <paolo.carlini@oracle.com> PR c++/67831 * g++.dg/cpp0x/constexpr-ice18.C: New. Added: trunk/gcc/testsuite/g++.dg/cpp0x/constexpr-ice18.C Modified: trunk/gcc/testsuite/ChangeLog
Fixed for 6.1.0.