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

--- Comment #5 from Jose E. Marchesi <jemarch at gcc dot gnu.org> ---
Using Andrew's reproducer and building with -O2:

        .file   "foo.c"
        .text
        .align  3
        .global g
        .type   g, @function
g:
        mov     %r1,%fp
        add     %r1,-249
        and     %r1,-64
        stdw    [%r1+0],0
        stdw    [%r1+8],0
        stdw    [%r1+16],0
        stdw    [%r1+24],0
        stdw    [%r1+32],0
        stdw    [%r1+40],0
        stdw    [%r1+48],0
        stdw    [%r1+56],0
        stdw    [%r1+64],0
        stdw    [%r1+72],0
        stdw    [%r1+80],0
        stdw    [%r1+88],0
        stdw    [%r1+96],0
        stdw    [%r1+104],0
        stdw    [%r1+112],0
        stdw    [%r1+120],0
        stdw    [%r1+128],0
        stdw    [%r1+136],0
        stdw    [%r1+144],0
        stdw    [%r1+152],0
        stdw    [%r1+160],0
        stdw    [%r1+168],0
        stdw    [%r1+176],0
        stdw    [%r1+184],0
        stdw    [%r1+192],0
        stdw    [%r1+200],0
        stdw    [%r1+208],0
        stdw    [%r1+216],0
        stdw    [%r1+224],0
        stdw    [%r1+232],0
        stdw    [%r1+240],0
        stdw    [%r1+248],0
        call    f
        exit
        .size   g, .-g
        .ident  "GCC: (GNU) 16.0.0 20260108 (experimental)"

Seems like the verifier is following the frame pointer into %r1, then
complaining because that pointer is being and'ed.

Reply via email to