* gcc.c-torture/execute/990208-1.c: New test.
From-SVN: r25101
This commit is contained in:
parent
acd693d10c
commit
20d83a046a
2 changed files with 50 additions and 0 deletions
|
@ -1,3 +1,7 @@
|
|||
Mon Feb 8 21:42:57 1999 Richard Henderson <rth@cygnus.com>
|
||||
|
||||
* gcc.c-torture/execute/990208-1.c: New test.
|
||||
|
||||
1999-02-07 Jonathan Larmour <jlarmour@cygnus.co.uk>
|
||||
|
||||
* g++.dg/special/ecos.exp: New driver for new tests with special
|
||||
|
|
46
gcc/testsuite/gcc.c-torture/execute/990208-1.c
Normal file
46
gcc/testsuite/gcc.c-torture/execute/990208-1.c
Normal file
|
@ -0,0 +1,46 @@
|
|||
/* As a quality of implementation issue, we should not prevent inlining
|
||||
of function explicitly marked inline just because a label therein had
|
||||
its address taken. */
|
||||
|
||||
#ifndef NO_LABEL_VALUES
|
||||
static void *ptr1, *ptr2;
|
||||
|
||||
static __inline__ void doit(void **pptr, int cond)
|
||||
{
|
||||
if (cond) {
|
||||
here:
|
||||
*pptr = &&here;
|
||||
}
|
||||
}
|
||||
|
||||
static void f(int cond)
|
||||
{
|
||||
doit (&ptr1, cond);
|
||||
}
|
||||
|
||||
static void g(int cond)
|
||||
{
|
||||
doit (&ptr2, cond);
|
||||
}
|
||||
|
||||
static void bar(void);
|
||||
|
||||
int main()
|
||||
{
|
||||
f (1);
|
||||
bar();
|
||||
g (1);
|
||||
|
||||
#ifdef __OPTIMIZE__
|
||||
if (ptr1 == ptr2)
|
||||
abort ();
|
||||
#endif
|
||||
|
||||
exit (0);
|
||||
}
|
||||
|
||||
void bar(void) { }
|
||||
|
||||
#else /* NO_LABEL_VALUES */
|
||||
int main() { exit(0); }
|
||||
#endif
|
Loading…
Add table
Reference in a new issue