| /* { dg-do compile } */ | |
| /* { dg-require-effective-target naked_functions } */ | |
| /* { dg-options "-O2 -fdump-tree-optimized" } */ | |
| static unsigned long __attribute__((naked)) | |
| foo (unsigned long base) | |
| { | |
| asm volatile ("dummy"); | |
| } | |
| unsigned long | |
| bar (void) | |
| { | |
| static int start, set; | |
| if (!set) | |
| { | |
| set = 1; | |
| start = foo (0); | |
| } | |
| return foo (start); | |
| } | |
| /* { dg-final { scan-tree-dump "foo \\\(long unsigned int base\\\)" "optimized" } } */ |