aboutsummaryrefslogtreecommitdiff
path: root/REORG.TODO/sysdeps/generic/ifunc-sel.h
diff options
context:
space:
mode:
Diffstat (limited to 'REORG.TODO/sysdeps/generic/ifunc-sel.h')
-rw-r--r--REORG.TODO/sysdeps/generic/ifunc-sel.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/REORG.TODO/sysdeps/generic/ifunc-sel.h b/REORG.TODO/sysdeps/generic/ifunc-sel.h
new file mode 100644
index 0000000000..1fff4059cc
--- /dev/null
+++ b/REORG.TODO/sysdeps/generic/ifunc-sel.h
@@ -0,0 +1,28 @@
+/* Used by the elf ifunc tests. */
+#ifndef ELF_IFUNC_SEL_H
+#define ELF_IFUNC_SEL_H 1
+
+extern int global;
+
+static inline void *
+inhibit_stack_protector
+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 *
+inhibit_stack_protector
+ifunc_one (int (*f1) (void))
+{
+ return f1;
+}
+#endif