1 /* Test whether difference of local labels doesn't force 2 variables into writable sections. */ 3 /* { dg-do compile { target fpic } } */ 4 /* { dg-options "-O2 -fpic" } */ 5 /* { dg-options "-O2 -fpic -mpt-fixed" { target sh64*-*-* } } */ 6 /* { dg-final { scan-assembler-not ".data.rel.ro.local" } } */ 7 foo(int a)8int foo (int a) 9 { 10 static const int ar[] = { &&l1 - &&l1, &&l2 - &&l1 }; 11 void *p = &&l1 + ar[a]; 12 goto *p; 13 l1: 14 return 1; 15 l2: 16 return 2; 17 } 18