https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90173
Bug ID: 90173 Summary: [9 Regression] ICE: Segmentation fault (in strip_declarator_types) Product: gcc Version: 9.0 Status: UNCONFIRMED Keywords: error-recovery, ice-on-invalid-code Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- g++-9.0.0-alpha20190414 snapshot (r270355) ICEs when compiling the following testcase extracted from test/Parser/cxx1z-class-template-argument-deduction.cpp from the clang 8.0.0 test suite w/ -std=c++17: template <typename T> struct A { }; A(int) -> A<int>; namespace decl { A (*fp)() = 0; } % g++-9.0.0-alpha20190414 -std=c++17 -c yuz02xm1.cpp yuz02xm1.cpp:6:3: error: template placeholder type 'A<...auto...>' must be followed by a simple declarator-id 6 | A (*fp)() = 0; | ^ yuz02xm1.cpp:1:30: note: 'template<class T> struct A' declared here 1 | template <typename T> struct A { }; | ^ yuz02xm1.cpp:6:15: error: conversion from 'int' to non-scalar type 'A<int>' requested 6 | A (*fp)() = 0; | ^ yuz02xm1.cpp:6:15: internal compiler error: Segmentation fault 0xf780df crash_signal /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190414/work/gcc-9-20190414/gcc/toplev.c:326 0x9ada1f strip_declarator_types /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190414/work/gcc-9-20190414/gcc/cp/parser.c:20058 0x9ada1f cp_parser_init_declarator /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190414/work/gcc-9-20190414/gcc/cp/parser.c:20559 0x98f245 cp_parser_simple_declaration /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190414/work/gcc-9-20190414/gcc/cp/parser.c:13541 0x9b432d cp_parser_declaration /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190414/work/gcc-9-20190414/gcc/cp/parser.c:13238 0x9b4eeb cp_parser_declaration_seq_opt /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190414/work/gcc-9-20190414/gcc/cp/parser.c:13114 0x9b4eeb cp_parser_namespace_body /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190414/work/gcc-9-20190414/gcc/cp/parser.c:19327 0x9b4eeb cp_parser_namespace_definition /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190414/work/gcc-9-20190414/gcc/cp/parser.c:19305 0x9b4440 cp_parser_declaration /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190414/work/gcc-9-20190414/gcc/cp/parser.c:13218 0x9b4ac1 cp_parser_translation_unit /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190414/work/gcc-9-20190414/gcc/cp/parser.c:4701 0x9b4ac1 c_parse_file() /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190414/work/gcc-9-20190414/gcc/cp/parser.c:41181 0xabe3eb c_common_parse_file() /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190414/work/gcc-9-20190414/gcc/c-family/c-opts.c:1156