Was this broken condition something that could have been detected statically? I've encountered plenty of broken conditions, but I've never had a compiler correctly flag one such.
Sent from my iPhone On Aug 21, 2011, at 12:39 PM, Don <nos...@nospam.com> wrote: > Sean Kelly wrote: >> On Aug 18, 2011, at 10:29 AM, Nick Sabalausky wrote: >>> "Bernard Helyer" <b.hel...@gmail.com> wrote in message >>> news:j2ithq$12kd$1...@digitalmars.com... >>>> I asked the Ars forums ( http://arstechnica.com/civis/viewtopic.php? >>>> f=20&t=1153378&p=21965411 ) and I ask the same of you: should >>>> unambiguously unreachable code be an error or a warning? ( see the linked >>>> forum post for more details ). >>> No. That would be a royal pain in the ass during debugging. I expect to be >>> able to stick a "return xxxx;" anywhere I want to test something and not >>> have the compiler crap out because I didn't deal with the overhead of >>> commenting out the rest. >>> >>> A warning might be nice, though. >> A warning if anything. I've never encountered a situation where code was >> made unreachable by accident. I also get "unreachable code" warnings >> periodically, for code that is absolutely reachable. I don't want my code >> to not compile simply because the compiler can't perform adequate flow >> analysis. > > I have encountered bugs of the form: > if (cond) { /* unreachable */ } > and the cond was unintentionally always false. The last time I encountered > such a bug was last week. I'm surprised your experience is so different. > > It's crucial that it should never report "unreachable" if it is unsure (not > even a warning). > But I think conditional compilation is a huge problem -- code may be valid > under different compilation conditions. I suspect that to eliminate all the > false positives, it'd have to be so conservative, that it wouldn't catch any > bugs. >