This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/82410] New: ICE in replace_placeholders_r
- From: "tomilovanatoliy at yandex dot ru" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 02 Oct 2017 19:33:58 +0000
- Subject: [Bug c++/82410] New: ICE in replace_placeholders_r
- Auto-submitted: auto-generated
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82410
Bug ID: 82410
Summary: ICE in replace_placeholders_r
Product: gcc
Version: 8.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: tomilovanatoliy at yandex dot ru
Target Milestone: ---
Internal compiler error on valid code. -std=c++14,17. Known to work in 5.*,
6.*. Known to not work in 7.1, 7.2, 8 HEAD.
int main()
{
struct A {};
struct S
{
int & p;
int x = p;
operator A () { return {}; }
};
int l;
[] (A) {} (S{l});
}
# Error message:
prog.cc: In function 'int main()':
prog.cc:13:20: internal compiler error: in replace_placeholders_r, at
cp/tree.c:2795
[] (A) {} (S{l});
^
0x6952e9 replace_placeholders_r
../../gcc-7.2.0/gcc/cp/tree.c:2795
0xcf18b5 walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*),
void*, hash_set<tree_node*, default_hash_traits<tree_node*> >*, tree_node*
(*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*,
hash_set<tree_node*, default_hash_traits<tree_node*> >*))
../../gcc-7.2.0/gcc/tree.c:11822
0xcf1e5e walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*),
void*, hash_set<tree_node*, default_hash_traits<tree_node*> >*, tree_node*
(*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*,
hash_set<tree_node*, default_hash_traits<tree_node*> >*))
../../gcc-7.2.0/gcc/tree.c:12139
0x69521b replace_placeholders_r
../../gcc-7.2.0/gcc/cp/tree.c:2825
0xcf18b5 walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*),
void*, hash_set<tree_node*, default_hash_traits<tree_node*> >*, tree_node*
(*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*,
hash_set<tree_node*, default_hash_traits<tree_node*> >*))
../../gcc-7.2.0/gcc/tree.c:11822
0xcf1d34 walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*),
void*, hash_set<tree_node*, default_hash_traits<tree_node*> >*, tree_node*
(*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*,
hash_set<tree_node*, default_hash_traits<tree_node*> >*))
../../gcc-7.2.0/gcc/tree.c:12049
0x6953a1 replace_placeholders(tree_node*, tree_node*, bool*)
../../gcc-7.2.0/gcc/cp/tree.c:2861
0x6c74ce cp_gimplify_init_expr
../../gcc-7.2.0/gcc/cp/cp-gimplify.c:500
0x6c74ce cp_gimplify_expr(tree_node**, gimple**, gimple**)
../../gcc-7.2.0/gcc/cp/cp-gimplify.c:659
0x8d4245 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
../../gcc-7.2.0/gcc/gimplify.c:11149
0x8ddb1c gimplify_target_expr
../../gcc-7.2.0/gcc/gimplify.c:6418
0x8d54ce gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
../../gcc-7.2.0/gcc/gimplify.c:11620
0x8d7b68 gimplify_stmt(tree_node**, gimple**)
../../gcc-7.2.0/gcc/gimplify.c:6497
0x8d828b gimplify_compound_expr
../../gcc-7.2.0/gcc/gimplify.c:5726
0x8d551f gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
../../gcc-7.2.0/gcc/gimplify.c:11230
0x8dd324 gimplify_expr
../../gcc-7.2.0/gcc/gimplify.c:12241
0x8de6ce gimplify_call_expr
../../gcc-7.2.0/gcc/gimplify.c:3262
0x8d6137 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
../../gcc-7.2.0/gcc/gimplify.c:11212
0x8d7b68 gimplify_stmt(tree_node**, gimple**)
../../gcc-7.2.0/gcc/gimplify.c:6497
0x8d6086 gimplify_cleanup_point_expr
../../gcc-7.2.0/gcc/gimplify.c:6241
Please submit a full bug report,