111
|
1 /* { dg-do run { target fpic } } */
|
|
2 /* { dg-options "-O2 -fpic" } */
|
|
3
|
|
4 extern void abort (void);
|
|
5 extern void exit (int);
|
|
6
|
|
7 int bar (int x, char **y)
|
|
8 {
|
|
9 if (x != 56)
|
|
10 abort ();
|
|
11 if (**y != 'a')
|
|
12 abort ();
|
|
13 *y = "def";
|
|
14 return 1;
|
|
15 }
|
|
16
|
|
17 int baz (int x, char **y)
|
|
18 {
|
|
19 if (x != 56)
|
|
20 abort ();
|
|
21 if (**y != 'a')
|
|
22 abort ();
|
|
23 return 26;
|
|
24 }
|
|
25
|
|
26 int foo (int x, char *y)
|
|
27 {
|
|
28 int a;
|
|
29 char *b = y;
|
|
30 a = bar (x, &y);
|
|
31 if (a)
|
|
32 {
|
|
33 y = b;
|
|
34 a = baz (x, &y);
|
|
35 }
|
|
36 if (a)
|
|
37 return a;
|
|
38
|
|
39 baz (x, &y);
|
|
40 return 0;
|
|
41 }
|
|
42
|
|
43 int main ()
|
|
44 {
|
|
45 if (foo (56, "abc") != 26)
|
|
46 abort ();
|
|
47 exit (0);
|
|
48 }
|