[Bug c++/83958] New: ICE: Segmentation fault (in find_decomp_class_base)
asolokha at gmx dot com
gcc-bugzilla@gcc.gnu.org
Sun Jan 21 05:18:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83958
Bug ID: 83958
Summary: ICE: Segmentation fault (in find_decomp_class_base)
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: asolokha at gmx dot com
Target Milestone: ---
While reducing the testcase from PR83481 I've found a snippet that still makes
both g++ 7 and 8 (r256677) ICE:
template <typename = void> struct ab;
class b;
template <typename, typename, typename = ab<>> class c;
template <typename, typename> struct ae;
template <typename af, typename i, typename ag, typename, typename, typename d>
class e {
public:
using ah = d;
ah operator*();
af operator++();
template <typename f, typename g, typename h, typename ai>
bool operator!=(e<f, i, ag, g, h, ai>);
};
template <typename i, typename ag, typename> class aj {
public:
class ad;
using ak = ae<i, ag>;
using am = e<ad, i, ag, ad, ak, ak &>;
class ad : public am {};
ad begin();
ad end();
};
template <typename i, typename ag, typename an> class c : aj<i, ag, an> {
using ao = aj<i, ag, an>;
public:
using ao::begin;
using ao::end;
};
using ap = class aq;
class ar {
void as() { for (auto & [ a ] : at) {} }
c<ap, b> at;
};
% g++-8.0.0-alpha20180114 -std=c++1z -w -c file_upload.i
file_upload.i: In member function 'void ar::as()':
file_upload.i:32:35: internal compiler error: Segmentation fault
void as() { for (auto & [ a ] : at) {} }
^~
0xea3a0f crash_signal
/var/tmp/portage/sys-devel/gcc-8.0.0_alpha20180114/work/gcc-8-20180114/gcc/toplev.c:325
0x853a88 tree_check(tree_node*, char const*, int, char const*, tree_code)
/var/tmp/portage/sys-devel/gcc-8.0.0_alpha20180114/work/gcc-8-20180114/gcc/tree.h:3126
0x853a88 find_decomp_class_base
/var/tmp/portage/sys-devel/gcc-8.0.0_alpha20180114/work/gcc-8-20180114/gcc/cp/decl.c:7215
0x875eb3 cp_finish_decomp(tree_node*, tree_node*, unsigned int)
/var/tmp/portage/sys-devel/gcc-8.0.0_alpha20180114/work/gcc-8-20180114/gcc/cp/decl.c:7604
0x8e9e24 cp_convert_range_for(tree_node*, tree_node*, tree_node*, tree_node*,
unsigned int, bool, unsigned short)
/var/tmp/portage/sys-devel/gcc-8.0.0_alpha20180114/work/gcc-8-20180114/gcc/cp/parser.c:11928
0x8ee82b cp_parser_range_for
/var/tmp/portage/sys-devel/gcc-8.0.0_alpha20180114/work/gcc-8-20180114/gcc/cp/parser.c:11753
0x9198de cp_parser_for
/var/tmp/portage/sys-devel/gcc-8.0.0_alpha20180114/work/gcc-8-20180114/gcc/cp/parser.c:11615
0x9198de cp_parser_iteration_statement
/var/tmp/portage/sys-devel/gcc-8.0.0_alpha20180114/work/gcc-8-20180114/gcc/cp/parser.c:12172
0x8f5ec6 cp_parser_statement
/var/tmp/portage/sys-devel/gcc-8.0.0_alpha20180114/work/gcc-8-20180114/gcc/cp/parser.c:10766
0x8f6ee0 cp_parser_statement_seq_opt
/var/tmp/portage/sys-devel/gcc-8.0.0_alpha20180114/work/gcc-8-20180114/gcc/cp/parser.c:11206
0x8f6fb7 cp_parser_compound_statement
/var/tmp/portage/sys-devel/gcc-8.0.0_alpha20180114/work/gcc-8-20180114/gcc/cp/parser.c:11160
0x90de50 cp_parser_function_body
/var/tmp/portage/sys-devel/gcc-8.0.0_alpha20180114/work/gcc-8-20180114/gcc/cp/parser.c:21700
0x90de50 cp_parser_ctor_initializer_opt_and_function_body
/var/tmp/portage/sys-devel/gcc-8.0.0_alpha20180114/work/gcc-8-20180114/gcc/cp/parser.c:21737
0x90e770 cp_parser_function_definition_after_declarator
/var/tmp/portage/sys-devel/gcc-8.0.0_alpha20180114/work/gcc-8-20180114/gcc/cp/parser.c:26635
0x91058c cp_parser_late_parsing_for_member
/var/tmp/portage/sys-devel/gcc-8.0.0_alpha20180114/work/gcc-8-20180114/gcc/cp/parser.c:27515
0x90235e cp_parser_class_specifier_1
/var/tmp/portage/sys-devel/gcc-8.0.0_alpha20180114/work/gcc-8-20180114/gcc/cp/parser.c:22666
0x903639 cp_parser_class_specifier
/var/tmp/portage/sys-devel/gcc-8.0.0_alpha20180114/work/gcc-8-20180114/gcc/cp/parser.c:22692
0x903639 cp_parser_type_specifier
/var/tmp/portage/sys-devel/gcc-8.0.0_alpha20180114/work/gcc-8-20180114/gcc/cp/parser.c:16698
0x910e6c cp_parser_decl_specifier_seq
/var/tmp/portage/sys-devel/gcc-8.0.0_alpha20180114/work/gcc-8-20180114/gcc/cp/parser.c:13559
0x916ec3 cp_parser_simple_declaration
/var/tmp/portage/sys-devel/gcc-8.0.0_alpha20180114/work/gcc-8-20180114/gcc/cp/parser.c:12867
More information about the Gcc-bugs
mailing list