<div dir="ltr">Or you can disable warnings for that type, right?  "Don't warn about comparsions to 0 for type {enum type}, because the whole reason I'm using enums is so I don't have to worry about the value of the enum."<div>
<br></div><div>Don't let the compiler dictate writing less safe code.</div><div><br></div><div>That's like that lame switch coverage warning that tells you "you have a (supposedly superfluous) default when all enum values are covered by the switch".  And if the compiler can guarantee that something else in the program doesn't inadvertently permute the switch variable to a value outside the values of the enum, then great.  If not, that's a dangerous warning.  I can't tell you the number of times I was glad I had a default with some kind of sanity check on a game server to tip off a gnarly memory overwrite condition.  Yet the easy thing to do here would be to remove the default, and miss catching the case of a bogus value.</div>
<div><br></div><div>/rant off.</div><div><br></div><div>In this case, a comment is likely sufficient.  Another way to work around this is to use a range-check method where the lower and upper bounds are passed in, which would likely preserve both the intent and eliminate the warning in one foul swoop :-)</div>
<div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Jul 30, 2014 at 1:43 PM, Zachary Turner <span dir="ltr"><<a href="mailto:zturner@google.com" target="_blank">zturner@google.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="">Could probably address that concern with a comment, but the alternatives<br>
(disabling the warning or doing a cast to a signed type) both seem strictly<br>
worse than removing the code, and I'm a strong proponent of warning-free<br>
code across all platforms.<br>
<br>
</div><a href="http://reviews.llvm.org/D4629" target="_blank">http://reviews.llvm.org/D4629</a><br>
<br>
<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr"><table cellspacing="0" cellpadding="0" style="color:rgb(136,136,136);font-family:'Times New Roman'"><tbody><tr style="color:rgb(85,85,85);font-family:sans-serif;font-size:small">
<td nowrap style="border-top-style:solid;border-top-color:rgb(213,15,37);border-top-width:2px">Todd Fiala |</td><td nowrap style="border-top-style:solid;border-top-color:rgb(51,105,232);border-top-width:2px"> Software Engineer |</td>
<td nowrap style="border-top-style:solid;border-top-color:rgb(0,153,57);border-top-width:2px"> <a href="mailto:tfiala@google.com" style="color:rgb(17,85,204)" target="_blank"><span style="background-color:rgb(255,255,204);color:rgb(34,34,34);background-repeat:initial initial">tfiala@google.com</span></a> |</td>
<td nowrap style="border-top-style:solid;border-top-color:rgb(238,178,17);border-top-width:2px"><font color="#1155cc"> <a>650-943-3180</a></font></td></tr></tbody></table><br></div>
</div>