While trying to make GCC remove some sign extensions in some code I got an RTL sharing violation when enabling Sign-Extension Elimination. I am using gcc-4.3-20071221 on an AMD64 FreeBSD system (no cross compilation).
$ gcc -c -Os -fsee sharing.c sharing.c: In function 'ReducedTestCase': sharing.c:52: error: invalid rtl sharing found in the insn (insn 87 86 80 4 sharing.c:38 (set (reg/v:QI 65 [ nibble ]) (subreg:QI (reg:DI 81 [ nibble ]) 0)) -1 (nil)) sharing.c:52: error: shared rtx (subreg:QI (reg:DI 81 [ nibble ]) 0) sharing.c:52: internal compiler error: internal consistency failure Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. $ gcc -v Using built-in specs. Target: x86_64-unknown-freebsd5.2.1 Configured with: ./configure --prefix=/strg/scratch/gcc/run --enable-threads --enable-languages=c,c++ Thread model: posix gcc version 4.3.0 20071221 (experimental) (GCC) -- Summary: Sharing violation with SEE Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: myg at gladesoft dot com GCC host triplet: x86_64-unknown-freebsd5.2.1 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34613