summaryrefslogtreecommitdiffstats
path: root/testsuite/reloc5.c
blob: 6c1b3c9f1425a3d0428e9ec385ec93478f2f00f2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>

int main (void)
{
  int i;

  printf ("#include <stdlib.h>\nextern char testzero[16384];\nextern int");
  for (i = 0; i < 255; ++i)
    printf (" bar%02x (int),", i);
  printf (" barff (int);\nint main (void)\n{\n  int x = 0;\n");
  for (i = 0; i < 256; ++i)
    printf ("  x = bar%02x (x);\n", i);
  printf ("  if (x != 0x7fff8000) abort ();\n");
  printf ("  for (x = 0; x < 16384; ++x)\n");
  printf ("    if (testzero[x]) abort ();\n");
  printf ("  exit (0);\n}\n\n");
  printf ("#ifdef __arm__\n");
  printf ("asm (\".section nonalloced,\\\"aw\\\",%%nobits; testzero: .skip 16384\");\n");
  printf ("#else\n");
  printf ("asm (\".section nonalloced,\\\"aw\\\",@nobits; testzero: .skip 16384\");\n");
  printf ("#endif\n");
}