thakis added a comment.

Thanks for the test!



================
Comment at: clang/lib/Sema/AnalysisBasedWarnings.cpp:907
     else
       DiagUninitUse(S, VD, Use, true);
   }
----------------
lethalantidote wrote:
> thakis wrote:
> > Should the check be in DiagUninitUse()? Or is there a reason this one 
> > should happen for volatiles?
> Good point. Thanks for catching that.  I hoped I understood this use case 
> correctly, lemme know if the update makes sense. 
Is it possible to test that both branches have this early return now?


================
Comment at: clang/lib/Sema/AnalysisBasedWarnings.cpp:699
   case UninitUse::Always:
+    if (VD->getType().isVolatileQualified()) {
+      return;
----------------
What about the other cases in this switch? Does a volatile still warn in those 
cases? Should it? (Probably not?)

Right now the approach is to add an early return when the warning is emitted. 
Maybe this change should instead be somewhere where we compute if a var could 
be uninitialized, and that should always be false for volatile variables? Then 
future other warnings looking at that bit would get volatiles right for free.


https://reviews.llvm.org/D28543



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to