clang
6.0.0
|
#include "ClangSACheckers.h"
#include "InterCheckerAPI.h"
#include "clang/AST/Attr.h"
#include "clang/AST/ParentMap.h"
#include "clang/Basic/SourceManager.h"
#include "clang/Basic/TargetInfo.h"
#include "clang/StaticAnalyzer/Core/BugReporter/BugType.h"
#include "clang/StaticAnalyzer/Core/BugReporter/CommonBugCategories.h"
#include "clang/StaticAnalyzer/Core/Checker.h"
#include "clang/StaticAnalyzer/Core/CheckerManager.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/StringExtras.h"
#include <climits>
#include <utility>
Go to the source code of this file.
Macros | |
#define | CASE(ID) case ID: OS << #ID; break; |
#define | REGISTER_CHECKER(name) |
Enumerations | |
enum | AllocationFamily |
enum | ReallocPairKind |
Functions | |
static QualType | getDeepPointeeType (QualType T) |
static bool | treatUnusedNewEscaped (const CXXNewExpr *NE) |
static bool | isKnownDeallocObjCMethodName (const ObjCMethodCall &Call) |
static Optional< bool > | getFreeWhenDoneArg (const ObjCMethodCall &Call) |
static bool | didPreviousFreeFail (ProgramStateRef State, SymbolRef Sym, SymbolRef &RetStatusSymbol) |
Checks if the previous call to free on the given symbol failed - if free failed, returns true. More... | |
static bool | retTrue (const RefState *RS) |
static bool | checkIfNewOrNewArrayFamily (const RefState *RS) |
static SymbolRef | findFailedReallocSymbol (ProgramStateRef currState, ProgramStateRef prevState) |
#define CASE | ( | ID | ) | case ID: OS << #ID; break; |
#define REGISTER_CHECKER | ( | name | ) |
Definition at line 2912 of file MallocChecker.cpp.
enum AllocationFamily |
Definition at line 42 of file MallocChecker.cpp.
enum ReallocPairKind |
Definition at line 128 of file MallocChecker.cpp.
|
static |
Definition at line 2727 of file MallocChecker.cpp.
References clang::ento::PSK_DirectEscapeOnCall, retTrue(), and State.
|
static |
Checks if the previous call to free on the given symbol failed - if free failed, returns true.
Also, returns the corresponding return value symbol.
Definition at line 1325 of file MallocChecker.cpp.
References clang::ento::ConditionTruthVal::isConstrainedTrue(), and clang::ento::ConstraintManager::isNull().
|
static |
Definition at line 2781 of file MallocChecker.cpp.
Definition at line 1017 of file MallocChecker.cpp.
References clang::Type::getPointeeType(), and clang::T.
Referenced by treatUnusedNewEscaped().
|
static |
Definition at line 1158 of file MallocChecker.cpp.
|
static |
Definition at line 1146 of file MallocChecker.cpp.
References clang::Selector::getNameForSlot(), and clang::ObjCMethodCall::getSelector().
|
static |
Definition at line 2723 of file MallocChecker.cpp.
Referenced by checkIfNewOrNewArrayFamily().
|
static |
Definition at line 1026 of file MallocChecker.cpp.
References clang::CXXNewExpr::getAllocatedType(), clang::Type::getAsCXXRecordDecl(), clang::CXXNewExpr::getConstructExpr(), clang::CXXConstructExpr::getConstructor(), getDeepPointeeType(), clang::CXXNewExpr::getNumPlacementArgs(), clang::Type::getPointeeType(), clang::QualType::isNull(), and clang::FunctionDecl::parameters().