mirror of git://gcc.gnu.org/git/gcc.git
Remove NO_TRAMPOLINES
2017-06-08 Tom de Vries <tom@codesourcery.com> * gcc.c-torture/compile/930506-2.c: Use dg-require-effective-target trampolines instead of NO_TRAMPOLINES. * gcc.c-torture/execute/20000822-1.c: Same. * gcc.c-torture/execute/920428-2.c: Same. * gcc.c-torture/execute/920501-7.c: Same. * gcc.c-torture/execute/920612-2.c: Same. * gcc.c-torture/execute/921017-1.c: Same. * gcc.c-torture/execute/921215-1.c: Same. * gcc.c-torture/execute/931002-1.c: Same. * gcc.c-torture/execute/comp-goto-2.c: Same. * gcc.c-torture/execute/nestfunc-1.c: Same. * gcc.c-torture/execute/nestfunc-2.c: Same. * gcc.c-torture/execute/nestfunc-3.c: Same. * gcc.c-torture/execute/nestfunc-5.c: Same. * gcc.c-torture/execute/nestfunc-6.c: Same. * gcc.c-torture/execute/pr24135.c: Same. * gcc.dg/Wtrampolines.c: Same. * gcc.dg/torture/stackalign/comp-goto-1.c: Same. * gcc.dg/torture/stackalign/nested-5.c: Same. * gcc.dg/torture/stackalign/nested-6.c: Same. * gcc.dg/torture/stackalign/non-local-goto-3.c: Same. * gcc.dg/torture/stackalign/non-local-goto-4.c: Same. * gcc.dg/torture/stackalign/non-local-goto-5.c: Same. * gcc.dg/trampoline-1.c: Same. * gcc.dg/tree-prof/pr44777.c: Same. * gcc.target/i386/pr67770.c: Same. * lib/gcc.exp (gcc_target_compile): Remove appending of -DNO_TRAMPOLINES to additional_flags. * lib/objc.exp (objc_target_compile): Same. From-SVN: r249027
This commit is contained in:
parent
b9835925b1
commit
73f49ad743
|
|
@ -1,3 +1,35 @@
|
|||
2017-06-08 Tom de Vries <tom@codesourcery.com>
|
||||
|
||||
* gcc.c-torture/compile/930506-2.c: Use dg-require-effective-target
|
||||
trampolines instead of NO_TRAMPOLINES.
|
||||
* gcc.c-torture/execute/20000822-1.c: Same.
|
||||
* gcc.c-torture/execute/920428-2.c: Same.
|
||||
* gcc.c-torture/execute/920501-7.c: Same.
|
||||
* gcc.c-torture/execute/920612-2.c: Same.
|
||||
* gcc.c-torture/execute/921017-1.c: Same.
|
||||
* gcc.c-torture/execute/921215-1.c: Same.
|
||||
* gcc.c-torture/execute/931002-1.c: Same.
|
||||
* gcc.c-torture/execute/comp-goto-2.c: Same.
|
||||
* gcc.c-torture/execute/nestfunc-1.c: Same.
|
||||
* gcc.c-torture/execute/nestfunc-2.c: Same.
|
||||
* gcc.c-torture/execute/nestfunc-3.c: Same.
|
||||
* gcc.c-torture/execute/nestfunc-5.c: Same.
|
||||
* gcc.c-torture/execute/nestfunc-6.c: Same.
|
||||
* gcc.c-torture/execute/pr24135.c: Same.
|
||||
* gcc.dg/Wtrampolines.c: Same.
|
||||
* gcc.dg/torture/stackalign/comp-goto-1.c: Same.
|
||||
* gcc.dg/torture/stackalign/nested-5.c: Same.
|
||||
* gcc.dg/torture/stackalign/nested-6.c: Same.
|
||||
* gcc.dg/torture/stackalign/non-local-goto-3.c: Same.
|
||||
* gcc.dg/torture/stackalign/non-local-goto-4.c: Same.
|
||||
* gcc.dg/torture/stackalign/non-local-goto-5.c: Same.
|
||||
* gcc.dg/trampoline-1.c: Same.
|
||||
* gcc.dg/tree-prof/pr44777.c: Same.
|
||||
* gcc.target/i386/pr67770.c: Same.
|
||||
* lib/gcc.exp (gcc_target_compile): Remove appending of
|
||||
-DNO_TRAMPOLINES to additional_flags.
|
||||
* lib/objc.exp (objc_target_compile): Same.
|
||||
|
||||
2017-06-08 Tom de Vries <tom@codesourcery.com>
|
||||
|
||||
* lib/target-supports.exp (check_effective_target_trampolines): Test for
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
#ifndef NO_TRAMPOLINES
|
||||
/* { dg-require-effective-target trampolines } */
|
||||
|
||||
int f1()
|
||||
{
|
||||
{ int ___() { foo(1); } bar(___); }
|
||||
|
|
@ -10,6 +11,3 @@ int f2(int j)
|
|||
{ int ___() { foo(j); } bar(___); }
|
||||
return( { int ___() { foo(j); } bar(___);} );
|
||||
}
|
||||
#else
|
||||
int x;
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
#ifndef NO_TRAMPOLINES
|
||||
/* { dg-require-effective-target trampolines } */
|
||||
|
||||
int f0(int (*fn)(int *), int *p)
|
||||
{
|
||||
return (*fn) (p);
|
||||
|
|
@ -16,13 +17,11 @@ int f1(void)
|
|||
|
||||
return f0(f2, &i);
|
||||
}
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
#ifndef NO_TRAMPOLINES
|
||||
if (f1() != 2)
|
||||
abort ();
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,6 @@
|
|||
/* { dg-require-effective-target label_values } */
|
||||
/* { dg-require-effective-target trampolines } */
|
||||
|
||||
#if !defined (NO_TRAMPOLINES)
|
||||
s(i){if(i>0){__label__ l1;int f(int i){if(i==2)goto l1;return 0;}return f(i);l1:;}return 1;}
|
||||
x(){return s(0)==1&&s(1)==0&&s(2)==1;}
|
||||
main(){if(x()!=1)abort();exit(0);}
|
||||
#else
|
||||
main(){ exit (0); }
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
/* { dg-require-effective-target label_values } */
|
||||
/* { dg-require-effective-target trampolines } */
|
||||
|
||||
#ifdef STACK_SIZE
|
||||
#define DEPTH ((STACK_SIZE) / 512 + 1)
|
||||
|
|
@ -6,7 +7,6 @@
|
|||
#define DEPTH 1000
|
||||
#endif
|
||||
|
||||
#if !defined (NO_TRAMPOLINES)
|
||||
x(a)
|
||||
{
|
||||
__label__ xlab;
|
||||
|
|
@ -20,13 +20,11 @@ x(a)
|
|||
xlab:;
|
||||
return a;
|
||||
}
|
||||
#endif
|
||||
|
||||
main ()
|
||||
{
|
||||
#if !defined (NO_TRAMPOLINES)
|
||||
if (x (DEPTH) != DEPTH)
|
||||
abort ();
|
||||
#endif
|
||||
|
||||
exit (0);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
/* { dg-require-effective-target trampolines } */
|
||||
|
||||
main ()
|
||||
{
|
||||
int i = 0;
|
||||
|
|
@ -7,9 +9,9 @@ main ()
|
|||
i++, x--;
|
||||
return x;
|
||||
}
|
||||
#ifndef NO_TRAMPOLINES
|
||||
|
||||
if (a (2) != 0)
|
||||
abort ();
|
||||
#endif
|
||||
|
||||
exit (0);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,6 @@
|
|||
/* { dg-skip-if "requires alloca" { ! alloca } { "-O0" } { "" } } */
|
||||
/* { dg-require-effective-target trampolines } */
|
||||
|
||||
f(n)
|
||||
{
|
||||
int a[n];
|
||||
|
|
@ -11,8 +13,7 @@ f(n)
|
|||
}
|
||||
main()
|
||||
{
|
||||
#ifndef NO_TRAMPOLINES
|
||||
if(f(2)!=4711)abort();
|
||||
#endif
|
||||
|
||||
exit(0);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
/* { dg-require-effective-target trampolines } */
|
||||
|
||||
main()
|
||||
{
|
||||
#ifndef NO_TRAMPOLINES
|
||||
void p(void ((*f) (void ())))
|
||||
{
|
||||
void r()
|
||||
|
|
@ -17,7 +18,7 @@ main()
|
|||
}
|
||||
|
||||
p(q);
|
||||
#endif
|
||||
|
||||
exit(0);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
/* { dg-require-effective-target trampolines } */
|
||||
|
||||
f (void (*func) ())
|
||||
{
|
||||
func ();
|
||||
|
|
@ -5,7 +7,6 @@ f (void (*func) ())
|
|||
|
||||
main ()
|
||||
{
|
||||
#ifndef NO_TRAMPOLINES
|
||||
void t0 ()
|
||||
{
|
||||
}
|
||||
|
|
@ -23,6 +24,6 @@ main ()
|
|||
t1 ();
|
||||
t1 ();
|
||||
t2 ();
|
||||
#endif
|
||||
|
||||
exit (0);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
/* { dg-require-effective-target label_values } */
|
||||
/* { dg-require-effective-target trampolines } */
|
||||
|
||||
/* A slight variation of 920501-7.c. */
|
||||
|
||||
|
|
@ -8,7 +9,6 @@
|
|||
#define DEPTH 1000
|
||||
#endif
|
||||
|
||||
#if !defined (NO_TRAMPOLINES)
|
||||
x(a)
|
||||
{
|
||||
__label__ xlab;
|
||||
|
|
@ -26,13 +26,12 @@ x(a)
|
|||
xlab:;
|
||||
return a;
|
||||
}
|
||||
#endif
|
||||
|
||||
main ()
|
||||
{
|
||||
#if !defined (NO_TRAMPOLINES)
|
||||
|
||||
if (x (DEPTH) != DEPTH)
|
||||
abort ();
|
||||
#endif
|
||||
|
||||
exit (0);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
/* { dg-require-effective-target trampolines } */
|
||||
|
||||
int
|
||||
g (int a, int b, int (*gi) (int, int))
|
||||
{
|
||||
|
|
@ -9,7 +11,6 @@ g (int a, int b, int (*gi) (int, int))
|
|||
|
||||
f ()
|
||||
{
|
||||
#ifndef NO_TRAMPOLINES
|
||||
int i, j;
|
||||
int f2 (int a, int b)
|
||||
{
|
||||
|
|
@ -18,7 +19,6 @@ f ()
|
|||
|
||||
if (g (1, 2, f2) != 2)
|
||||
abort ();
|
||||
#endif
|
||||
}
|
||||
|
||||
main ()
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
/* { dg-require-effective-target trampolines } */
|
||||
|
||||
extern int foo (int, int, int (*) (int, int, int, int, int, int, int));
|
||||
|
||||
int z;
|
||||
|
|
@ -5,7 +7,6 @@ int z;
|
|||
int
|
||||
main (void)
|
||||
{
|
||||
#ifndef NO_TRAMPOLINES
|
||||
int sum = 0;
|
||||
int i;
|
||||
|
||||
|
|
@ -37,8 +38,7 @@ main (void)
|
|||
|
||||
if (z != 0x1b)
|
||||
abort ();
|
||||
#endif
|
||||
|
||||
|
||||
exit (0);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
/* { dg-require-effective-target trampolines } */
|
||||
|
||||
extern long foo (long, long, long (*) (long, long));
|
||||
extern long use (long (*) (long, long), long, long);
|
||||
|
|
@ -5,7 +6,6 @@ extern long use (long (*) (long, long), long, long);
|
|||
int
|
||||
main (void)
|
||||
{
|
||||
#ifndef NO_TRAMPOLINES
|
||||
long sum = 0;
|
||||
long i;
|
||||
|
||||
|
|
@ -42,7 +42,6 @@ main (void)
|
|||
|
||||
if ((sum & 0xffffffff) != 0xbecfcbf5)
|
||||
abort ();
|
||||
#endif
|
||||
|
||||
exit (0);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
/* { dg-require-effective-target trampolines } */
|
||||
|
||||
extern void abort (void);
|
||||
extern void exit (int);
|
||||
|
||||
#ifndef NO_TRAMPOLINES
|
||||
static void recursive (int n, void (*proc) (void))
|
||||
{
|
||||
__label__ l1;
|
||||
|
|
@ -31,6 +32,3 @@ int main ()
|
|||
recursive (10, abort);
|
||||
abort ();
|
||||
}
|
||||
#else
|
||||
int main () { return 0; }
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
/* { dg-require-effective-target trampolines } */
|
||||
|
||||
/* Test that the GP gets properly restored, either by the nonlocal
|
||||
receiver or the nested function. */
|
||||
|
||||
#ifndef NO_TRAMPOLINES
|
||||
|
||||
typedef __SIZE_TYPE__ size_t;
|
||||
extern void abort (void);
|
||||
extern void exit (int);
|
||||
|
|
@ -23,7 +23,3 @@ int main ()
|
|||
nonlocal:
|
||||
exit (0);
|
||||
}
|
||||
|
||||
#else
|
||||
int main() { return 0; }
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
#ifndef NO_TRAMPOLINES
|
||||
/* { dg-require-effective-target trampolines } */
|
||||
|
||||
extern void abort (void);
|
||||
|
||||
int x(int a, int b)
|
||||
|
|
@ -41,6 +42,3 @@ int main ()
|
|||
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
int main() { return 0; }
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -5,8 +5,6 @@
|
|||
/* { dg-require-effective-target trampolines } */
|
||||
/* { dg-options "-O2 -Wtrampolines" } */
|
||||
|
||||
#ifndef NO_TRAMPOLINES
|
||||
|
||||
/* This used to fail on various versions of Solaris 2 because the
|
||||
trampoline couldn't be made executable. */
|
||||
|
||||
|
|
@ -46,12 +44,10 @@ void foo (void)
|
|||
abort();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
int main (void)
|
||||
{
|
||||
#ifndef NO_TRAMPOLINES
|
||||
foo ();
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
/* { dg-do run } */
|
||||
/* { dg-require-effective-target label_values } */
|
||||
/* { dg-require-effective-target trampolines } */
|
||||
|
||||
#ifdef STACK_SIZE
|
||||
#define DEPTH ((STACK_SIZE) / 512 + 1)
|
||||
|
|
@ -10,7 +11,6 @@
|
|||
extern void abort (void);
|
||||
extern void exit (int);
|
||||
|
||||
#if !defined (NO_TRAMPOLINES)
|
||||
int
|
||||
x(int a)
|
||||
{
|
||||
|
|
@ -29,14 +29,12 @@ x(int a)
|
|||
xlab:;
|
||||
return a;
|
||||
}
|
||||
#endif
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
#if !defined (NO_TRAMPOLINES)
|
||||
if (x (DEPTH) != DEPTH)
|
||||
abort ();
|
||||
#endif
|
||||
|
||||
exit (0);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
/* { dg-do run } */
|
||||
/* { dg-require-effective-target trampolines } */
|
||||
|
||||
extern void abort (void);
|
||||
extern void exit (int);
|
||||
|
||||
#ifndef NO_TRAMPOLINES
|
||||
static void recursive (int n, void (*proc) (void))
|
||||
{
|
||||
__label__ l1;
|
||||
|
|
@ -33,6 +33,3 @@ int main ()
|
|||
recursive (10, abort);
|
||||
abort ();
|
||||
}
|
||||
#else
|
||||
int main () { return 0; }
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
/* { dg-do run } */
|
||||
|
||||
#ifndef NO_TRAMPOLINES
|
||||
/* { dg-require-effective-target trampolines } */
|
||||
|
||||
typedef __SIZE_TYPE__ size_t;
|
||||
extern void abort (void);
|
||||
|
|
@ -22,7 +21,3 @@ int main ()
|
|||
nonlocal:
|
||||
exit (0);
|
||||
}
|
||||
|
||||
#else
|
||||
int main() { return 0; }
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/* { dg-do run } */
|
||||
/* { dg-require-effective-target nonlocal_goto } */
|
||||
/* { dg-require-effective-target trampolines } */
|
||||
|
||||
#ifndef NO_TRAMPOLINES
|
||||
extern void abort (void);
|
||||
|
||||
int x(int a, int b)
|
||||
|
|
@ -38,6 +38,3 @@ int main ()
|
|||
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
int main() { return 0; }
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
/* { dg-do run } */
|
||||
/* { dg-require-effective-target nonlocal_goto } */
|
||||
/* { dg-require-effective-target label_values } */
|
||||
/* { dg-require-effective-target trampolines } */
|
||||
|
||||
extern void abort (void);
|
||||
extern void exit (int);
|
||||
|
|
@ -11,7 +12,6 @@ extern void exit (int);
|
|||
#define DEPTH 1000
|
||||
#endif
|
||||
|
||||
#if !defined (NO_TRAMPOLINES)
|
||||
int
|
||||
x(int a)
|
||||
{
|
||||
|
|
@ -26,14 +26,12 @@ x(int a)
|
|||
xlab:;
|
||||
return a;
|
||||
}
|
||||
#endif
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
#if !defined (NO_TRAMPOLINES)
|
||||
if (x (DEPTH) != DEPTH)
|
||||
abort ();
|
||||
#endif
|
||||
|
||||
exit (0);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,13 +1,10 @@
|
|||
/* { dg-do run } */
|
||||
/* { dg-require-effective-target nonlocal_goto } */
|
||||
/* { dg-require-effective-target label_values } */
|
||||
/* { dg-require-effective-target trampolines } */
|
||||
|
||||
extern void exit (int);
|
||||
#if !defined (NO_TRAMPOLINES)
|
||||
extern void abort (void);
|
||||
int s(int i){if(i>0){__label__ l1;int f(int i){if(i==2)goto l1;return 0;}return f(i);l1:;}return 1;}
|
||||
int x(){return s(0)==1&&s(1)==0&&s(2)==1;}
|
||||
int main(){if(x()!=1)abort();exit(0);}
|
||||
#else
|
||||
int main(){ exit (0); }
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -5,8 +5,6 @@
|
|||
/* { dg-require-effective-target trampolines } */
|
||||
/* { dg-options "-O2" } */
|
||||
|
||||
#ifndef NO_TRAMPOLINES
|
||||
|
||||
/* This used to fail on various versions of Solaris 2 because the
|
||||
trampoline couldn't be made executable. */
|
||||
|
||||
|
|
@ -46,12 +44,9 @@ void foo (void)
|
|||
abort();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
int main (void)
|
||||
{
|
||||
#ifndef NO_TRAMPOLINES
|
||||
foo ();
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
/* PR middle-end/44777 */
|
||||
/* { dg-require-effective-target label_values } */
|
||||
/* { dg-require-effective-target trampolines } */
|
||||
/* { dg-options "-O0" } */
|
||||
/* A variant of gcc.c-torture/execute/comp-goto-2.c. */
|
||||
|
||||
|
|
@ -12,7 +13,6 @@ extern void exit (int);
|
|||
#define DEPTH 1000
|
||||
#endif
|
||||
|
||||
#if !defined (NO_TRAMPOLINES)
|
||||
int
|
||||
x (int a)
|
||||
{
|
||||
|
|
@ -31,14 +31,13 @@ x (int a)
|
|||
xlab:;
|
||||
return a;
|
||||
}
|
||||
#endif
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
#if !defined (NO_TRAMPOLINES)
|
||||
|
||||
if (x (DEPTH) != DEPTH)
|
||||
abort ();
|
||||
#endif
|
||||
|
||||
exit (0);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,18 +3,15 @@
|
|||
/* { dg-require-effective-target trampolines } */
|
||||
/* { dg-options "-O2" } */
|
||||
|
||||
#ifndef NO_TRAMPOLINES
|
||||
__attribute__ ((noinline)) void
|
||||
foo (int i, void (* __attribute__ ((regparm (3))) bar) (int))
|
||||
{
|
||||
bar (i);
|
||||
}
|
||||
#endif
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
#ifndef NO_TRAMPOLINES
|
||||
int p = 0;
|
||||
|
||||
__attribute__ ((regparm (3), noinline)) void
|
||||
|
|
@ -35,6 +32,6 @@ main ()
|
|||
|
||||
if (p != 2)
|
||||
__builtin_abort ();
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -144,9 +144,6 @@ proc gcc_target_compile { source dest type options } {
|
|||
if [target_info exists gcc,stack_size] {
|
||||
lappend options "additional_flags=-DSTACK_SIZE=[target_info gcc,stack_size]"
|
||||
}
|
||||
if [target_info exists gcc,no_trampolines] {
|
||||
lappend options "additional_flags=-DNO_TRAMPOLINES"
|
||||
}
|
||||
if [target_info exists gcc,signal_suppress] {
|
||||
lappend options "additional_flags=-DSIGNAL_SUPPRESS"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -194,9 +194,6 @@ proc objc_target_compile { source dest type options } {
|
|||
if [target_info exists objc,stack_size] {
|
||||
lappend options "additional_flags=-DSTACK_SIZE=[target_info objc,stack_size]"
|
||||
}
|
||||
if [target_info exists objc,no_trampolines] {
|
||||
lappend options "additional_flags=-DNO_TRAMPOLINES"
|
||||
}
|
||||
|
||||
# TEST_ALWAYS_FLAGS are flags that should be passed to every
|
||||
# compilation. They are passed first to allow individual
|
||||
|
|
|
|||
Loading…
Reference in New Issue