This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug debug/70628] [5/6 regression] ICE in get_reg_rtx, at emit-rtl.c:1025


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70628

--- Comment #6 from ktkachov at gcc dot gnu.org ---
The ICE in cselib occurs when it calls gen_reg_rtx after reload, which is not
allowed.

This is through a call to simplify_unary_operation_1 on
(zero_extend:DI (high:SI (symbol_ref/f:SI ("*.LC3") [flags 0x82] <var_decl
0x7ffff74eee10 *.LC3>)))

and more specifically a call to convert_memory_address here:

1594 #if defined(POINTERS_EXTEND_UNSIGNED)
1595       /* As we do not know which address space the pointer is referring
to,
1596          we can do this only if the target does not support different
pointer
1597          or address modes depending on the address space.  */
1598       if (target_default_pointer_address_modes_p ()
1599           && POINTERS_EXTEND_UNSIGNED > 0
1600           && mode == Pmode && GET_MODE (op) == ptr_mode
1601           && (CONSTANT_P (op)
1602               || (GET_CODE (op) == SUBREG
1603                   && REG_P (SUBREG_REG (op))
1604                   && REG_POINTER (SUBREG_REG (op))
1605                   && GET_MODE (SUBREG_REG (op)) == Pmode))
1606           && !targetm.have_ptr_extend ())
1607         return convert_memory_address (Pmode, op);
1608 #endif

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]