https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82148
--- Comment #1 from Matthias Hochsteger <matthias.hochsteger at tuwien dot ac.at> --- Same on latest trunk (git commit 520b78be6e5b448ae4341960acc5706ae561c974): ~/local/gcc7/bin/c++ -v -save-temps -std=c++17 -c code.cpp Using built-in specs. COLLECT_GCC=/home/matthias/local/gcc7/bin/c++ Target: x86_64-pc-linux-gnu Configured with: ../configure --prefix=/home/matthias/local/gcc7 --enable-languages=c,c++ --disable-multilib Thread model: posix gcc version 8.0.0 20170908 (experimental) (GCC) COLLECT_GCC_OPTIONS='-v' '-save-temps' '-std=c++1z' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' /home/matthias/local/gcc7/libexec/gcc/x86_64-pc-linux-gnu/8.0.0/cc1plus -E -quiet -v -D_GNU_SOURCE code.cpp -mtune=generic -march=x86-64 -std=c++1z -fpch-preprocess -o code.ii ignoring nonexistent directory "/home/matthias/local/gcc7/lib/gcc/x86_64-pc-linux-gnu/8.0.0/../../../../x86_64-pc-linux-gnu/include" #include "..." search starts here: #include <...> search starts here: /home/matthias/local/gcc7/lib/gcc/x86_64-pc-linux-gnu/8.0.0/../../../../include/c++/8.0.0 /home/matthias/local/gcc7/lib/gcc/x86_64-pc-linux-gnu/8.0.0/../../../../include/c++/8.0.0/x86_64-pc-linux-gnu /home/matthias/local/gcc7/lib/gcc/x86_64-pc-linux-gnu/8.0.0/../../../../include/c++/8.0.0/backward /home/matthias/local/gcc7/lib/gcc/x86_64-pc-linux-gnu/8.0.0/include /usr/local/include /home/matthias/local/gcc7/include /home/matthias/local/gcc7/lib/gcc/x86_64-pc-linux-gnu/8.0.0/include-fixed /usr/include End of search list. COLLECT_GCC_OPTIONS='-v' '-save-temps' '-std=c++1z' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' /home/matthias/local/gcc7/libexec/gcc/x86_64-pc-linux-gnu/8.0.0/cc1plus -fpreprocessed code.ii -quiet -dumpbase code.cpp -mtune=generic -march=x86-64 -auxbase code -std=c++1z -version -o code.s GNU C++14 (GCC) version 8.0.0 20170908 (experimental) (x86_64-pc-linux-gnu) compiled by GNU C version 8.0.0 20170908 (experimental), GMP version 6.1.0, MPFR version 3.1.4, MPC version 1.0.3, isl version isl-0.16.1-GMP GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 GNU C++14 (GCC) version 8.0.0 20170908 (experimental) (x86_64-pc-linux-gnu) compiled by GNU C version 8.0.0 20170908 (experimental), GMP version 6.1.0, MPFR version 3.1.4, MPC version 1.0.3, isl version isl-0.16.1-GMP GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 Compiler executable checksum: 34f3776a4b4b0480fb19303c453a2e50 during RTL pass: expand code.cpp: In function ‘void bar()’: code.cpp:17:8: internal compiler error: in assign_temp, at function.c:970 foo(Derived{0}); ~~~^~~~~~~~~~~~ 0x6cef41 assign_temp(tree_node*, int, int) ../../gcc/function.c:970 0xb80dd3 initialize_argument_information ../../gcc/calls.c:1830 0xb818df expand_call(tree_node*, rtx_def*, int) ../../gcc/calls.c:3279 0xc8ea1d expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) ../../gcc/expr.c:10860 0xb957e0 expand_expr ../../gcc/expr.h:276 0xb957e0 expand_call_stmt ../../gcc/cfgexpand.c:2666 0xb957e0 expand_gimple_stmt_1 ../../gcc/cfgexpand.c:3585 0xb957e0 expand_gimple_stmt ../../gcc/cfgexpand.c:3751 0xb96721 expand_gimple_basic_block ../../gcc/cfgexpand.c:5750 0xb9b12e execute ../../gcc/cfgexpand.c:6357