49 lines
596 B
C
49 lines
596 B
C
/* { dg-do run { target fpic } } */
|
|
/* { dg-options "-O2 -fpic" } */
|
|
|
|
extern void abort (void);
|
|
extern void exit (int);
|
|
|
|
int bar (int x, char **y)
|
|
{
|
|
if (x != 56)
|
|
abort ();
|
|
if (**y != 'a')
|
|
abort ();
|
|
*y = "def";
|
|
return 1;
|
|
}
|
|
|
|
int baz (int x, char **y)
|
|
{
|
|
if (x != 56)
|
|
abort ();
|
|
if (**y != 'a')
|
|
abort ();
|
|
return 26;
|
|
}
|
|
|
|
int foo (int x, char *y)
|
|
{
|
|
int a;
|
|
char *b = y;
|
|
a = bar (x, &y);
|
|
if (a)
|
|
{
|
|
y = b;
|
|
a = baz (x, &y);
|
|
}
|
|
if (a)
|
|
return a;
|
|
|
|
baz (x, &y);
|
|
return 0;
|
|
}
|
|
|
|
int main ()
|
|
{
|
|
if (foo (56, "abc") != 26)
|
|
abort ();
|
|
exit (0);
|
|
}
|