Closed
Description
enum E {
E0 = 0x1,
E1 = 0x2,
E2 = 0x4
};
E operator&(E a, E b) { return static_cast<E>(a & b); }
void f(E e) {
if (e & E1) {}
}
<[source>:10:9: warning: conversion of 'E' into 'bool' will always return 'true', enum doesn't have a zero-value enumerator [bugprone-non-zero-enum-to-bool-conversion]
10 | if (e & E1) {}
| ^
[<source>:1:6: note: enum is defined here]
1 | enum E {
| ^