diff options
Diffstat (limited to 'sysdeps/generic/ifunc-sel.h')
-rw-r--r-- | sysdeps/generic/ifunc-sel.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/sysdeps/generic/ifunc-sel.h b/sysdeps/generic/ifunc-sel.h new file mode 100644 index 0000000000..6a27b69c5b --- /dev/null +++ b/sysdeps/generic/ifunc-sel.h @@ -0,0 +1,26 @@ +/* Used by the elf ifunc tests. */ +#ifndef ELF_IFUNC_SEL_H +#define ELF_IFUNC_SEL_H 1 + +extern int global; + +static inline void * +ifunc_sel (int (*f1) (void), int (*f2) (void), int (*f3) (void)) +{ + switch (global) + { + case 1: + return f1; + case -1: + return f2; + default: + return f3; + } +} + +static inline void * +ifunc_one (int (*f1) (void)) +{ + return f1; +} +#endif |