/* { 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" } } */ |