https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91269
--- Comment #3 from Sergei Trofimovich <slyfox at inbox dot ru> --- $ sparc64-unknown-linux-gnu-gcc -S -O2 -fno-stack-protector -fcall-used-g6 -mcpu=niagara4 -c bug.c -o bug.S bug.c: In function 'c': bug.c:13:8: warning: assignment to 'char *' from 'int' makes pointer from integer without a cast [-Wint-conversion] 13 | cp = b[k]; | ^ $ sparc64-unknown-linux-gnu-gcc -c -O2 -fno-stack-protector -fcall-used-g6 -mcpu=niagara4 -c bug.S -o bug.o bug.c: Assembler messages: bug.c:145: Error: Illegal operands $ nl -bt bug.S | grep -C3 145 142 cwbe %g0, %g0, .L5 143 .L40: 144 mov %i0, %o0 145 std %f9, [%fp+1999] 146 stx %g4, [%fp+2007] 147 stx %o2, [%fp+2015] 148 call u, 0 Commenting out line '145 std %f9, [%fp+1999]' does not make error disappear. Line numbers are probably skewed.