https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81100
Bug ID: 81100 Summary: ICE from x86 __asm__() statck manipulation Product: gcc Version: 6.3.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: lindsay at arista dot com Target Milestone: --- Created attachment 41553 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=41553&action=edit Preprocessed source left when ICE occurred Using gcc-6.3.1-1.fc25.x86_64, the command: /usr/bin/gcc -g -pipe -fPIC -march=i686 -m32 -c test2.c resulted in: ------------ test2.c: In function ‘main’: test2.c:31:1: internal compiler error: in print_reg, at config/i386/i386.c:16601 } ^ Please submit a full bug report, with preprocessed source if appropriate. See <http://bugzilla.redhat.com/bugzilla> for instructions. {standard input}: Assembler messages: {standard input}: Warning: end of file not at end of a line; newline inserted {standard input}:45: Error: unbalanced parenthesis in operand 2. {standard input}: Error: open CFI at the end of file; missing .cfi_endproc directive Preprocessed source stored into /tmp/cc48P0WJ.out file, please attach this to your bugreport. ---------- I attach the .out file. As you can see, this is already a cutdown, which mostly consists of an __asm__() that plays games with the x86 stack pointer. The full original was working code, but we hit the ICE when we tried to upgrade to a newer GCC. This might be related to bug 80367. A quick look didn't find any other candidates.