]> granicus.if.org Git - clang/commitdiff
Split warnings from -Wuninitialized-experimental into "must-be-initialized" and ...
authorTed Kremenek <kremenek@apple.com>
Tue, 15 Mar 2011 05:22:28 +0000 (05:22 +0000)
committerTed Kremenek <kremenek@apple.com>
Tue, 15 Mar 2011 05:22:28 +0000 (05:22 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127669 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Basic/DiagnosticGroups.td
lib/Analysis/UninitializedValues.cpp
lib/Sema/AnalysisBasedWarnings.cpp

index 31d9ef389d78cf3f4160a51dcb58710742b1b8c0..4d3eec0f8471af32f0d18636d354caa0252449f7 100644 (file)
@@ -136,7 +136,7 @@ def Switch         : DiagGroup<"switch", [SwitchEnum]>;
 def Trigraphs      : DiagGroup<"trigraphs">;
 
 def : DiagGroup<"type-limits">;
-
+def Uninitialized  : DiagGroup<"uninitialized">;
 def UninitializedMaybe : DiagGroup<"uninitialized-maybe">;
 def UnknownPragmas : DiagGroup<"unknown-pragmas">;
 def UnknownAttributes : DiagGroup<"unknown-attributes">;
index f651b474a0ac011641286f6f8f3a5f3c0f858dc0..31ee412815c241960b3c9bba5d7474568307c7e6 100644 (file)
@@ -198,6 +198,9 @@ static BinaryOperator *getLogicalOperatorInChain(const CFGBlock *block) {
     return 0;
 
   const CFGStmt *cstmt = block->front().getAs<CFGStmt>();
+  if (!cstmt)
+    return 0;
+
   BinaryOperator *b = llvm::dyn_cast_or_null<BinaryOperator>(cstmt->getStmt());
   
   if (!b || !b->isLogicalOp())
index e71f2dfb866a9fb18ac1f1a671aff29764298644..3d00c7fe7e08c5c2e4132df56c6789697010171f 100644 (file)
@@ -608,6 +608,8 @@ AnalysisBasedWarnings::IssueWarnings(sema::AnalysisBasedWarnings::Policy P,
     CheckUnreachable(S, AC);
   
   if (Diags.getDiagnosticLevel(diag::warn_uninit_var, D->getLocStart())
+      != Diagnostic::Ignored ||
+      Diags.getDiagnosticLevel(diag::warn_maybe_uninit_var, D->getLocStart())
       != Diagnostic::Ignored) {
     ASTContext &ctx = D->getASTContext();
     llvm::OwningPtr<CFG> tmpCFG;