https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77786
Bug ID: 77786 Summary: internal compiler error: in tsubst_copy, at cp/pt.c:13040 Product: gcc Version: 5.4.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: matthias.thul at gmail dot com Target Milestone: --- Created attachment 39720 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=39720&action=edit compiler output The below code fails with the the internal compiler error "in tsubst_copy, at cp/pt.c:13040" in 5.4.1. The code compiles successfully with 4.9.4 and 6.2.0 as well as Clang 3.8.0. When removing the template parameter from foo, the internal compiler error changes to "Segmentation fault". When checking whether this was a duplicate of 70343, I changed the capture of the lambda bar from [&] to [] and the internal compiler error still occurs (though the code is not valid any longer). ========== code ========== #include <vector> template<int N> void foo(std::vector<int> a) { auto const a_size = a.size(); auto bar = [&](auto y) -> void { int a_size_2 = a_size; }; double x = 0.0; bar(x); } int main() { std::vector<int> a(1); foo<1>(a); } ========== output of gcc -v ========== Using built-in specs. COLLECT_GCC=g++ COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.4.1-2ubuntu1~16.04' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 5.4.1 20160904 (Ubuntu 5.4.1-2ubuntu1~16.04) ========== complete command line that triggers the bug ========== g++ -std=c++14 main.cpp -o main