/* { dg-do compile { target *-*-linux* } } */
/* { dg-options "-O2 -fpic" } */
/* { dg-require-effective-target fpic } */

__attribute__((visibility("protected")))
int n_common;

__attribute__((weak, visibility("protected")))
int n_weak_common;

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

__attribute__((weak, visibility("protected")))
int n_weak_init = -1;

int
f1 ()
{
  /* { dg-final { scan-assembler ":got(page_lo15)?:n_common" } } */
  return n_common;
}

int
f2 ()
{
  /* { dg-final { scan-assembler ":got(page_lo15)?:n_weak_common" } } */
  return n_weak_common;
}

int
f3 ()
{
  /* { dg-final { scan-assembler ":got(page_lo15)?:n_init" } } */
  return n_init;
}

int
f4 ()
{
  /* { dg-final { scan-assembler ":got(page_lo15)?:n_weak_init" } } */
  return n_weak_init;
}
