]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
interrupt-2.c: New file.
authorRichard Sandiford <richard@codesourcery.com>
Fri, 4 Jul 2008 07:18:47 +0000 (07:18 +0000)
committerNathan Sidwell <nathan@gcc.gnu.org>
Fri, 4 Jul 2008 07:18:47 +0000 (07:18 +0000)
* 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
gcc/testsuite/gcc.dg/tree-ssa/20040204-1.c
gcc/testsuite/gcc.target/m68k/interrupt-2.c [new file with mode: 0644]

index 35df102f0ca8318ce7c5eb2da385bac234e9e7cd..61a522c0bf0863bb459140782073e82ae0215c4c 100644 (file)
@@ -1,3 +1,8 @@
+2008-07-04  Richard Sandiford  <richard@codesourcery.com>
+
+       * 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  <hongjiu.lu@intel.com>
 
        * gcc.dg/compat/struct-by-value-17a_x.c: Remove duplicated code.
index 28cdfd2318177de8eb46d9f5c6d34f3c91d10567..d7aea1b843037650cfb3bb74b60c17216f32aa59 100644 (file)
@@ -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 (file)
index 0000000..7d4cb68
--- /dev/null
@@ -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);
+}