about summary refs log tree commit diff
path: root/sysdeps/generic/ifunc-sel.h
diff options
context:
space:
mode:
authorAndreas Jaeger <aj@suse.de>2012-03-27 21:35:36 +0200
committerAndreas Jaeger <aj@suse.de>2012-03-27 21:35:36 +0200
commit1e3cdfda7486316198ec0587a8aa96f50e88b3bc (patch)
tree4badfb248f3392b95be5b86d747c98331409dca7 /sysdeps/generic/ifunc-sel.h
parentc876e002a2484d53c797140c005f3630e6abec72 (diff)
parentd6373f9ce3972a1891e4d09479a98e0dbc7e3d73 (diff)
downloadglibc-1e3cdfda7486316198ec0587a8aa96f50e88b3bc.tar.gz
glibc-1e3cdfda7486316198ec0587a8aa96f50e88b3bc.tar.xz
glibc-1e3cdfda7486316198ec0587a8aa96f50e88b3bc.zip
Merge branch 'elf-move'
Conflicts:
	debug/backtracesymsfd.c
	sysdeps/generic/elf/backtracesymsfd.c
	sysdeps/i386/configure.in
Diffstat (limited to 'sysdeps/generic/ifunc-sel.h')
-rw-r--r--sysdeps/generic/ifunc-sel.h26
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