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).