From 9a0f2a1b986bfd0e0ba96a74af32631ffecb9e73 Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Fri, 4 Jul 2008 07:18:47 +0000 Subject: [PATCH] interrupt-2.c: New file. * gcc.target/m68k/interrupt-2.c: New file. * gcc.dg/tree-ssa/20040204-1.c: Don't XFAIL for m68k*-*-*. From-SVN: r137451 --- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.dg/tree-ssa/20040204-1.c | 2 +- gcc/testsuite/gcc.target/m68k/interrupt-2.c | 22 +++++++++++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gcc.target/m68k/interrupt-2.c diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 35df102f0ca..61a522c0bf0 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2008-07-04 Richard Sandiford + + * gcc.target/m68k/interrupt-2.c: New file. + * gcc.dg/tree-ssa/20040204-1.c: Don't XFAIL for m68k*-*-*. + 2008-07-03 H.J. Lu * gcc.dg/compat/struct-by-value-17a_x.c: Remove duplicated code. diff --git a/gcc/testsuite/gcc.dg/tree-ssa/20040204-1.c b/gcc/testsuite/gcc.dg/tree-ssa/20040204-1.c index 28cdfd23181..d7aea1b8430 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/20040204-1.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/20040204-1.c @@ -33,5 +33,5 @@ void test55 (int x, int y) that the && should be emitted (based on BRANCH_COST). Fix this by teaching dom to look through && and register all components as true. */ -/* { dg-final { scan-tree-dump-times "link_error" 0 "optimized" { xfail { ! "powerpc*-*-* cris-*-* crisv32-*-* mmix-*-* mips*-*-*" } } } } */ +/* { dg-final { scan-tree-dump-times "link_error" 0 "optimized" { xfail { ! "powerpc*-*-* cris-*-* crisv32-*-* mmix-*-* mips*-*-* m68k*-*-*" } } } } */ /* { dg-final { cleanup-tree-dump "optimized" } } */ diff --git a/gcc/testsuite/gcc.target/m68k/interrupt-2.c b/gcc/testsuite/gcc.target/m68k/interrupt-2.c new file mode 100644 index 00000000000..7d4cb68c121 --- /dev/null +++ b/gcc/testsuite/gcc.target/m68k/interrupt-2.c @@ -0,0 +1,22 @@ +/* { dg-do compile } */ +int x; +volatile unsigned int y; + +#define REPEAT10(X, Y) \ + X(Y##0); X(Y##1); X(Y##2); X(Y##3); X(Y##4); \ + X(Y##5); X(Y##6); X(Y##7); X(Y##8); X(Y##9) + +#define REPEAT30(X) REPEAT10 (X, 0); REPEAT10 (X, 1); REPEAT10 (X, 2) +#define IN(X) unsigned int x##X = y +#define OUT(X) y = x##X + +void __attribute__ ((interrupt_handler)) f1 (void) +{ + x = y + 11; +} + +void __attribute__ ((interrupt_handler)) f2 (void) +{ + REPEAT30 (IN); + REPEAT30 (OUT); +} -- 2.30.2