X-Git-Url: https://oss.titaniummirror.com/gitweb?p=msp430-binutils.git;a=blobdiff_plain;f=ld%2Ftestsuite%2Fld-ifunc%2Flib.c;fp=ld%2Ftestsuite%2Fld-ifunc%2Flib.c;h=393dabf29698b4b3a9b79ec5ada89538c9d575ea;hp=0000000000000000000000000000000000000000;hb=88750007d7869f178f0ba528f41efd3b74c424cf;hpb=6df9443a374e2b81278c61b8afc0a1eef7db280b diff --git a/ld/testsuite/ld-ifunc/lib.c b/ld/testsuite/ld-ifunc/lib.c new file mode 100644 index 0000000..393dabf --- /dev/null +++ b/ld/testsuite/ld-ifunc/lib.c @@ -0,0 +1,39 @@ +int +library_func1 (void) +{ + return 2; +} + +int global = 1; + +#ifdef WITH_IFUNC + +static int minus_one (void) { return -1; } +static int zero (void) { return 0; } + +void * library_func2_ifunc (void) __asm__ ("library_func2"); +void * library_func2_ifunc (void) { return global ? minus_one : zero ; } +__asm__(".type library_func2, %gnu_indirect_function"); + +extern int library_func2 (int); +extern __typeof (library_func2) library_func2 __asm__ ("__GI_library_func2"); + +__asm__(".global __GI_library_func2"); +__asm__(".hidden __GI_library_func2"); +__asm__(".set __GI_library_func2, library_func2"); + +int +library_func (int x) +{ + return library_func2 (x); +} + +#else /* WITHOUT_IFUNC */ + +int +library_func2 (void) +{ + return 3; +} + +#endif