1 /* { dg-do run } */ 2 /* { dg-require-ifunc "" } */ 3 /* { dg-options "-std=gnu99" } */ 4 5 __attribute__((noipa)) int baz(int (* fn)(void))6baz (int (*fn) (void)) 7 { 8 asm volatile ("" : "+g" (fn) : : "memory"); 9 return fn (); 10 } 11 12 __attribute__((target_clones("arch=sandybridge", "default"))) static int bar(void)13bar (void) 14 { 15 return 1; 16 } 17 18 __attribute__((target_clones("arch=sandybridge", "default"))) int foo(void)19foo (void) 20 { 21 baz (bar) - 1; 22 } 23 24 int main()25main () 26 { 27 foo (); 28 } 29