If a complex condition is always unreachable, I’d prefer to see my compiler or static analysis tool complain about that instead - since, in many cases, having a complex condition that is always unreachable might itself be a bug - rather than treating the condition as correct and the unreachable statement as dead code.
Of course in certain cases - like ‘0 && expr’ or ‘1 || expr’ (including with macros), those kinds of warnings should be suppressed - but in cases like the example in the article, I personally would rather see a warning about the condition itself being suspiciously constantly false.
If a complex condition is always unreachable, I’d prefer to see my compiler or static analysis tool complain about that instead - since, in many cases, having a complex condition that is always unreachable might itself be a bug - rather than treating the condition as correct and the unreachable statement as dead code.
Of course in certain cases - like ‘0 && expr’ or ‘1 || expr’ (including with macros), those kinds of warnings should be suppressed - but in cases like the example in the article, I personally would rather see a warning about the condition itself being suspiciously constantly false.