Hi! The following code snippet leads to compile error volatile long boo = 0; void foo (void) { boo++; } []$ /opt/m32c-elf/bin/m32c-elf-gcc -O1 -c test.c -o test.o unconvertible operand - `Sms'(subreg:HI (mem/v/c/i:SI (symbol_ref:HI ("boo") [flags 0x2] <var_decl 0x7faa9a811000 boo>) [0 boo+0 S4 A8]) 0) unconvertible operand - `Sms'(subreg:HI (mem/v/c/i:SI (symbol_ref:HI ("boo") [flags 0x2] <var_decl 0x7faa9a811000 boo>) [0 boo+0 S4 A8]) 2) /tmp/ccx0sAA0.s: Assembler messages: /tmp/ccx0sAA0.s:6: Error: Invalid literal `add.w #0x1,[-.Sms]' /tmp/ccx0sAA0.s:7: Error: Invalid literal `adcf.w [-.Sms]' Anatoly.
Created attachment 21910 [details] patch
Author: dj Date: Tue Sep 28 22:01:54 2010 New Revision: 164705 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=164705 Log: PR target/45800 * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of volatile MEMs. Modified: trunk/gcc/ChangeLog trunk/gcc/config/m32c/m32c.c