lethalantidote created this revision. lethalantidote added a reviewer: thakis. lethalantidote added a subscriber: cfe-commits.
Elliminates uninitialized warning for volitile variables. https://reviews.llvm.org/D28543 Files: clang/lib/Sema/AnalysisBasedWarnings.cpp Index: clang/lib/Sema/AnalysisBasedWarnings.cpp =================================================================== --- clang/lib/Sema/AnalysisBasedWarnings.cpp +++ clang/lib/Sema/AnalysisBasedWarnings.cpp @@ -864,7 +864,7 @@ /// false. static bool DiagnoseUninitializedUse(Sema &S, const VarDecl *VD, const UninitUse &Use, - bool alwaysReportSelfInit = false) { + bool alwaysReportSelfInit = false) { if (const DeclRefExpr *DRE = dyn_cast<DeclRefExpr>(Use.getUser())) { // Inspect the initializer of the variable declaration which is // being referenced prior to its initialization. We emit @@ -891,6 +891,11 @@ } } + // If volatile, we don't raise this warning. + if (VD->getType().isVolatileQualified()) { + return false; + } + DiagUninitUse(S, VD, Use, false); } else { const BlockExpr *BE = cast<BlockExpr>(Use.getUser());
Index: clang/lib/Sema/AnalysisBasedWarnings.cpp =================================================================== --- clang/lib/Sema/AnalysisBasedWarnings.cpp +++ clang/lib/Sema/AnalysisBasedWarnings.cpp @@ -864,7 +864,7 @@ /// false. static bool DiagnoseUninitializedUse(Sema &S, const VarDecl *VD, const UninitUse &Use, - bool alwaysReportSelfInit = false) { + bool alwaysReportSelfInit = false) { if (const DeclRefExpr *DRE = dyn_cast<DeclRefExpr>(Use.getUser())) { // Inspect the initializer of the variable declaration which is // being referenced prior to its initialization. We emit @@ -891,6 +891,11 @@ } } + // If volatile, we don't raise this warning. + if (VD->getType().isVolatileQualified()) { + return false; + } + DiagUninitUse(S, VD, Use, false); } else { const BlockExpr *BE = cast<BlockExpr>(Use.getUser());
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits