Viewing file: nodatarel-1.c (1.09 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* Test -mno-pic-data-is-text-relative option. No relative addressing of elements in .data and .bss are allowed with that option. */
/* { dg-do compile } */ /* { dg-options "-O3 -fno-optimize-sibling-calls -fpic -mno-pic-data-is-text-relative -march=z10 -mtune=z9-109 -mzarch" } */
static int a = 3;
/* With -mno-pic-data-is-text-relative these must be addressed via GOT. */
int __attribute__((noinline,noclone)) foo () { return a; }
/* Just to make a potentially modified. */
void bar (int b) { a = b; }
/* { dg-final { scan-assembler-times "\\.LANCHOR\\d+@GOTENT" 2 } } */
/* The exrl target is a label_ref which should not be affected at all. */
void mymemcpy (char *dst, char *src, long size) { __builtin_memcpy (dst, src, size); }
/* { dg-final { scan-assembler "exrl" } } */
/* PLT slots can still be addressed relatively. */
int callfoo () { return foo (); }
/* { dg-final { scan-assembler-times "foo@PLT" 1 } } */
/* GOT entries can still be addressed relatively. */
void * fooptr () { return &foo; }
/* { dg-final { scan-assembler-times "foo@GOTENT" 1 } } */
|