1  /* PR target/94743 */
       2  /* { dg-do compile } */
       3  /* Thumb1 mode not supported for interrupt routines.  */
       4  /* { dg-require-effective-target arm32 } */
       5  /* { dg-skip-if "do not override -mfloat-abi" { *-*-* } { "-mfloat-abi=*" } {"-mfloat-abi=soft" } } */
       6  /* { dg-options "-mfloat-abi=soft" } */
       7  
       8  /* Check that we do not emit a warning when compiling an IRQ handler without
       9     -mgeneral-regs-only with -mfloat-abi=soft.  */
      10  typedef struct {
      11    double fpdata[32];
      12  } dummy_t;
      13  
      14  dummy_t global_d;
      15  dummy_t global_d1;
      16  
      17  /* This function may clobber VFP registers.  */
      18  __attribute__ ((interrupt("IRQ"))) void IRQ_HDLR_Test(void)
      19  {
      20    global_d.fpdata[3] += global_d.fpdata[3] * global_d1.fpdata[3];
      21  }
      22  
      23  /* This function does not need to clobber VFP registers.  */
      24  __attribute__ ((interrupt("IRQ"))) void IRQ_HDLR_Test2(void)
      25  {
      26    global_d.fpdata[3] = 1.0;
      27  }