diff options
author | Ted Kremenek <kremenek@apple.com> | 2011-03-15 05:22:28 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2011-03-15 05:22:28 +0000 |
commit | 1a47f366b7620b2c6724a9e7311632bb124987cf (patch) | |
tree | 0420f22960373a04b1959e93ee62af91eaf6a8a0 | |
parent | e4b8ac9fef8951c24f71eae49fd0956d71f0e413 (diff) | |
download | bcm5719-llvm-1a47f366b7620b2c6724a9e7311632bb124987cf.tar.gz bcm5719-llvm-1a47f366b7620b2c6724a9e7311632bb124987cf.zip |
Split warnings from -Wuninitialized-experimental into "must-be-initialized" and "may-be-initialized" warnings, each controlled by different flags.
llvm-svn: 127669
-rw-r--r-- | clang/include/clang/Basic/DiagnosticGroups.td | 2 | ||||
-rw-r--r-- | clang/lib/Analysis/UninitializedValues.cpp | 3 | ||||
-rw-r--r-- | clang/lib/Sema/AnalysisBasedWarnings.cpp | 2 |
3 files changed, 6 insertions, 1 deletions
diff --git a/clang/include/clang/Basic/DiagnosticGroups.td b/clang/include/clang/Basic/DiagnosticGroups.td index 31d9ef389d7..4d3eec0f847 100644 --- a/clang/include/clang/Basic/DiagnosticGroups.td +++ b/clang/include/clang/Basic/DiagnosticGroups.td @@ -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">; diff --git a/clang/lib/Analysis/UninitializedValues.cpp b/clang/lib/Analysis/UninitializedValues.cpp index f651b474a0a..31ee412815c 100644 --- a/clang/lib/Analysis/UninitializedValues.cpp +++ b/clang/lib/Analysis/UninitializedValues.cpp @@ -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()) diff --git a/clang/lib/Sema/AnalysisBasedWarnings.cpp b/clang/lib/Sema/AnalysisBasedWarnings.cpp index e71f2dfb866..3d00c7fe7e0 100644 --- a/clang/lib/Sema/AnalysisBasedWarnings.cpp +++ b/clang/lib/Sema/AnalysisBasedWarnings.cpp @@ -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; |