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.

Reply via email to