https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117380
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Keywords| |ice-checking
Last reconfirmed| |2024-10-31
Ever confirmed|0 |1
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
The problem is we get:
<plus_expr 0x7ffff79b1af0
type <integer_type 0x7ffff7822738 long int DI
size <integer_cst 0x7ffff7802f48 constant 64>
unit-size <integer_cst 0x7ffff7802f60 constant 8>
align:64 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x7ffff7822738 precision:64 min <integer_cst 0x7ffff78241e0
-9223372036854775808> max <integer_cst 0x7ffff78241f8 9223372036854775807>
pointer_to_this <pointer_type 0x7ffff7832738>>
arg:0 <nop_expr 0x7ffff79aa8c0 type <integer_type 0x7ffff7822738 long int>
arg:0 <var_decl 0x7ffff7810cf0 b type <error_mark 0x7ffff7802f30>
used public static read SI t6.c:2:8
size <integer_cst 0x7ffff7824198 constant 32>
unit-size <integer_cst 0x7ffff78241b0 constant 4>
align:32 warn_if_not_align:0 context <translation_unit_decl
0x7ffff780fca8 t6.c> chain <function_decl 0x7ffff79b5200 c>>>
arg:1 <integer_cst 0x7ffff79a82d0 type <integer_type 0x7ffff7822738 long
int> constant 503359447364223024>
t6.c:5:12 start: t6.c:5:10 finish: t6.c:5:31>
But note the error_mark as the type for b.
The problem is we don't prop error_mark backwards which would have "fixed" the
issue.
I have an idea on how to fix this and others like this. But since this is error
recovery, it is low on my plate to fix it.