forked from OSchip/llvm-project
Tidy up help text in Checkers.td, and rename StackAddrLeakChecker to StackAddrEscapeChecker.
llvm-svn: 126522
This commit is contained in:
parent
27fdf0feda
commit
5eb4b60734
|
@ -27,8 +27,8 @@ add_clang_library(clangStaticAnalyzerCheckers
|
|||
DebugCheckers.cpp
|
||||
DereferenceChecker.cpp
|
||||
DivZeroChecker.cpp
|
||||
ExprEngine.cpp
|
||||
ExperimentalChecks.cpp
|
||||
ExprEngine.cpp
|
||||
FixedAddressChecker.cpp
|
||||
IdempotentOperationChecker.cpp
|
||||
LLVMConventionsChecker.cpp
|
||||
|
@ -46,7 +46,7 @@ add_clang_library(clangStaticAnalyzerCheckers
|
|||
PthreadLockChecker.cpp
|
||||
ReturnPointerRangeChecker.cpp
|
||||
ReturnUndefChecker.cpp
|
||||
StackAddrLeakChecker.cpp
|
||||
StackAddrEscapeChecker.cpp
|
||||
StreamChecker.cpp
|
||||
UndefBranchChecker.cpp
|
||||
UndefCapturedBlockVarChecker.cpp
|
||||
|
|
|
@ -59,8 +59,8 @@ def ClassReleaseChecker : Checker<"ClassRelease">,
|
|||
HelpText<"Check for sending 'retain', 'release', or 'autorelease' directly to a Class">,
|
||||
DescFile<"BasicObjCFoundationChecks.cpp">;
|
||||
|
||||
def NSAutoreleasePoolChecker : Checker<"NSAutoreleasePool">,
|
||||
HelpText<"Warn for subpar uses of NSAutoreleasePool">,
|
||||
def NSAutoreleasePoolChecker : Checker<"NSAutoReleasePool">,
|
||||
HelpText<"Warn for subpar uses of NSAutoReleasePool">,
|
||||
DescFile<"NSAutoreleasePoolChecker.cpp">;
|
||||
|
||||
def ObjCMethSigsChecker : Checker<"MethodSigs">,
|
||||
|
@ -71,16 +71,16 @@ def ObjCUnusedIvarsChecker : Checker<"UnusedIvars">,
|
|||
HelpText<"Warn about private ivars that are never used">,
|
||||
DescFile<"ObjCUnusedIVarsChecker.cpp">;
|
||||
|
||||
}
|
||||
} // end "cocoa"
|
||||
|
||||
def StackAddrLeakChecker : Checker<"StackAddrLeak">,
|
||||
def StackAddrEscapeChecker : Checker<"StackAddrEscape">,
|
||||
InPackage<Core>,
|
||||
HelpText<"Check that addresses to stack memory are not leaked outside the function">,
|
||||
DescFile<"StackAddrLeakChecker.cpp">;
|
||||
HelpText<"Check that addresses to stack memory do not escape the function">,
|
||||
DescFile<"StackAddrEscapeChecker.cpp">;
|
||||
|
||||
def DeadStoresChecker : Checker<"DeadStores">,
|
||||
InPackage<Core>,
|
||||
HelpText<"Check for stores to dead variables">,
|
||||
HelpText<"Check for values stored to a variables that are never read afterwards">,
|
||||
DescFile<"DeadStoresChecker.cpp">;
|
||||
|
||||
def UnixAPIChecker : Checker<"API">,
|
||||
|
@ -90,12 +90,12 @@ def UnixAPIChecker : Checker<"API">,
|
|||
|
||||
def MacOSXAPIChecker : Checker<"API">,
|
||||
InPackage<MacOSX>,
|
||||
HelpText<"Check calls to various MacOSXAPIChecker">,
|
||||
HelpText<"Check for proper uses of various Mac OS X APIs">,
|
||||
DescFile<"MacOSXAPIChecker.cpp">;
|
||||
|
||||
def CFNumberCreateChecker : Checker<"CFNumber">,
|
||||
InPackage<MacOSX>,
|
||||
HelpText<"Check for CFNumberCreate">,
|
||||
HelpText<"Check for proper uses of CFNumberCreate">,
|
||||
DescFile<"BasicObjCFoundationChecks.cpp">;
|
||||
|
||||
def CFRetainReleaseChecker : Checker<"CFRetainRelease">,
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
//=== StackAddrLeakChecker.cpp ------------------------------------*- C++ -*--//
|
||||
//=== StackAddrEscapeChecker.cpp ----------------------------------*- C++ -*--//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
|
@ -24,7 +24,7 @@ using namespace clang;
|
|||
using namespace ento;
|
||||
|
||||
namespace {
|
||||
class StackAddrLeakChecker : public CheckerV2< check::PreStmt<ReturnStmt>,
|
||||
class StackAddrEscapeChecker : public CheckerV2< check::PreStmt<ReturnStmt>,
|
||||
check::EndPath > {
|
||||
mutable llvm::OwningPtr<BuiltinBug> BT_stackleak;
|
||||
mutable llvm::OwningPtr<BuiltinBug> BT_returnstack;
|
||||
|
@ -40,7 +40,7 @@ private:
|
|||
};
|
||||
}
|
||||
|
||||
SourceRange StackAddrLeakChecker::GenName(llvm::raw_ostream &os,
|
||||
SourceRange StackAddrEscapeChecker::GenName(llvm::raw_ostream &os,
|
||||
const MemRegion *R,
|
||||
SourceManager &SM) {
|
||||
// Get the base region, stripping away fields and elements.
|
||||
|
@ -83,7 +83,7 @@ SourceRange StackAddrLeakChecker::GenName(llvm::raw_ostream &os,
|
|||
return range;
|
||||
}
|
||||
|
||||
void StackAddrLeakChecker::EmitStackError(CheckerContext &C, const MemRegion *R,
|
||||
void StackAddrEscapeChecker::EmitStackError(CheckerContext &C, const MemRegion *R,
|
||||
const Expr *RetE) const {
|
||||
ExplodedNode *N = C.generateSink();
|
||||
|
||||
|
@ -107,7 +107,7 @@ void StackAddrLeakChecker::EmitStackError(CheckerContext &C, const MemRegion *R,
|
|||
C.EmitReport(report);
|
||||
}
|
||||
|
||||
void StackAddrLeakChecker::checkPreStmt(const ReturnStmt *RS,
|
||||
void StackAddrEscapeChecker::checkPreStmt(const ReturnStmt *RS,
|
||||
CheckerContext &C) const {
|
||||
|
||||
const Expr *RetE = RS->getRetValue();
|
||||
|
@ -126,7 +126,7 @@ void StackAddrLeakChecker::checkPreStmt(const ReturnStmt *RS,
|
|||
}
|
||||
}
|
||||
|
||||
void StackAddrLeakChecker::checkEndPath(EndOfFunctionNodeBuilder &B,
|
||||
void StackAddrEscapeChecker::checkEndPath(EndOfFunctionNodeBuilder &B,
|
||||
ExprEngine &Eng) const {
|
||||
|
||||
const GRState *state = B.getState();
|
||||
|
@ -200,6 +200,6 @@ void StackAddrLeakChecker::checkEndPath(EndOfFunctionNodeBuilder &B,
|
|||
}
|
||||
}
|
||||
|
||||
void ento::registerStackAddrLeakChecker(CheckerManager &mgr) {
|
||||
mgr.registerChecker<StackAddrLeakChecker>();
|
||||
void ento::registerStackAddrEscapeChecker(CheckerManager &mgr) {
|
||||
mgr.registerChecker<StackAddrEscapeChecker>();
|
||||
}
|
Loading…
Reference in New Issue