Skip to content

Commit b59b270

Browse files
committed
Reapply "[analyzer] Added valist related checkers."
Differential Revision: https://reviews.llvm.org/D15227 llvm-svn: 279427
1 parent 8738786 commit b59b270

File tree

6 files changed

+739
-0
lines changed

6 files changed

+739
-0
lines changed

clang/include/clang/StaticAnalyzer/Checkers/Checkers.td

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,9 @@ def Nullability : Package<"nullability">;
4343
def Cplusplus : Package<"cplusplus">;
4444
def CplusplusAlpha : Package<"cplusplus">, InPackage<Alpha>, Hidden;
4545

46+
def Valist : Package<"valist">;
47+
def ValistAlpha : Package<"valist">, InPackage<Alpha>, Hidden;
48+
4649
def DeadCode : Package<"deadcode">;
4750
def DeadCodeAlpha : Package<"deadcode">, InPackage<Alpha>, Hidden;
4851

@@ -267,6 +270,27 @@ def VirtualCallChecker : Checker<"VirtualCall">,
267270

268271
} // end: "alpha.cplusplus"
269272

273+
274+
//===----------------------------------------------------------------------===//
275+
// Valist checkers.
276+
//===----------------------------------------------------------------------===//
277+
278+
let ParentPackage = ValistAlpha in {
279+
280+
def UninitializedChecker : Checker<"Uninitialized">,
281+
HelpText<"Check for usages of uninitialized (or already released) va_lists.">,
282+
DescFile<"ValistChecker.cpp">;
283+
284+
def UnterminatedChecker : Checker<"Unterminated">,
285+
HelpText<"Check for va_lists which are not released by a va_end call.">,
286+
DescFile<"ValistChecker.cpp">;
287+
288+
def CopyToSelfChecker : Checker<"CopyToSelf">,
289+
HelpText<"Check for va_lists which are copied onto itself.">,
290+
DescFile<"ValistChecker.cpp">;
291+
292+
} // end : "alpha.valist"
293+
270294
//===----------------------------------------------------------------------===//
271295
// Deadcode checkers.
272296
//===----------------------------------------------------------------------===//

clang/lib/StaticAnalyzer/Checkers/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ add_clang_library(clangStaticAnalyzerCheckers
8181
UnreachableCodeChecker.cpp
8282
VforkChecker.cpp
8383
VLASizeChecker.cpp
84+
ValistChecker.cpp
8485
VirtualCallChecker.cpp
8586

8687
DEPENDS

0 commit comments

Comments
 (0)