aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/aarch64/pic-small.c
blob: 2ea056af27da0bf20e606a28a529043b7baf1e1d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/* { dg-do compile } */
/* { dg-require-effective-target aarch64_small_fpic } */
/* { dg-options "-O2 -fpic -fno-inline --save-temps" } */
/* { dg-skip-if "-fpic for AArch64 small code model" { aarch64*-*-* }  { "-mcmodel=tiny" "-mcmodel=large" } { "" } } */

void abort ();
int global_a;

int
initialize (void)
{
  global_a = 0x10;
  return global_a - 1;
}

int
main (int argc, char **argv)
{
  int a = initialize ();

  if (a != global_a - 1)
    abort ();

  return 0;
}

/* { dg-final { scan-assembler-times "adrp\tx\[0-9\]+, _GLOBAL_OFFSET_TABLE" 2 } } */
/* { dg-final { cleanup-saved-temps } } */