/* { dg-do run } */ /* { dg-require-ifunc "" } */ /* { dg-options "-std=gnu99" } */ __attribute__((noipa)) int baz (int (*fn) (void)) { asm volatile ("" : "+g" (fn) : : "memory"); return fn (); } __attribute__((target_clones("arch=sandybridge", "default"))) static int bar (void) { return 1; } __attribute__((target_clones("arch=sandybridge", "default"))) int foo (void) { baz (bar) - 1; } int main () { foo (); }