1  /* Test that qualifiers on asm are allowed in any order.  */
       2  /* { dg-do compile } */
       3  /* { dg-options "-std=gnu99" } */
       4  
       5  void
       6  f (void)
       7  {
       8    asm volatile goto ("" :::: lab);
       9    asm volatile inline ("" :::);
      10    asm inline volatile ("" :::);
      11    asm inline goto ("" :::: lab);
      12    asm goto volatile ("" :::: lab);
      13    asm goto inline ("" :::: lab);
      14  
      15    asm volatile inline goto ("" :::: lab);
      16    asm volatile goto inline ("" :::: lab);
      17    asm inline volatile goto ("" :::: lab);
      18    asm inline goto volatile ("" :::: lab);
      19    asm goto volatile inline ("" :::: lab);
      20    asm goto inline volatile ("" :::: lab);
      21  
      22    /* Duplicates are not allowed.  */
      23    asm goto volatile volatile ("" :::: lab);  /* { dg-error "" } */
      24    asm volatile goto volatile ("" :::: lab);  /* { dg-error "" } */
      25    asm volatile volatile goto ("" :::: lab);  /* { dg-error "" } */
      26    asm goto goto volatile ("" :::: lab);  /* { dg-error "" } */
      27    asm goto volatile goto ("" :::: lab);  /* { dg-error "" } */
      28    asm volatile goto goto ("" :::: lab);  /* { dg-error "" } */
      29  
      30    asm inline volatile volatile ("" :::);  /* { dg-error "" } */
      31    asm volatile inline volatile ("" :::);  /* { dg-error "" } */
      32    asm volatile volatile inline ("" :::);  /* { dg-error "" } */
      33    asm inline inline volatile ("" :::);  /* { dg-error "" } */
      34    asm inline volatile inline ("" :::);  /* { dg-error "" } */
      35    asm volatile inline inline ("" :::);  /* { dg-error "" } */
      36  
      37    asm goto inline inline ("" :::: lab);  /* { dg-error "" } */
      38    asm inline goto inline ("" :::: lab);  /* { dg-error "" } */
      39    asm inline inline goto ("" :::: lab);  /* { dg-error "" } */
      40    asm goto goto inline ("" :::: lab);  /* { dg-error "" } */
      41    asm goto inline goto ("" :::: lab);  /* { dg-error "" } */
      42    asm inline goto goto ("" :::: lab);  /* { dg-error "" } */
      43  
      44  lab:
      45    ;
      46  }