/* This testcase ICEd on IA-32 because the backend was inconsistent whether
   to allow addends for @dtpoff relocs or not.  */
/* { dg-do compile } */
/* { dg-options "-O2 -fpic" } */

struct S {
  int s0, s1, s2, s3;
};
static __thread struct S x;
extern void abort (void);
extern void exit (int);

void
foo (struct S *s)
{
  s->s2 = 231;
}

void
bar (void)
{
  if (x.s0 == 231 || x.s2 != 231)
    abort ();
}

int
main ()
{
  foo (&x);
  bar ();
  exit (0);
}
