1  /* { dg-do compile } */
       2  /* { dg-options "-O1 -fdump-tree-dce7" } */
       3        
       4  extern void abort (void);
       5  
       6  struct rtx_def;
       7  typedef struct rtx_def *rtx;
       8  enum rtx_code
       9  {
      10    UNKNOWN,
      11    CODE_LABEL,
      12    NOTE,
      13    LAST_AND_UNUSED_RTX_CODE = 256
      14  };
      15  typedef union rtunion_def rtunion;
      16  struct rtx_def
      17  {
      18    enum rtx_code code:16;
      19  };
      20  void
      21  delete_dead_jumptables ()
      22  {
      23    rtx insn, next;
      24    if (insn->code == CODE_LABEL)
      25      {
      26        rtx const _rtx = insn;
      27        if (_rtx->code != CODE_LABEL && _rtx->code != NOTE)
      28  	abort ();
      29      }
      30    ;
      31  }
      32  
      33  /* There should be no loads of ->code.  If any exist, then we failed to
      34     optimize away all the IF statements and the statements feeding
      35     their conditions.  */
      36  /* { dg-final { scan-tree-dump-times "->code" 0 "dce7"} } */
      37     
      38  /* There should be no IF statements.  */
      39  /* { dg-final { scan-tree-dump-times "if " 0 "dce7"} } */
      40