This patch makes sure that compiler won't optimize out loading function
into a stack variable.
* ld-ifunc/ifunc-main.c (get_bar): New function.
(main): Use it.
+2014-11-20 H.J. Lu <hongjiu.lu@intel.com>
+
+ * ld-ifunc/ifunc-main.c (get_bar): New function.
+ (main): Use it.
+
2014-11-20 H.J. Lu <hongjiu.lu@intel.com>
* ld-ifunc/ifunc.exp: Run ifunc-main.
extern int foo(void);
extern int bar(void);
-int (*foo_ptr)(void) = foo;
+typedef int (*func_p) (void);
+
+func_p foo_ptr = foo;
+
+func_p
+__attribute__((noinline))
+get_bar (void)
+{
+ return bar;
+}
int
main (void)
{
- int (*bar_ptr)(void) = bar;
+ func_p bar_ptr = get_bar ();
if (bar_ptr != bar)
__builtin_abort ();
if (bar_ptr() != -1)