1 /* ARM's load-and-call patterns used to allow automodified addresses.
2 This was wrong, because if the modified register were spilled,
3 the call would need an output reload. */
4 /* { dg-do run { target arm*-*-* } } */
5 /* { dg-options "-O2 -fno-omit-frame-pointer" } */
6 extern void abort (void);
7 typedef void (*callback) (void);
10 foo (callback *first, callback *p)
16 asm ("" : "=r" (p) : "0" (p)
17 : "r4", "r5", "r6", "r7", "r8", "r9", "r10");
33 callback list[1] = { dummy };
34 foo (&list[0], &list[1]);