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.

Reply via email to