Hi Ted,<br><br>I tried -Wunreachable-code earlier today (Chandler had suggested it as a way to find/remove the dead code after llvm_unreachables I'd migrated yesterday) & it produced some very... interesting output. It did find the dead code after llvm_unreachable but it also found some other very strange cases. I was wondering what was up with that. Good to know it's WIP - any tips on the state of that? anywhere I'd be able to lend a hand? <br>
<br>It wouldn't catch all the same cases ("case N: default: stuff" for example) but this solution isn't great either, it'll catch a variety of arcane cases that won't have trivial fixes. Chandler had mentioned the idea of this warning (well, something like it) yesterday but after I threw this together we were talking about it more & realized it'd be pretty tricky to get right with a nice multiline fixit that is very reliable (I get the impression that's what he's really interested in - really low (0?) false positive rate & accurate fixits - which would be awesome, but require a rather different fix)<div>
<br></div><div>Just figured I'd throw it out there for any thoughts, but mostly looking to CR the mechanical change, make sure my understanding of the coding convention was correct before I checked it in.</div><div><br>
</div><div>Have a good weekend,</div><div>- David<br><br><div class="gmail_quote">On Fri, Sep 23, 2011 at 9:17 PM, Ted Kremenek <span dir="ltr"><<a href="mailto:kremenek@apple.com">kremenek@apple.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">There is a WIP warning, -Wunreachable-code, that actually does a reachability analysis on the CFG.  It's not completely ready for prime time, but it is getting there.  Does it catch all of these cases?  If so, I'm not certain if we need a separate warning, although this one looks fairly cheap.<br>

<div class="im"><br>
On Sep 23, 2011, at 7:20 PM, David Blaikie wrote:<br>
<br>
> I hacked up a cheap version of a warning for defaults in switches that already cover all cases in an enum (the warning is in excess_default.diff - given some discussion with Chandler on IRC I don't think we consider this to be sufficiently high quality to be checked in, but I wouldn't mind some other opinions/thoughts (the issue was that it might need to use the CFG to ensure that it's not reachable via loops nested in the switch or gotos, fallthroughs etc)) and I found/fixed the following cases (excess_default_fixes.diff)<br>

</div>> <excess_default.diff><excess_default_fixes.diff>_______________________________________________<br>
> cfe-commits mailing list<br>
> <a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
<br>
</blockquote></div><br></div>