(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
arc/
naked-2.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-O0" } */
       3  /* Check that naked functions don't place arguments on the stack at
       4     optimisation level '-O0'.  */
       5  
       6  #if defined(__HS__) || defined(__EM__)
       7  # define ILINK "ilink"
       8  #else
       9  # define ILINK "ilink1"
      10  #endif
      11  
      12  extern void bar (int);
      13  
      14  void __attribute__((naked, interrupt(ILINK)))
      15  foo (int n, int m)
      16  {
      17    bar (n + m);
      18  }
      19  /* { dg-final { scan-assembler "\tbl @bar" } } */
      20  
      21  /* Look for things that would appear in a non-naked function, but which
      22     should not appear in a naked function.  */
      23  /* { dg-final { scan-assembler-not "\trtie" } } */
      24  /* { dg-final { scan-assembler-not "j.*\[ilink1\]" } } */
      25  /* { dg-final { scan-assembler-not "\tst.* " } } */
      26  /* { dg-final { scan-assembler-not "\tmov fp,sp" } } */