61d313053675e3f628b6f51ae63eda40d498af9a
[platform/upstream/gcc48.git] / gcc / testsuite / gcc.target / arm / interrupt-2.c
1 /* Verify that prologue and epilogue are correct for functions with
2    __attribute__ ((interrupt)).  */
3 /* { dg-do compile } */
4 /* { dg-require-effective-target arm_nothumb } */
5 /* { dg-options "-O1 -marm" } */
6
7 /* This test is not valid when -mthumb.  */
8 extern void bar (int);
9 extern void test (void) __attribute__((__interrupt__));
10
11 int foo;
12 void test()
13 {
14   bar (foo);
15   foo = 0;
16 }
17
18 /* { dg-final { scan-assembler "stmfd\tsp!, {r0, r1, r2, r3, r4, r5, ip, lr}" } } */
19 /* { dg-final { scan-assembler "ldmfd\tsp!, {r0, r1, r2, r3, r4, r5, ip, pc}\\^" } } */