/* { dg-do compile } */ | |
/* { dg-options "-O0" } */ | |
/* Check that function arguments aren't assigned and copied to stack slots | |
in naked functions. This usually happens at -O0 (presumably for | |
better debugging), but is highly undesirable if we haven't created | |
a stack frame. */ | |
void __attribute__((naked)) | |
foo(int n) | |
{ | |
__asm__ volatile ("frob r0\n"); | |
} | |
/* { dg-final { scan-assembler "\tfrob r0" } } */ | |
/* { dg-final { scan-assembler-not "\tstr" } } */ |