| /* { dg-require-effective-target indirect_calls } */ | |
| int owner(); | |
| int clear(); | |
| static void fixup() { | |
| clear(); | |
| } | |
| inline __attribute__ ((always_inline)) | |
| void slowtrylock(void) { | |
| if (owner()) | |
| fixup(); | |
| } | |
| void fasttrylock(void (*slowfn)()) { | |
| slowfn(); | |
| } | |
| void trylock(void) { | |
| fasttrylock(slowtrylock); | |
| } |