https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83916
Bug ID: 83916 Summary: Internal compiler error on valid template code Product: gcc Version: 7.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: blake at tradebot dot com Target Milestone: --- Created attachment 43161 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=43161&action=edit Preprocessor output Example of problem on godbolt: https://godbolt.org/g/dkyYr9 $ g++-7.2.0 -v Using built-in specs. COLLECT_GCC=g++-7.2.0 COLLECT_LTO_WRAPPER=/opt/toolchain/gcc-7.2.0/libexec/gcc/x86_64-redhat-linux/7.2.0/lto-wrapper Target: x86_64-redhat-linux Configured with: ../gcc-7.2.0/configure --disable-multilib --disable-bootstrap --with-bugurl=http://bugzilla.redhat.com/Bugzilla --with-system-zlib --build=x86_64-redhat-linux --with-default-libstdcxx-abi=gcc4-compatible --enable-shared --enable-threads=posix --enable-checking=release --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --disable-libgcj --enable-gnu-indirect-function --program-suffix=-7.2.0 --enable-languages=c,c++ --prefix=/opt/toolchain/gcc-7.2.0 Thread model: posix gcc version 7.2.0 (GCC) $ g++-7.2.0 -save-temps -std=c++17 -DTRIGGER_ERROR -o cause_bug cause_bug.cpp cause_bug.cpp:13:42: internal compiler error: Segmentation fault struct C : A<Type, TemplatedType, Vals...> { ^ 0xad918f crash_signal ../../gcc-7.2.0/gcc/toplev.c:337 0x5da860 tsubst(tree_node*, tree_node*, int, tree_node*) ../../gcc-7.2.0/gcc/cp/pt.c:13561 0x5e89a8 convert_template_argument ../../gcc-7.2.0/gcc/cp/pt.c:7721 0x5e9caa coerce_template_parameter_pack ../../gcc-7.2.0/gcc/cp/pt.c:7897 0x5e9caa coerce_template_parms ../../gcc-7.2.0/gcc/cp/pt.c:8119 0x5d981a coerce_template_template_parms ../../gcc-7.2.0/gcc/cp/pt.c:7237 0x5e88a9 convert_template_argument ../../gcc-7.2.0/gcc/cp/pt.c:7648 0x5e9d6c coerce_template_parms ../../gcc-7.2.0/gcc/cp/pt.c:8210 0x5ec849 lookup_template_class_1 ../../gcc-7.2.0/gcc/cp/pt.c:8746 0x5ec849 lookup_template_class(tree_node*, tree_node*, tree_node*, tree_node*, int, int) ../../gcc-7.2.0/gcc/cp/pt.c:9091 0x686e2d finish_template_type(tree_node*, tree_node*, int) ../../gcc-7.2.0/gcc/cp/semantics.c:3164 0x6363a4 cp_parser_template_id ../../gcc-7.2.0/gcc/cp/parser.c:15514 0x6364ff cp_parser_class_name ../../gcc-7.2.0/gcc/cp/parser.c:21976 0x640b8e cp_parser_qualifying_entity ../../gcc-7.2.0/gcc/cp/parser.c:6291 0x640b8e cp_parser_nested_name_specifier_opt ../../gcc-7.2.0/gcc/cp/parser.c:5977 0x62bfd3 cp_parser_base_specifier ../../gcc-7.2.0/gcc/cp/parser.c:23769 0x62bfd3 cp_parser_base_clause ../../gcc-7.2.0/gcc/cp/parser.c:23622 0x62bfd3 cp_parser_class_head ../../gcc-7.2.0/gcc/cp/parser.c:22829 0x62bfd3 cp_parser_class_specifier_1 ../../gcc-7.2.0/gcc/cp/parser.c:22060 0x62c911 cp_parser_class_specifier ../../gcc-7.2.0/gcc/cp/parser.c:22373 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <http://bugzilla.redhat.com/Bugzilla> for instructions. Problem code is in the ifdef: template<class Type, template<Type...> class TemplatedType, Type... Vals> struct A { }; template<class Type, template<Type...> class TemplatedType, Type... Vals> struct B : A<Type, TemplatedType, Vals...> { }; #ifdef TRIGGER_ERROR template<class AnotherType, class Type, template<Type...> class TemplatedType, Type... Vals> struct C : A<Type, TemplatedType, Vals...> { }; #endif template<class Type, class AnotherType, template<Type...> class TemplatedType, Type... Vals> struct D : A<Type, TemplatedType, Vals...> { }; int main() { return 0; }