1/* { dg-do compile { target { *-*-linux* && ia32 } } } */ 2/* { dg-options "-O2 -fpie" } */ 3/* { dg-final { scan-assembler "addl\[ \\t\]+\[$\]_GLOBAL_OFFSET_TABLE_, %ebx" } } */ 4/* { dg-final { scan-assembler "movl\[ \\t\]+c@GOTOFF\[(\]%ebx\[)\]" } } */ 5/* { dg-final { scan-assembler-not "movl\[ \\t\]+\[0-9]+\[(\]%esp\[)\], %ebx" } } */ 6long c = 1; 7 8int bar(); 9 10int foo (unsigned int iters) 11{ 12 unsigned int i; 13 14 int res = 0; 15 static long t1; 16 17 for (i = 0; i < iters; i++) 18 { 19 res = bar(); 20 t1 = c + res; 21 } 22 23 return t1 + res; 24} 25