http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56115
Bug #: 56115 Summary: Internal compiler error / unable to generate a relocatable output with object file(which is with lto info). Classification: Unclassified Product: gcc Version: 4.7.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassig...@gcc.gnu.org ReportedBy: tanji...@huawei.com I was testing this test case ./gcc.c-torture/execute/vshuf-v8qi.c individually. The host_triplet is i586-suse-linux,build_triplet is i586-suse-linux,and target_triplet arm-eabi. Then I got a compiler crash. I cooked it down to the example below: >armeb-linux-gnueabi-gcc crash.c -c -flto -O2 -o crash.out >arm-eabi-gcc -r -nostdlib -flto crash.out -o a.out In file included from crash.c:8:0, from :0: crash.c: In function 'main': crash.c:12:7: internal compiler error: in expand_expr_real_2, at expr.c:8808 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. lto-wrapper: ./new/install/bin/armeb-linux-gnueabi-gcc returned 1 exit status /home/tjf/SVN/new/install/bin/../lib/gcc/armeb-linux-gnueabi/4.7.1/../../../../armeb-linux-gnueabi/bin/ld: lto-wrapper failed collect2: error: ld returned 1 exit status -----------crash.c------------------ typedef char V __attribute__((vector_size(8))); struct S { V in; V mask; V out; }; struct S sss={{ 0, 1, 2, 3, 4, 5, 6, 7 },{ 8, 9, 10, 11, 12, 13, 14, 15 },{ 0, 1, 2, 3, 4, 5, 6, 7 }}; extern void abort(void); int main() { V r = __builtin_shuffle(sss.in,sss.mask); __builtin_memcmp(&r,&sss.out, sizeof(V)); abort(); return 0; }