/* Test 3 STT_GNU_IFUNC symbols.  */

#include "ifunc-sel.h"

int global __attribute__ ((visibility ("protected"))) = -1;

static int
one (void)
{
  return 1;
}

static int
minus_one (void)
{
  return -1;
}

static int
zero (void)
{
  return 0;
}

void * foo1_ifunc (void) __asm__ ("foo1");
__asm__(".type foo1, %gnu_indirect_function");

void *
foo1_ifunc (void)
{
  return ifunc_sel (one, minus_one, zero);
}

void * foo2_ifunc (void) __asm__ ("foo2");
__asm__(".type foo2, %gnu_indirect_function");

void *
foo2_ifunc (void)
{
  return ifunc_sel (minus_one, one, zero);
}

void * foo3_ifunc (void) __asm__ ("foo3");
__asm__(".type foo3, %gnu_indirect_function");

void *
foo3_ifunc (void)
{
  return ifunc_sel (one, zero, minus_one);
}
