#ifdef GCC_BUG
int shared_data __attribute__ ((visibility ("protected"))) = 100;
int shared_func () __attribute__ ((visibility ("protected")));
#else
int shared_data = 100;
int shared_func ();
asm (".protected shared_data");
asm (".protected shared_func");
#endif

void
shared_data_change (int x)
{
  shared_data = x;
}

int *
shared_data_p ()
{
  return &shared_data;
}

void *
shared_func_p ()
{
  return shared_func;
}

int
shared_func ()
{
  return shared_data;
}
