/* { dg-do compile } */ /* { dg-options "-O2 -fdump-tree-vrp1" } */ extern void abort (void) __attribute__ ((__noreturn__)); union tree_node; typedef union tree_node *tree; enum tree_code { ERROR_MARK, COND_EXPR = 42, }; extern const unsigned char tree_code_length[]; struct tree_common { enum tree_code code:8; }; union tree_node { struct tree_common common; }; void blah (tree t) { if (t->common.code != COND_EXPR) abort (); if (1 >= tree_code_length[t->common.code]) abort (); } /* { dg-final { scan-tree-dump-times "tree_code_length.42." 1 "vrp1" } } */ /* { dg-final { cleanup-tree-dump "vrp1" } } */