diff options
Diffstat (limited to 'contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp')
| -rw-r--r-- | contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp | 21 | 
1 files changed, 14 insertions, 7 deletions
diff --git a/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp b/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp index 6478128ce954..2cdee8da375e 100644 --- a/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp +++ b/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp @@ -1,9 +1,8 @@  //=== StdLibraryFunctionsChecker.cpp - Model standard functions -*- C++ -*-===//  // -//                     The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception  //  //===----------------------------------------------------------------------===//  // @@ -225,7 +224,7 @@ class StdLibraryFunctionsChecker : public Checker<check::PostCall, eval::Call> {  public:    void checkPostCall(const CallEvent &Call, CheckerContext &C) const; -  bool evalCall(const CallExpr *CE, CheckerContext &C) const; +  bool evalCall(const CallEvent &Call, CheckerContext &C) const;  private:    Optional<FunctionSummaryTy> findFunctionSummary(const FunctionDecl *FD, @@ -368,12 +367,16 @@ void StdLibraryFunctionsChecker::checkPostCall(const CallEvent &Call,    }  } -bool StdLibraryFunctionsChecker::evalCall(const CallExpr *CE, +bool StdLibraryFunctionsChecker::evalCall(const CallEvent &Call,                                            CheckerContext &C) const { -  const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(CE->getCalleeDecl()); +  const auto *FD = dyn_cast_or_null<FunctionDecl>(Call.getDecl());    if (!FD)      return false; +  const auto *CE = dyn_cast_or_null<CallExpr>(Call.getOriginExpr()); +  if (!CE) +    return false; +    Optional<FunctionSummaryTy> FoundSummary = findFunctionSummary(FD, CE, C);    if (!FoundSummary)      return false; @@ -1056,3 +1059,7 @@ void ento::registerStdCLibraryFunctionsChecker(CheckerManager &mgr) {    // class, turning on different function summaries.    mgr.registerChecker<StdLibraryFunctionsChecker>();  } + +bool ento::shouldRegisterStdCLibraryFunctionsChecker(const LangOptions &LO) { +  return true; +}  | 
