1/* { dg-do compile } */ 2/* { dg-options "-O1 -fdump-tree-cddce" } */ 3 4extern void abort (void); 5 6struct rtx_def; 7typedef struct rtx_def *rtx; 8enum rtx_code 9{ 10 UNKNOWN, 11 CODE_LABEL, 12 NOTE, 13 LAST_AND_UNUSED_RTX_CODE = 256 14}; 15typedef union rtunion_def rtunion; 16struct rtx_def 17{ 18 enum rtx_code code:16; 19}; 20void 21delete_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 "cddce"} } */ 37 38/* There should be no IF statements. */ 39/* { dg-final { scan-tree-dump-times "if " 0 "cddce"} } */ 40 41/* { dg-final { cleanup-tree-dump "cddce" } } */ 42