* gcc.c-torture/execute/frame-address.c: New test.
From-SVN: r103485
This commit is contained in:
parent
40f1508996
commit
a5e668d53d
|
@ -1,3 +1,7 @@
|
|||
2005-08-26 Maciej W. Rozycki <macro@linux-mips.org>
|
||||
|
||||
* gcc.c-torture/execute/frame-address.c: New test.
|
||||
|
||||
2005-08-25 Nathan Sidwell <nathan@codesourcery.com>
|
||||
|
||||
PR c++/20817
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
int check_fa_work (const char *, const char *) __attribute__((noinline));
|
||||
int check_fa_mid (const char *) __attribute__((noinline));
|
||||
int check_fa (char *) __attribute__((noinline));
|
||||
int how_much (void) __attribute__((noinline));
|
||||
|
||||
int check_fa_work (const char *c, const char *f)
|
||||
{
|
||||
const char d = 0;
|
||||
|
||||
if (c >= &d)
|
||||
return c >= f && f >= &d;
|
||||
else
|
||||
return c <= f && f <= &d;
|
||||
}
|
||||
|
||||
int check_fa_mid (const char *c)
|
||||
{
|
||||
const char *f = __builtin_frame_address (0);
|
||||
|
||||
return check_fa_work (c, f);
|
||||
}
|
||||
|
||||
int check_fa (char *unused)
|
||||
{
|
||||
const char c = 0;
|
||||
|
||||
return check_fa_mid (&c);
|
||||
}
|
||||
|
||||
int how_much (void)
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
|
||||
int main (void)
|
||||
{
|
||||
char *unused = __builtin_alloca (how_much ());
|
||||
|
||||
if (!check_fa(unused))
|
||||
abort();
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue