https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90982
Bug ID: 90982 Summary: [9/10 Regression] ICE in make_decl_rtl, at varasm.c:1344 Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: gs...@t-online.de Target Milestone: --- Changed between 20180513 and 20180527, at -O2+ : $ cat z1.cc template <int n> struct S { long c[n]; void f (S d) { for (int i = 2;; i++) c[i] &= d.c[i]; } }; template <int m> struct T:S<m/64> { void operator &= (T d) { this -> f (d); } }; void g (T<192> &d) { T<192> v; d &= v; } $ g++-8 -c z1.cc -O2 $ g++-10-20190623 -c z1.cc -O1 $ $ g++-10-20190623 -c z1.cc -O2 during RTL pass: expand z1.cc: In function 'void g(T<192>&)': z1.cc:7:7: internal compiler error: in make_decl_rtl, at varasm.c:1344 7 | c[i] &= d.c[i]; | ^ 0xe1237d make_decl_rtl(tree_node*) ../../gcc/varasm.c:1340 0x8e014a expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) ../../gcc/expr.c:9990 0x8de252 expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) ../../gcc/expr.c:10621 0x8e02ba expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) ../../gcc/expr.c:9958 0x8e9026 expand_expr ../../gcc/expr.h:281 0x8e9026 expand_operands(tree_node*, tree_node*, rtx_def*, rtx_def**, rtx_def**, expand_modifier) ../../gcc/expr.c:7885 0x8ee12c expand_expr_real_2(separate_ops*, rtx_def*, machine_mode, expand_modifier) ../../gcc/expr.c:9744 0x8e0be7 expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) ../../gcc/expr.c:9954 0x8e9966 store_expr(tree_node*, rtx_def*, int, bool, bool) ../../gcc/expr.c:5685 0x8eac68 expand_assignment(tree_node*, tree_node*, bool) ../../gcc/expr.c:5307 0x7e6818 expand_gimple_stmt_1 ../../gcc/cfgexpand.c:3770 0x7e6818 expand_gimple_stmt ../../gcc/cfgexpand.c:3868 0x7ebab7 expand_gimple_basic_block ../../gcc/cfgexpand.c:5908 0x7ee156 execute ../../gcc/cfgexpand.c:6531