/* { dg-do compile } */ /* { dg-require-effective-target naked_functions } */ /* { dg-options "-O0" } */ __attribute__((naked)) void foo1 () { int aa = 0; int ab = {0}; } __attribute__((naked)) void foo2() { char aa [ ] = {}; /* { dg-error "cannot allocate stack for variable" } */ char ab [1] = {}; char ac [2] = {}; /* { dg-error "cannot allocate stack for variable" } */ char ad [3] = {}; /* { dg-error "cannot allocate stack for variable" } */ } __attribute__((naked)) void foo3() { char aa [1] = {0}; char ab [2] = {0}; /* { dg-error "cannot allocate stack for variable" } */ char ac [3] = {0}; /* { dg-error "cannot allocate stack for variable" } */ char ad [4] = {0}; /* { dg-error "cannot allocate stack for variable" } */ } __attribute__((naked)) void foo4() { char aa [2] = {0,0}; /* { dg-error "cannot allocate stack for variable" } */ } __attribute__((naked)) void foo5() { char aa [3] = {0,0,0}; /* { dg-error "cannot allocate stack for variable" } */ } __attribute__((naked)) void foo6() { char aa [4] = {0,0,0,0}; /* { dg-error "cannot allocate stack for variable" } */ }