1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-tree-optimized" } */
5 foo (unsigned char a
, _Bool b
)
7 return (!a
& a
) | (b
& !b
);
10 /* As long as comparisons aren't boolified and casts from boolean-types
11 aren't preserved, the folding of X & !X to zero fails. */
12 /* { dg-final { scan-tree-dump-times "return 0" 1 "optimized" { xfail *-*-* } } } */