<div dir="ltr">Would it be OK/better to read it as an integer and switch over that rather than reading as an enum and casting back to int? Or are there other features of the parsing library that favor reading as an enum?</div><br><div class="gmail_quote"><div dir="ltr">On Thu, Mar 16, 2017 at 1:57 PM Zachary Turner via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: zturner<br class="gmail_msg">
Date: Thu Mar 16 15:45:11 2017<br class="gmail_msg">
New Revision: 297990<br class="gmail_msg">
<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=297990&view=rev" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project?rev=297990&view=rev</a><br class="gmail_msg">
Log:<br class="gmail_msg">
Silence -Wcovered-switch-default warning.<br class="gmail_msg">
<br class="gmail_msg">
Modified:<br class="gmail_msg">
    llvm/trunk/lib/DebugInfo/PDB/Native/InfoStream.cpp<br class="gmail_msg">
<br class="gmail_msg">
Modified: llvm/trunk/lib/DebugInfo/PDB/Native/InfoStream.cpp<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/Native/InfoStream.cpp?rev=297990&r1=297989&r2=297990&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/Native/InfoStream.cpp?rev=297990&r1=297989&r2=297990&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- llvm/trunk/lib/DebugInfo/PDB/Native/InfoStream.cpp (original)<br class="gmail_msg">
+++ llvm/trunk/lib/DebugInfo/PDB/Native/InfoStream.cpp Thu Mar 16 15:45:11 2017<br class="gmail_msg">
@@ -62,18 +62,22 @@ Error InfoStream::reload() {<br class="gmail_msg">
     PdbRaw_FeatureSig Sig;<br class="gmail_msg">
     if (auto EC = Reader.readEnum(Sig))<br class="gmail_msg">
       return EC;<br class="gmail_msg">
-    switch (Sig) {<br class="gmail_msg">
-    case PdbRaw_FeatureSig::VC110:<br class="gmail_msg">
+    // Since this value comes from a file, it's possible we have some strange<br class="gmail_msg">
+    // value which doesn't correspond to any value.  We don't want to warn on<br class="gmail_msg">
+    // -Wcovered-switch-default in this case, so switch on the integral value<br class="gmail_msg">
+    // instead of the enumeration value.<br class="gmail_msg">
+    switch (uint32_t(Sig)) {<br class="gmail_msg">
+    case uint32_t(PdbRaw_FeatureSig::VC110):<br class="gmail_msg">
       // No other flags for VC110 PDB.<br class="gmail_msg">
       Stop = true;<br class="gmail_msg">
       LLVM_FALLTHROUGH;<br class="gmail_msg">
-    case PdbRaw_FeatureSig::VC140:<br class="gmail_msg">
+    case uint32_t(PdbRaw_FeatureSig::VC140):<br class="gmail_msg">
       Features |= PdbFeatureContainsIdStream;<br class="gmail_msg">
       break;<br class="gmail_msg">
-    case PdbRaw_FeatureSig::NoTypeMerge:<br class="gmail_msg">
+    case uint32_t(PdbRaw_FeatureSig::NoTypeMerge):<br class="gmail_msg">
       Features |= PdbFeatureNoTypeMerging;<br class="gmail_msg">
       break;<br class="gmail_msg">
-    case PdbRaw_FeatureSig::MinimalDebugInfo:<br class="gmail_msg">
+    case uint32_t(PdbRaw_FeatureSig::MinimalDebugInfo):<br class="gmail_msg">
       Features |= PdbFeatureMinimalDebugInfo;<br class="gmail_msg">
     default:<br class="gmail_msg">
       continue;<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
_______________________________________________<br class="gmail_msg">
llvm-commits mailing list<br class="gmail_msg">
<a href="mailto:llvm-commits@lists.llvm.org" class="gmail_msg" target="_blank">llvm-commits@lists.llvm.org</a><br class="gmail_msg">
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" class="gmail_msg" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br class="gmail_msg">
</blockquote></div>