/* PR tree-optimization/15826 - don't use "if" to extract a single bit bit-field */ /* { dg-do compile } */ /* { dg-options "-O2 -fdump-tree-optimized" } */ struct s { unsigned int bit : 1; }; unsigned int foo (struct s *p) { if (p->bit) return 1; else return 0; } unsigned int bar (struct s *p) { return (unsigned int) (p->bit); } unsigned int andrew (struct s *p) { int i; if (p->bit) i = 1; else i = 0; return i; } /* { dg-final { scan-tree-dump-not "goto " "optimized" } } */