https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68044
Bug ID: 68044 Summary: ceil() with -O3 and -masm=intel fails to compile Product: gcc Version: 5.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: janisozaur+gcc at gmail dot com Target Milestone: --- Created attachment 36559 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=36559&action=edit test case file on Arch Linux with gcc 5.2.0, glibc 2.22-3 Test case to be compiled with: gcc test.c -o test -m32 -O3 -masm=intel the ceil() function is taken from /usr/include/bits/mathinline.h, verbatim provided here: __inline_mathcodeNP (ceil, __x, \ register long double __value; \ register int __ignore; \ unsigned short int __cw; \ unsigned short int __cwtmp; \ __asm __volatile ("fnstcw %3\n\t" \ "movzwl %3, %1\n\t" \ "andl $0xf3ff, %1\n\t" \ "orl $0x0800, %1\n\t" /* rounding up */ \ "movw %w1, %2\n\t" \ "fldcw %2\n\t" \ "frndint\n\t" \ "fldcw %3" \ : "=t" (__value), "=&q" (__ignore), "=m" (__cwtmp), \ "=m" (__cw) \ : "0" (__x)); \ return __value) This works fine without -masm=intel