public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug lto/99849] New: ICE in expand_expr_real_1, at expr.c:11556 since r5-5407-g30d5d8c5189064c8
@ 2021-03-31 15:21 marxin at gcc dot gnu.org
2021-03-31 15:21 ` [Bug lto/99849] " marxin at gcc dot gnu.org
` (11 more replies)
0 siblings, 12 replies; 13+ messages in thread
From: marxin at gcc dot gnu.org @ 2021-03-31 15:21 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99849
Bug ID: 99849
Summary: ICE in expand_expr_real_1, at expr.c:11556 since
r5-5407-g30d5d8c5189064c8
Product: gcc
Version: 11.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code
Severity: normal
Priority: P3
Component: lto
Assignee: unassigned at gcc dot gnu.org
Reporter: marxin at gcc dot gnu.org
CC: andi-gcc at firstfloor dot org, hubicka at gcc dot gnu.org,
jakub at gcc dot gnu.org, marxin at gcc dot gnu.org
Target Milestone: ---
It's reduced from Linux kernel compiled with LTO and -flto-partition=1to1
$ cat a.i
struct {
struct uapi_definition *driver_def;
} * mlx5_ib_stage_caps_init_dev;
struct auxiliary_driver {
int *probe;
};
struct uverbs_obj_type {
int *type_class;
};
const struct uverbs_obj_idr_type {
struct uverbs_obj_type type;
} uverbs_idr_class;
struct uapi_definition {
struct {
struct uverbs_obj_type chain_obj_tree;
};
};
struct mlx5_ib_stage {
void *cleanup;
} mlx5_ib_object_MLX5_IB_OBJECT_VAR = {
&(&(const struct uverbs_obj_idr_type){(void * )&uverbs_idr_class})->type};
struct uverbs_obj_type mlx5_ib_object_MLX5_IB_OBJECT_UAR = {
&(&(const struct uverbs_obj_idr_type){(void *)&uverbs_idr_class})->type};
struct uapi_definition mlx5_ib_defs[] = {&mlx5_ib_object_MLX5_IB_OBJECT_VAR,
&mlx5_ib_object_MLX5_IB_OBJECT_UAR};
void
mlx5_ib_stage_caps_init() {
mlx5_ib_stage_caps_init_dev->driver_def = mlx5_ib_defs;
}
struct mlx5_ib_stage mlx5r_probe_profile = {mlx5_ib_stage_caps_init};
void __mlx5_ib_add();
int
mlx5r_probe() { __mlx5_ib_add(mlx5r_probe_profile); }
struct auxiliary_driver mlx5r_driver = {(int *)mlx5r_probe};
void __auxiliary_driver_register();
void mlx5_ib_init() { __auxiliary_driver_register(mlx5r_driver); }
void *__initcall__kmod_mlx5_ib__1811_4811_mlx5_ib_init6
__attribute__((__used__)) =
mlx5_ib_init;
$ gcc -O2 -flto a.i -flto-partition=1to1 -Wno-incompatible-pointer-types
-Wno-discarded-qualifiers -shared -fPIC
lto1: internal compiler error: in expand_expr_real_1, at expr.c:11556
0x641a09 expand_expr_real_1(tree_node*, rtx_def*, machine_mode,
expand_modifier, rtx_def**, bool)
/home/marxin/Programming/gcc/gcc/expr.c:11556
0x9d6077 expand_expr
/home/marxin/Programming/gcc/gcc/expr.h:282
0x9d6077 expand_expr_addr_expr_1
/home/marxin/Programming/gcc/gcc/expr.c:8223
0x9d615a expand_expr_addr_expr_1
/home/marxin/Programming/gcc/gcc/expr.c:8269
0x9ca09e expand_expr_addr_expr
/home/marxin/Programming/gcc/gcc/expr.c:8344
0x9ca09e expand_expr_real_1(tree_node*, rtx_def*, machine_mode,
expand_modifier, rtx_def**, bool)
/home/marxin/Programming/gcc/gcc/expr.c:11513
0x1088d5b expand_expr
/home/marxin/Programming/gcc/gcc/expr.h:282
0x1088d5b output_constant
/home/marxin/Programming/gcc/gcc/varasm.c:5240
0x1087dad output_constant
/home/marxin/Programming/gcc/gcc/varasm.c:5529
0x1087dad output_constructor_regular_field
/home/marxin/Programming/gcc/gcc/varasm.c:5529
0x1087dad output_constructor
/home/marxin/Programming/gcc/gcc/varasm.c:5796
0x1089793 output_constant
/home/marxin/Programming/gcc/gcc/varasm.c:5148
0x1089793 assemble_variable_contents
/home/marxin/Programming/gcc/gcc/varasm.c:2211
0x108f0d4 assemble_variable(tree_node*, int, int, int)
/home/marxin/Programming/gcc/gcc/varasm.c:2390
0x1092dd9 varpool_node::assemble_decl()
/home/marxin/Programming/gcc/gcc/varpool.c:595
0x1092dd9 varpool_node::assemble_decl()
/home/marxin/Programming/gcc/gcc/varpool.c:563
0x1093900 symbol_table::output_variables()
/home/marxin/Programming/gcc/gcc/varpool.c:761
0x8e4a66 symbol_table::compile()
/home/marxin/Programming/gcc/gcc/cgraphunit.c:2361
0x8e4a66 symbol_table::compile()
/home/marxin/Programming/gcc/gcc/cgraphunit.c:2269
0x82d7b4 lto_main()
/home/marxin/Programming/gcc/gcc/lto/lto.c:653
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
lto-wrapper: fatal error: gcc returned 1 exit status
compilation terminated.
/usr/bin/ld: error: lto-wrapper failed
collect2: error: ld returned 1 exit status
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug lto/99849] ICE in expand_expr_real_1, at expr.c:11556 since r5-5407-g30d5d8c5189064c8
2021-03-31 15:21 [Bug lto/99849] New: ICE in expand_expr_real_1, at expr.c:11556 since r5-5407-g30d5d8c5189064c8 marxin at gcc dot gnu.org
@ 2021-03-31 15:21 ` marxin at gcc dot gnu.org
2021-03-31 15:28 ` marxin at gcc dot gnu.org
` (10 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: marxin at gcc dot gnu.org @ 2021-03-31 15:21 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99849
Martin Liška <marxin at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed| |2021-03-31
Status|UNCONFIRMED |NEW
Ever confirmed|0 |1
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug lto/99849] ICE in expand_expr_real_1, at expr.c:11556 since r5-5407-g30d5d8c5189064c8
2021-03-31 15:21 [Bug lto/99849] New: ICE in expand_expr_real_1, at expr.c:11556 since r5-5407-g30d5d8c5189064c8 marxin at gcc dot gnu.org
2021-03-31 15:21 ` [Bug lto/99849] " marxin at gcc dot gnu.org
@ 2021-03-31 15:28 ` marxin at gcc dot gnu.org
2021-04-01 6:56 ` rguenth at gcc dot gnu.org
` (9 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: marxin at gcc dot gnu.org @ 2021-03-31 15:28 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99849
--- Comment #1 from Martin Liška <marxin at gcc dot gnu.org> ---
There's a backtrace:
(gdb) p exp
$1 = (tree) 0x7ffff77ddea0
(gdb) p debug_tree(exp)
<compound_literal_expr 0x7ffff77ddea0
type <record_type 0x7ffff73e0930 uverbs_obj_idr_type readonly DI
size <integer_cst 0x7ffff75e1bb8 constant 64>
unit-size <integer_cst 0x7ffff75e1bd0 constant 8>
align:64 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x7ffff73e0d20
fields <field_decl 0x7ffff73e34c0 type type <record_type 0x7ffff73e0c78
uverbs_obj_type>
DI a.i:14:26 size <integer_cst 0x7ffff75e1bb8 64> unit-size
<integer_cst 0x7ffff75e1bd0 8>
align:64 warn_if_not_align:0 offset_align 128
offset <integer_cst 0x7ffff75e1be8 constant 0>
bit-offset <integer_cst 0x7ffff75e1c30 constant 0> context
<record_type 0x7ffff73e0888 uverbs_obj_idr_type>> context
<translation_unit_decl 0x7ffff75ec168 a.i>
pointer_to_this <pointer_type 0x7ffff73e8000>>
side-effects addressable
arg:0 <decl_expr 0x7ffff77dde80
type <void_type 0x7ffff75f6f18 void VOID
align:8 warn_if_not_align:0 symtab:0 alias-set -1
structural-equality
pointer_to_this <pointer_type 0x7ffff75fd000>>
side-effects
arg:0 <var_decl 0x7ffff73e7000 __compound_literal.0 type <record_type
0x7ffff73e0930 uverbs_obj_idr_type>
readonly addressable public ignored external DI a.i:26:42 size
<integer_cst 0x7ffff75e1bb8 64> unit-size <integer_cst 0x7ffff75e1bd0 8>
align:64 warn_if_not_align:0 context <translation_unit_decl
0x7ffff75ec168 a.i> initial <constructor 0x7ffff73d7978>
(mem/u/c:DI (symbol_ref:DI ("__compound_literal.0.lto_priv.0")
[flags 0x42] <var_decl 0x7ffff73e7000 __compound_literal.0>) [7
__compound_literal.0+0 S8 A64])>
a.i:26:42 start: a.i:26:42 finish: a.i:26:42>
a.i:26:71 start: a.i:26:71 finish: a.i:26:71>
$2 = void
(gdb) bt
#0 expand_expr_real_1 (exp=0x7ffff77ddea0, target=0x0, tmode=E_DImode,
modifier=EXPAND_INITIALIZER, alt_rtl=0x0, inner_reference_p=false) at
/home/marxin/Programming/gcc/gcc/expr.c:11556
#1 0x00000000009e9a73 in expand_expr_real (exp=0x7ffff77ddea0, target=0x0,
tmode=E_DImode, modifier=EXPAND_INITIALIZER, alt_rtl=0x0,
inner_reference_p=false) at /home/marxin/Programming/gcc/gcc/expr.c:8519
#2 0x00000000009c5d42 in expand_expr (exp=0x7ffff77ddea0, target=0x0,
mode=E_DImode, modifier=EXPAND_INITIALIZER) at
/home/marxin/Programming/gcc/gcc/expr.h:282
#3 0x00000000009e8aa2 in expand_expr_addr_expr_1 (exp=0x7ffff77ddea0,
target=0x0, tmode=..., modifier=EXPAND_INITIALIZER, as=0 '\000') at
/home/marxin/Programming/gcc/gcc/expr.c:8223
#4 0x00000000009e8fc0 in expand_expr_addr_expr_1 (exp=0x7ffff73fe7b0,
target=0x0, tmode=..., modifier=EXPAND_INITIALIZER, as=0 '\000') at
/home/marxin/Programming/gcc/gcc/expr.c:8269
#5 0x00000000009e94e1 in expand_expr_addr_expr (exp=0x7ffff77ddec0,
target=0x0, tmode=E_DImode, modifier=EXPAND_INITIALIZER) at
/home/marxin/Programming/gcc/gcc/expr.c:8344
#6 0x00000000009f88ed in expand_expr_real_1 (exp=0x7ffff77ddec0, target=0x0,
tmode=E_VOIDmode, modifier=EXPAND_INITIALIZER, alt_rtl=0x0,
inner_reference_p=false) at /home/marxin/Programming/gcc/gcc/expr.c:11513
#7 0x00000000009e9a73 in expand_expr_real (exp=0x7ffff77ddec0, target=0x0,
tmode=E_VOIDmode, modifier=EXPAND_INITIALIZER, alt_rtl=0x0,
inner_reference_p=false) at /home/marxin/Programming/gcc/gcc/expr.c:8519
#8 0x00000000010b3dcc in expand_expr (modifier=EXPAND_INITIALIZER,
mode=E_VOIDmode, target=0x0, exp=0x7ffff77ddec0) at
/home/marxin/Programming/gcc/gcc/expr.h:282
#9 output_constant (exp=0x7ffff77ddec0, size=8, align=64, reverse=<optimized
out>, merge_strings=<optimized out>) at
/home/marxin/Programming/gcc/gcc/varasm.c:5240
#10 0x00000000010b2e1e in output_constant (merge_strings=false, reverse=false,
align=64, size=<optimized out>, exp=0x7ffff77ddec0) at
/home/marxin/Programming/gcc/gcc/varasm.c:5529
#11 output_constructor_regular_field (local=<synthetic pointer>) at
/home/marxin/Programming/gcc/gcc/varasm.c:5529
#12 output_constructor (exp=0x7ffff74022e8, size=8, align=64,
reverse=<optimized out>, outer=0x0) at
/home/marxin/Programming/gcc/gcc/varasm.c:5796
#13 0x00000000010b4804 in output_constant (merge_strings=false, reverse=false,
align=64, size=<optimized out>, exp=<optimized out>) at
/home/marxin/Programming/gcc/gcc/varasm.c:5148
#14 assemble_variable_contents (decl=0x7ffff7fbef30, name=<optimized out>,
dont_output_data=<optimized out>, merge_strings=<optimized out>) at
/home/marxin/Programming/gcc/gcc/varasm.c:2211
#15 0x00000000010ba145 in assemble_variable (decl=0x7ffff7fbef30,
top_level=<optimized out>, at_end=<optimized out>, dont_output_data=0) at
/home/marxin/Programming/gcc/gcc/varasm.c:2390
#16 0x00000000010bde4a in varpool_node::assemble_decl (this=0x7ffff73eb380) at
/home/marxin/Programming/gcc/gcc/varpool.c:595
#17 varpool_node::assemble_decl (this=0x7ffff73eb380) at
/home/marxin/Programming/gcc/gcc/varpool.c:563
#18 0x00000000010be971 in symbol_table::output_variables
(this=this@entry=0x7ffff75e5000) at
/home/marxin/Programming/gcc/gcc/varpool.c:761
#19 0x00000000008ede77 in symbol_table::compile (this=<optimized out>) at
/home/marxin/Programming/gcc/gcc/cgraphunit.c:2361
#20 symbol_table::compile (this=<optimized out>) at
/home/marxin/Programming/gcc/gcc/cgraphunit.c:2269
#21 0x0000000000836bc5 in lto_main () at
/home/marxin/Programming/gcc/gcc/lto/lto.c:653
#22 0x0000000000d7076e in compile_file () at
/home/marxin/Programming/gcc/gcc/toplev.c:457
#23 0x000000000080e537 in do_compile () at
/home/marxin/Programming/gcc/gcc/toplev.c:2201
#24 toplev::main (this=this@entry=0x7fffffffdcee, argc=<optimized out>,
argc@entry=18, argv=<optimized out>, argv@entry=0x7fffffffddf8) at
/home/marxin/Programming/gcc/gcc/toplev.c:2340
#25 0x0000000000811105 in main (argc=18, argv=0x7fffffffddf8) at
/home/marxin/Programming/gcc/gcc/main.c:39
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug lto/99849] ICE in expand_expr_real_1, at expr.c:11556 since r5-5407-g30d5d8c5189064c8
2021-03-31 15:21 [Bug lto/99849] New: ICE in expand_expr_real_1, at expr.c:11556 since r5-5407-g30d5d8c5189064c8 marxin at gcc dot gnu.org
2021-03-31 15:21 ` [Bug lto/99849] " marxin at gcc dot gnu.org
2021-03-31 15:28 ` marxin at gcc dot gnu.org
@ 2021-04-01 6:56 ` rguenth at gcc dot gnu.org
2021-04-09 15:05 ` [Bug lto/99849] [8/9/10/11 Regression] " jakub at gcc dot gnu.org
` (8 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-04-01 6:56 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99849
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
We're outputting the initializer of mlx5_ib_object_MLX5_IB_OBJECT_VAR which
looks like
{.cleanup=&<<< Unknown tree: compound_literal_expr
extern const struct uverbs_obj_idr_type __compound_literal.0 =
{.type={.type_class=&uverbs_idr_class}}; >>>.type}
The DECL_RTL of the COMPOUND_LITERAL_EXPR_DECL decl is
(mem/u/c:DI (symbol_ref:DI ("__compound_literal.0.lto_priv.0") [flags 0x42]
<var_decl 0x7ffff637a000 __compound_literal.0>) [7 __compound_literal.0+0 S8
A64])
The issue is that while we handle ADDR_EXPR of COMPOUND_LITERAL_EXPR specially
in a lot of places here we have it wrapped in a COMPONENT_REF.
It somehow feels that some lowering is missing - it would be interesting to
trace the non-LTO compile of this initializer.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug lto/99849] [8/9/10/11 Regression] ICE in expand_expr_real_1, at expr.c:11556 since r5-5407-g30d5d8c5189064c8
2021-03-31 15:21 [Bug lto/99849] New: ICE in expand_expr_real_1, at expr.c:11556 since r5-5407-g30d5d8c5189064c8 marxin at gcc dot gnu.org
` (2 preceding siblings ...)
2021-04-01 6:56 ` rguenth at gcc dot gnu.org
@ 2021-04-09 15:05 ` jakub at gcc dot gnu.org
2021-04-09 15:22 ` jakub at gcc dot gnu.org
` (7 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: jakub at gcc dot gnu.org @ 2021-04-09 15:05 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99849
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|--- |8.5
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug lto/99849] [8/9/10/11 Regression] ICE in expand_expr_real_1, at expr.c:11556 since r5-5407-g30d5d8c5189064c8
2021-03-31 15:21 [Bug lto/99849] New: ICE in expand_expr_real_1, at expr.c:11556 since r5-5407-g30d5d8c5189064c8 marxin at gcc dot gnu.org
` (3 preceding siblings ...)
2021-04-09 15:05 ` [Bug lto/99849] [8/9/10/11 Regression] " jakub at gcc dot gnu.org
@ 2021-04-09 15:22 ` jakub at gcc dot gnu.org
2021-04-10 10:49 ` cvs-commit at gcc dot gnu.org
` (6 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: jakub at gcc dot gnu.org @ 2021-04-09 15:22 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99849
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
Assignee|unassigned at gcc dot gnu.org |jakub at gcc dot gnu.org
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 50540
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=50540&action=edit
gcc11-pr99849.patch
Untested fix.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug lto/99849] [8/9/10/11 Regression] ICE in expand_expr_real_1, at expr.c:11556 since r5-5407-g30d5d8c5189064c8
2021-03-31 15:21 [Bug lto/99849] New: ICE in expand_expr_real_1, at expr.c:11556 since r5-5407-g30d5d8c5189064c8 marxin at gcc dot gnu.org
` (4 preceding siblings ...)
2021-04-09 15:22 ` jakub at gcc dot gnu.org
@ 2021-04-10 10:49 ` cvs-commit at gcc dot gnu.org
2021-04-10 10:51 ` [Bug lto/99849] [8/9/10 " jakub at gcc dot gnu.org
` (5 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-04-10 10:49 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99849
--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jakub Jelinek <jakub@gcc.gnu.org>:
https://gcc.gnu.org/g:22aede7a1228617661105048a91fddd8797e141b
commit r11-8108-g22aede7a1228617661105048a91fddd8797e141b
Author: Jakub Jelinek <jakub@redhat.com>
Date: Sat Apr 10 12:49:01 2021 +0200
expand: Fix up LTO ICE with COMPOUND_LITERAL_EXPR [PR99849]
The gimplifier optimizes away COMPOUND_LITERAL_EXPRs, but they can remain
in the form of ADDR_EXPR of COMPOUND_LITERAL_EXPRs in static initializers.
By the TREE_STATIC check I meant to check that the underlying decl of
the compound literal is a global rather than automatic variable which
obviously can't be referenced in static initializers, but unfortunately
with LTO it might end up in another partition and thus be DECL_EXTERNAL
instead.
2021-04-10 Jakub Jelinek <jakub@redhat.com>
PR lto/99849
* expr.c (expand_expr_addr_expr_1): Test is_global_var rather than
just TREE_STATIC on COMPOUND_LITERAL_EXPR_DECLs.
* gcc.dg/lto/pr99849_0.c: New test.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug lto/99849] [8/9/10 Regression] ICE in expand_expr_real_1, at expr.c:11556 since r5-5407-g30d5d8c5189064c8
2021-03-31 15:21 [Bug lto/99849] New: ICE in expand_expr_real_1, at expr.c:11556 since r5-5407-g30d5d8c5189064c8 marxin at gcc dot gnu.org
` (5 preceding siblings ...)
2021-04-10 10:49 ` cvs-commit at gcc dot gnu.org
@ 2021-04-10 10:51 ` jakub at gcc dot gnu.org
2021-04-20 9:45 ` cvs-commit at gcc dot gnu.org
` (4 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: jakub at gcc dot gnu.org @ 2021-04-10 10:51 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99849
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|[8/9/10/11 Regression] ICE |[8/9/10 Regression] ICE in
|in expand_expr_real_1, at |expand_expr_real_1, at
|expr.c:11556 since |expr.c:11556 since
|r5-5407-g30d5d8c5189064c8 |r5-5407-g30d5d8c5189064c8
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Fixed on the trunk so far.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug lto/99849] [8/9/10 Regression] ICE in expand_expr_real_1, at expr.c:11556 since r5-5407-g30d5d8c5189064c8
2021-03-31 15:21 [Bug lto/99849] New: ICE in expand_expr_real_1, at expr.c:11556 since r5-5407-g30d5d8c5189064c8 marxin at gcc dot gnu.org
` (6 preceding siblings ...)
2021-04-10 10:51 ` [Bug lto/99849] [8/9/10 " jakub at gcc dot gnu.org
@ 2021-04-20 9:45 ` cvs-commit at gcc dot gnu.org
2021-04-20 9:51 ` [Bug lto/99849] [8/9 " jakub at gcc dot gnu.org
` (3 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-04-20 9:45 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99849
--- Comment #6 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-10 branch has been updated by Jakub Jelinek
<jakub@gcc.gnu.org>:
https://gcc.gnu.org/g:2e57bc7eedb084869d17fe07b538d907b8fee819
commit r10-9724-g2e57bc7eedb084869d17fe07b538d907b8fee819
Author: Jakub Jelinek <jakub@redhat.com>
Date: Sat Apr 10 12:49:01 2021 +0200
expand: Fix up LTO ICE with COMPOUND_LITERAL_EXPR [PR99849]
The gimplifier optimizes away COMPOUND_LITERAL_EXPRs, but they can remain
in the form of ADDR_EXPR of COMPOUND_LITERAL_EXPRs in static initializers.
By the TREE_STATIC check I meant to check that the underlying decl of
the compound literal is a global rather than automatic variable which
obviously can't be referenced in static initializers, but unfortunately
with LTO it might end up in another partition and thus be DECL_EXTERNAL
instead.
2021-04-10 Jakub Jelinek <jakub@redhat.com>
PR lto/99849
* expr.c (expand_expr_addr_expr_1): Test is_global_var rather than
just TREE_STATIC on COMPOUND_LITERAL_EXPR_DECLs.
* gcc.dg/lto/pr99849_0.c: New test.
(cherry picked from commit 22aede7a1228617661105048a91fddd8797e141b)
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug lto/99849] [8/9 Regression] ICE in expand_expr_real_1, at expr.c:11556 since r5-5407-g30d5d8c5189064c8
2021-03-31 15:21 [Bug lto/99849] New: ICE in expand_expr_real_1, at expr.c:11556 since r5-5407-g30d5d8c5189064c8 marxin at gcc dot gnu.org
` (7 preceding siblings ...)
2021-04-20 9:45 ` cvs-commit at gcc dot gnu.org
@ 2021-04-20 9:51 ` jakub at gcc dot gnu.org
2021-04-20 23:34 ` cvs-commit at gcc dot gnu.org
` (2 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: jakub at gcc dot gnu.org @ 2021-04-20 9:51 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99849
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|[8/9/10 Regression] ICE in |[8/9 Regression] ICE in
|expand_expr_real_1, at |expand_expr_real_1, at
|expr.c:11556 since |expr.c:11556 since
|r5-5407-g30d5d8c5189064c8 |r5-5407-g30d5d8c5189064c8
--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Fixed for 10.4 too.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug lto/99849] [8/9 Regression] ICE in expand_expr_real_1, at expr.c:11556 since r5-5407-g30d5d8c5189064c8
2021-03-31 15:21 [Bug lto/99849] New: ICE in expand_expr_real_1, at expr.c:11556 since r5-5407-g30d5d8c5189064c8 marxin at gcc dot gnu.org
` (8 preceding siblings ...)
2021-04-20 9:51 ` [Bug lto/99849] [8/9 " jakub at gcc dot gnu.org
@ 2021-04-20 23:34 ` cvs-commit at gcc dot gnu.org
2021-04-22 16:52 ` cvs-commit at gcc dot gnu.org
2021-04-22 17:11 ` jakub at gcc dot gnu.org
11 siblings, 0 replies; 13+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-04-20 23:34 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99849
--- Comment #8 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-9 branch has been updated by Jakub Jelinek
<jakub@gcc.gnu.org>:
https://gcc.gnu.org/g:49a7e7d0fc5fcc28ed13b6d67faf99a5dfe03f65
commit r9-9443-g49a7e7d0fc5fcc28ed13b6d67faf99a5dfe03f65
Author: Jakub Jelinek <jakub@redhat.com>
Date: Sat Apr 10 12:49:01 2021 +0200
expand: Fix up LTO ICE with COMPOUND_LITERAL_EXPR [PR99849]
The gimplifier optimizes away COMPOUND_LITERAL_EXPRs, but they can remain
in the form of ADDR_EXPR of COMPOUND_LITERAL_EXPRs in static initializers.
By the TREE_STATIC check I meant to check that the underlying decl of
the compound literal is a global rather than automatic variable which
obviously can't be referenced in static initializers, but unfortunately
with LTO it might end up in another partition and thus be DECL_EXTERNAL
instead.
2021-04-10 Jakub Jelinek <jakub@redhat.com>
PR lto/99849
* expr.c (expand_expr_addr_expr_1): Test is_global_var rather than
just TREE_STATIC on COMPOUND_LITERAL_EXPR_DECLs.
* gcc.dg/lto/pr99849_0.c: New test.
(cherry picked from commit 2e57bc7eedb084869d17fe07b538d907b8fee819)
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug lto/99849] [8/9 Regression] ICE in expand_expr_real_1, at expr.c:11556 since r5-5407-g30d5d8c5189064c8
2021-03-31 15:21 [Bug lto/99849] New: ICE in expand_expr_real_1, at expr.c:11556 since r5-5407-g30d5d8c5189064c8 marxin at gcc dot gnu.org
` (9 preceding siblings ...)
2021-04-20 23:34 ` cvs-commit at gcc dot gnu.org
@ 2021-04-22 16:52 ` cvs-commit at gcc dot gnu.org
2021-04-22 17:11 ` jakub at gcc dot gnu.org
11 siblings, 0 replies; 13+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-04-22 16:52 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99849
--- Comment #9 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-8 branch has been updated by Jakub Jelinek
<jakub@gcc.gnu.org>:
https://gcc.gnu.org/g:467011a53a24c81628cce46d326574a9f32c374f
commit r8-10906-g467011a53a24c81628cce46d326574a9f32c374f
Author: Jakub Jelinek <jakub@redhat.com>
Date: Sat Apr 10 12:49:01 2021 +0200
expand: Fix up LTO ICE with COMPOUND_LITERAL_EXPR [PR99849]
The gimplifier optimizes away COMPOUND_LITERAL_EXPRs, but they can remain
in the form of ADDR_EXPR of COMPOUND_LITERAL_EXPRs in static initializers.
By the TREE_STATIC check I meant to check that the underlying decl of
the compound literal is a global rather than automatic variable which
obviously can't be referenced in static initializers, but unfortunately
with LTO it might end up in another partition and thus be DECL_EXTERNAL
instead.
2021-04-10 Jakub Jelinek <jakub@redhat.com>
PR lto/99849
* expr.c (expand_expr_addr_expr_1): Test is_global_var rather than
just TREE_STATIC on COMPOUND_LITERAL_EXPR_DECLs.
* gcc.dg/lto/pr99849_0.c: New test.
(cherry picked from commit 2e57bc7eedb084869d17fe07b538d907b8fee819)
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug lto/99849] [8/9 Regression] ICE in expand_expr_real_1, at expr.c:11556 since r5-5407-g30d5d8c5189064c8
2021-03-31 15:21 [Bug lto/99849] New: ICE in expand_expr_real_1, at expr.c:11556 since r5-5407-g30d5d8c5189064c8 marxin at gcc dot gnu.org
` (10 preceding siblings ...)
2021-04-22 16:52 ` cvs-commit at gcc dot gnu.org
@ 2021-04-22 17:11 ` jakub at gcc dot gnu.org
11 siblings, 0 replies; 13+ messages in thread
From: jakub at gcc dot gnu.org @ 2021-04-22 17:11 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99849
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |FIXED
Status|ASSIGNED |RESOLVED
--- Comment #10 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Fixed.
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2021-04-22 17:11 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-31 15:21 [Bug lto/99849] New: ICE in expand_expr_real_1, at expr.c:11556 since r5-5407-g30d5d8c5189064c8 marxin at gcc dot gnu.org
2021-03-31 15:21 ` [Bug lto/99849] " marxin at gcc dot gnu.org
2021-03-31 15:28 ` marxin at gcc dot gnu.org
2021-04-01 6:56 ` rguenth at gcc dot gnu.org
2021-04-09 15:05 ` [Bug lto/99849] [8/9/10/11 Regression] " jakub at gcc dot gnu.org
2021-04-09 15:22 ` jakub at gcc dot gnu.org
2021-04-10 10:49 ` cvs-commit at gcc dot gnu.org
2021-04-10 10:51 ` [Bug lto/99849] [8/9/10 " jakub at gcc dot gnu.org
2021-04-20 9:45 ` cvs-commit at gcc dot gnu.org
2021-04-20 9:51 ` [Bug lto/99849] [8/9 " jakub at gcc dot gnu.org
2021-04-20 23:34 ` cvs-commit at gcc dot gnu.org
2021-04-22 16:52 ` cvs-commit at gcc dot gnu.org
2021-04-22 17:11 ` jakub at gcc dot gnu.org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).