Static analysis complains there is a non-void return method without a return statement:
struct NoOp {
void operator()(VALUE*) {}
const VALUE& operator()() {} // <--- here
void operator()(bool, VALUE*) {}
} noOp;
AFAICS, this is UB, and we have seen cases like these break compilers in other places. Not in this case, though, because noOp is only used as the default functor in remove. Still, it would be good to remove that risky definition, so that it is not used accidentally.
struct NoOp {
void operator()(VALUE*) {}
const VALUE& operator()() {} // <--- here
void operator()(bool, VALUE*) {}
} noOp;
AFAICS, this is UB, and we have seen cases like these break compilers in other places. Not in this case, though, because noOp is only used as the default functor in remove. Still, it would be good to remove that risky definition, so that it is not used accidentally.
- relates to
-
JDK-8195098 Low latency hashtable for read-mostly scenarios
-
- Resolved
-