/* APPLE LOCAL file CW asm blocks */ /* { dg-do assemble { target i?86*-*-darwin* } } */ /* { dg-options { -fasm-blocks -O } } */ /* Radar 4527214 */ inline int foo(int x, int y) { int result; __asm { MOV EAX, x IMUL y MOV result, EDX } return result; } inline int bar(int mhigh) { int temp = foo(mhigh, 3); return temp; } typedef struct S { long a; int c; } S; void bee(S *fill) { int a, top = 2; int b = 1; int i = 0; int c = fill->c; int bottom = 30; if (b < top) i = (fill->a - b) / c; while (i < bottom - top) { bar(a); bar(a); i++; } }