diff options
Diffstat (limited to 'clang/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObjectChecker.cpp')
-rw-r--r-- | clang/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObjectChecker.cpp | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/clang/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObjectChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObjectChecker.cpp index 020df8a1bb8c7..4182b51c02b08 100644 --- a/clang/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObjectChecker.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObjectChecker.cpp @@ -541,14 +541,11 @@ static bool hasUnguardedAccess(const FieldDecl *FD, ProgramStateRef State) { auto FieldAccessM = memberExpr(hasDeclaration(equalsNode(FD))).bind("access"); auto AssertLikeM = callExpr(callee(functionDecl( - anyOf(hasName("exit"), hasName("panic"), hasName("error"), - hasName("Assert"), hasName("assert"), hasName("ziperr"), - hasName("assfail"), hasName("db_error"), hasName("__assert"), - hasName("__assert2"), hasName("_wassert"), hasName("__assert_rtn"), - hasName("__assert_fail"), hasName("dtrace_assfail"), - hasName("yy_fatal_error"), hasName("_XCAssertionFailureHandler"), - hasName("_DTAssertionFailureHandler"), - hasName("_TSAssertionFailureHandler"))))); + hasAnyName("exit", "panic", "error", "Assert", "assert", "ziperr", + "assfail", "db_error", "__assert", "__assert2", "_wassert", + "__assert_rtn", "__assert_fail", "dtrace_assfail", + "yy_fatal_error", "_XCAssertionFailureHandler", + "_DTAssertionFailureHandler", "_TSAssertionFailureHandler")))); auto NoReturnFuncM = callExpr(callee(functionDecl(isNoReturn()))); @@ -602,13 +599,13 @@ std::string clang::ento::getVariableName(const FieldDecl *Field) { llvm_unreachable("No other capture type is expected!"); } - return Field->getName(); + return std::string(Field->getName()); } void ento::registerUninitializedObjectChecker(CheckerManager &Mgr) { auto Chk = Mgr.registerChecker<UninitializedObjectChecker>(); - AnalyzerOptions &AnOpts = Mgr.getAnalyzerOptions(); + const AnalyzerOptions &AnOpts = Mgr.getAnalyzerOptions(); UninitObjCheckerOptions &ChOpts = Chk->Opts; ChOpts.IsPedantic = AnOpts.getCheckerBooleanOption(Chk, "Pedantic"); @@ -617,7 +614,7 @@ void ento::registerUninitializedObjectChecker(CheckerManager &Mgr) { ChOpts.CheckPointeeInitialization = AnOpts.getCheckerBooleanOption( Chk, "CheckPointeeInitialization"); ChOpts.IgnoredRecordsWithFieldPattern = - AnOpts.getCheckerStringOption(Chk, "IgnoreRecordsWithField"); + std::string(AnOpts.getCheckerStringOption(Chk, "IgnoreRecordsWithField")); ChOpts.IgnoreGuardedFields = AnOpts.getCheckerBooleanOption(Chk, "IgnoreGuardedFields"); @@ -628,6 +625,6 @@ void ento::registerUninitializedObjectChecker(CheckerManager &Mgr) { "\"" + ErrorMsg + "\""); } -bool ento::shouldRegisterUninitializedObjectChecker(const LangOptions &LO) { +bool ento::shouldRegisterUninitializedObjectChecker(const CheckerManager &mgr) { return true; } |