/Users/buildslave/jenkins/workspace/coverage/llvm-project/clang/include/clang/StaticAnalyzer/Core/Checker.h
Line | Count | Source |
1 | | //== Checker.h - Registration mechanism for checkers -------------*- C++ -*--=// |
2 | | // |
3 | | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
4 | | // See https://llvm.org/LICENSE.txt for license information. |
5 | | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
6 | | // |
7 | | //===----------------------------------------------------------------------===// |
8 | | // |
9 | | // This file defines Checker, used to create and register checkers. |
10 | | // |
11 | | //===----------------------------------------------------------------------===// |
12 | | |
13 | | #ifndef LLVM_CLANG_STATICANALYZER_CORE_CHECKER_H |
14 | | #define LLVM_CLANG_STATICANALYZER_CORE_CHECKER_H |
15 | | |
16 | | #include "clang/Analysis/ProgramPoint.h" |
17 | | #include "clang/Basic/LangOptions.h" |
18 | | #include "clang/StaticAnalyzer/Core/CheckerManager.h" |
19 | | #include "clang/StaticAnalyzer/Core/PathSensitive/SVals.h" |
20 | | #include "llvm/Support/Casting.h" |
21 | | |
22 | | namespace clang { |
23 | | namespace ento { |
24 | | class BugReporter; |
25 | | |
26 | | namespace check { |
27 | | |
28 | | template <typename DECL> |
29 | | class ASTDecl { |
30 | | template <typename CHECKER> |
31 | | static void _checkDecl(void *checker, const Decl *D, AnalysisManager& mgr, |
32 | 793 | BugReporter &BR) { |
33 | 793 | ((const CHECKER *)checker)->checkASTDecl(cast<DECL>(D), mgr, BR); |
34 | 793 | } CheckObjCDealloc.cpp:void clang::ento::check::ASTDecl<clang::ObjCImplementationDecl>::_checkDecl<(anonymous namespace)::ObjCDeallocChecker>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 32 | 128 | BugReporter &BR) { | 33 | 128 | ((const CHECKER *)checker)->checkASTDecl(cast<DECL>(D), mgr, BR); | 34 | 128 | } |
CheckObjCInstMethSignature.cpp:void clang::ento::check::ASTDecl<clang::ObjCImplementationDecl>::_checkDecl<(anonymous namespace)::ObjCMethSigsChecker>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 32 | 15 | BugReporter &BR) { | 33 | 15 | ((const CHECKER *)checker)->checkASTDecl(cast<DECL>(D), mgr, BR); | 34 | 15 | } |
Unexecuted instantiation: DebugCheckers.cpp:void clang::ento::check::ASTDecl<clang::TranslationUnitDecl>::_checkDecl<(anonymous namespace)::CallGraphViewer>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) DebugCheckers.cpp:void clang::ento::check::ASTDecl<clang::TranslationUnitDecl>::_checkDecl<(anonymous namespace)::CallGraphDumper>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 32 | 3 | BugReporter &BR) { | 33 | 3 | ((const CHECKER *)checker)->checkASTDecl(cast<DECL>(D), mgr, BR); | 34 | 3 | } |
DirectIvarAssignment.cpp:void clang::ento::check::ASTDecl<clang::ObjCImplementationDecl>::_checkDecl<(anonymous namespace)::DirectIvarAssignment>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 32 | 2 | BugReporter &BR) { | 33 | 2 | ((const CHECKER *)checker)->checkASTDecl(cast<DECL>(D), mgr, BR); | 34 | 2 | } |
ErrnoModeling.cpp:void clang::ento::check::ASTDecl<clang::TranslationUnitDecl>::_checkDecl<(anonymous namespace)::ErrnoModeling>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 32 | 53 | BugReporter &BR) { | 33 | 53 | ((const CHECKER *)checker)->checkASTDecl(cast<DECL>(D), mgr, BR); | 34 | 53 | } |
IvarInvalidationChecker.cpp:void clang::ento::check::ASTDecl<clang::ObjCImplementationDecl>::_checkDecl<(anonymous namespace)::IvarInvalidationChecker>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 32 | 28 | BugReporter &BR) { | 33 | 28 | ((const CHECKER *)checker)->checkASTDecl(cast<DECL>(D), mgr, BR); | 34 | 28 | } |
LLVMConventionsChecker.cpp:void clang::ento::check::ASTDecl<clang::CXXRecordDecl>::_checkDecl<(anonymous namespace)::LLVMConventionsChecker>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 32 | 14 | BugReporter &BR) { | 33 | 14 | ((const CHECKER *)checker)->checkASTDecl(cast<DECL>(D), mgr, BR); | 34 | 14 | } |
LocalizationChecker.cpp:void clang::ento::check::ASTDecl<clang::ObjCImplementationDecl>::_checkDecl<(anonymous namespace)::EmptyLocalizationContextChecker>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 32 | 2 | BugReporter &BR) { | 33 | 2 | ((const CHECKER *)checker)->checkASTDecl(cast<DECL>(D), mgr, BR); | 34 | 2 | } |
NSErrorChecker.cpp:void clang::ento::check::ASTDecl<clang::ObjCMethodDecl>::_checkDecl<(anonymous namespace)::NSErrorMethodChecker>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 32 | 99 | BugReporter &BR) { | 33 | 99 | ((const CHECKER *)checker)->checkASTDecl(cast<DECL>(D), mgr, BR); | 34 | 99 | } |
NSErrorChecker.cpp:void clang::ento::check::ASTDecl<clang::FunctionDecl>::_checkDecl<(anonymous namespace)::CFErrorFunctionChecker>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 32 | 384 | BugReporter &BR) { | 33 | 384 | ((const CHECKER *)checker)->checkASTDecl(cast<DECL>(D), mgr, BR); | 34 | 384 | } |
ObjCMissingSuperCallChecker.cpp:void clang::ento::check::ASTDecl<clang::ObjCImplementationDecl>::_checkDecl<(anonymous namespace)::ObjCSuperCallChecker>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 32 | 18 | BugReporter &BR) { | 33 | 18 | ((const CHECKER *)checker)->checkASTDecl(cast<DECL>(D), mgr, BR); | 34 | 18 | } |
ObjCPropertyChecker.cpp:void clang::ento::check::ASTDecl<clang::ObjCPropertyDecl>::_checkDecl<(anonymous namespace)::ObjCPropertyChecker>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 32 | 19 | BugReporter &BR) { | 33 | 19 | ((const CHECKER *)checker)->checkASTDecl(cast<DECL>(D), mgr, BR); | 34 | 19 | } |
ObjCUnusedIVarsChecker.cpp:void clang::ento::check::ASTDecl<clang::ObjCImplementationDecl>::_checkDecl<(anonymous namespace)::ObjCUnusedIvarsChecker>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 32 | 15 | BugReporter &BR) { | 33 | 15 | ((const CHECKER *)checker)->checkASTDecl(cast<DECL>(D), mgr, BR); | 34 | 15 | } |
PaddingChecker.cpp:void clang::ento::check::ASTDecl<clang::TranslationUnitDecl>::_checkDecl<(anonymous namespace)::PaddingChecker>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 32 | 6 | BugReporter &BR) { | 33 | 6 | ((const CHECKER *)checker)->checkASTDecl(cast<DECL>(D), mgr, BR); | 34 | 6 | } |
NoUncountedMembersChecker.cpp:void clang::ento::check::ASTDecl<clang::TranslationUnitDecl>::_checkDecl<(anonymous namespace)::NoUncountedMemberChecker>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 32 | 2 | BugReporter &BR) { | 33 | 2 | ((const CHECKER *)checker)->checkASTDecl(cast<DECL>(D), mgr, BR); | 34 | 2 | } |
RefCntblBaseVirtualDtorChecker.cpp:void clang::ento::check::ASTDecl<clang::TranslationUnitDecl>::_checkDecl<(anonymous namespace)::RefCntblBaseVirtualDtorChecker>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 32 | 2 | BugReporter &BR) { | 33 | 2 | ((const CHECKER *)checker)->checkASTDecl(cast<DECL>(D), mgr, BR); | 34 | 2 | } |
UncountedCallArgsChecker.cpp:void clang::ento::check::ASTDecl<clang::TranslationUnitDecl>::_checkDecl<(anonymous namespace)::UncountedCallArgsChecker>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 32 | 1 | BugReporter &BR) { | 33 | 1 | ((const CHECKER *)checker)->checkASTDecl(cast<DECL>(D), mgr, BR); | 34 | 1 | } |
UncountedLambdaCapturesChecker.cpp:void clang::ento::check::ASTDecl<clang::TranslationUnitDecl>::_checkDecl<(anonymous namespace)::UncountedLambdaCapturesChecker>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 32 | 1 | BugReporter &BR) { | 33 | 1 | ((const CHECKER *)checker)->checkASTDecl(cast<DECL>(D), mgr, BR); | 34 | 1 | } |
UncountedLocalVarsChecker.cpp:void clang::ento::check::ASTDecl<clang::TranslationUnitDecl>::_checkDecl<(anonymous namespace)::UncountedLocalVarsChecker>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 32 | 1 | BugReporter &BR) { | 33 | 1 | ((const CHECKER *)checker)->checkASTDecl(cast<DECL>(D), mgr, BR); | 34 | 1 | } |
|
35 | | |
36 | 2.16k | static bool _handlesDecl(const Decl *D) { |
37 | 2.16k | return isa<DECL>(D); |
38 | 2.16k | } clang::ento::check::ASTDecl<clang::ObjCImplementationDecl>::_handlesDecl(clang::Decl const*) Line | Count | Source | 36 | 1.08k | static bool _handlesDecl(const Decl *D) { | 37 | 1.08k | return isa<DECL>(D); | 38 | 1.08k | } |
clang::ento::check::ASTDecl<clang::TranslationUnitDecl>::_handlesDecl(clang::Decl const*) Line | Count | Source | 36 | 322 | static bool _handlesDecl(const Decl *D) { | 37 | 322 | return isa<DECL>(D); | 38 | 322 | } |
clang::ento::check::ASTDecl<clang::CXXRecordDecl>::_handlesDecl(clang::Decl const*) Line | Count | Source | 36 | 16 | static bool _handlesDecl(const Decl *D) { | 37 | 16 | return isa<DECL>(D); | 38 | 16 | } |
clang::ento::check::ASTDecl<clang::ObjCMethodDecl>::_handlesDecl(clang::Decl const*) Line | Count | Source | 36 | 245 | static bool _handlesDecl(const Decl *D) { | 37 | 245 | return isa<DECL>(D); | 38 | 245 | } |
clang::ento::check::ASTDecl<clang::FunctionDecl>::_handlesDecl(clang::Decl const*) Line | Count | Source | 36 | 253 | static bool _handlesDecl(const Decl *D) { | 37 | 253 | return isa<DECL>(D); | 38 | 253 | } |
clang::ento::check::ASTDecl<clang::ObjCPropertyDecl>::_handlesDecl(clang::Decl const*) Line | Count | Source | 36 | 245 | static bool _handlesDecl(const Decl *D) { | 37 | 245 | return isa<DECL>(D); | 38 | 245 | } |
|
39 | | public: |
40 | | template <typename CHECKER> |
41 | 410 | static void _register(CHECKER *checker, CheckerManager &mgr) { |
42 | 410 | mgr._registerForDecl(CheckerManager::CheckDeclFunc(checker, |
43 | 410 | _checkDecl<CHECKER>), |
44 | 410 | _handlesDecl); |
45 | 410 | } CheckObjCDealloc.cpp:void clang::ento::check::ASTDecl<clang::ObjCImplementationDecl>::_register<(anonymous namespace)::ObjCDeallocChecker>((anonymous namespace)::ObjCDeallocChecker*, clang::ento::CheckerManager&) Line | Count | Source | 41 | 50 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 42 | 50 | mgr._registerForDecl(CheckerManager::CheckDeclFunc(checker, | 43 | 50 | _checkDecl<CHECKER>), | 44 | 50 | _handlesDecl); | 45 | 50 | } |
CheckObjCInstMethSignature.cpp:void clang::ento::check::ASTDecl<clang::ObjCImplementationDecl>::_register<(anonymous namespace)::ObjCMethSigsChecker>((anonymous namespace)::ObjCMethSigsChecker*, clang::ento::CheckerManager&) Line | Count | Source | 41 | 48 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 42 | 48 | mgr._registerForDecl(CheckerManager::CheckDeclFunc(checker, | 43 | 48 | _checkDecl<CHECKER>), | 44 | 48 | _handlesDecl); | 45 | 48 | } |
Unexecuted instantiation: DebugCheckers.cpp:void clang::ento::check::ASTDecl<clang::TranslationUnitDecl>::_register<(anonymous namespace)::CallGraphViewer>((anonymous namespace)::CallGraphViewer*, clang::ento::CheckerManager&) DebugCheckers.cpp:void clang::ento::check::ASTDecl<clang::TranslationUnitDecl>::_register<(anonymous namespace)::CallGraphDumper>((anonymous namespace)::CallGraphDumper*, clang::ento::CheckerManager&) Line | Count | Source | 41 | 3 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 42 | 3 | mgr._registerForDecl(CheckerManager::CheckDeclFunc(checker, | 43 | 3 | _checkDecl<CHECKER>), | 44 | 3 | _handlesDecl); | 45 | 3 | } |
DirectIvarAssignment.cpp:void clang::ento::check::ASTDecl<clang::ObjCImplementationDecl>::_register<(anonymous namespace)::DirectIvarAssignment>((anonymous namespace)::DirectIvarAssignment*, clang::ento::CheckerManager&) Line | Count | Source | 41 | 2 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 42 | 2 | mgr._registerForDecl(CheckerManager::CheckDeclFunc(checker, | 43 | 2 | _checkDecl<CHECKER>), | 44 | 2 | _handlesDecl); | 45 | 2 | } |
ErrnoModeling.cpp:void clang::ento::check::ASTDecl<clang::TranslationUnitDecl>::_register<(anonymous namespace)::ErrnoModeling>((anonymous namespace)::ErrnoModeling*, clang::ento::CheckerManager&) Line | Count | Source | 41 | 53 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 42 | 53 | mgr._registerForDecl(CheckerManager::CheckDeclFunc(checker, | 43 | 53 | _checkDecl<CHECKER>), | 44 | 53 | _handlesDecl); | 45 | 53 | } |
IvarInvalidationChecker.cpp:void clang::ento::check::ASTDecl<clang::ObjCImplementationDecl>::_register<(anonymous namespace)::IvarInvalidationChecker>((anonymous namespace)::IvarInvalidationChecker*, clang::ento::CheckerManager&) Line | Count | Source | 41 | 2 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 42 | 2 | mgr._registerForDecl(CheckerManager::CheckDeclFunc(checker, | 43 | 2 | _checkDecl<CHECKER>), | 44 | 2 | _handlesDecl); | 45 | 2 | } |
LLVMConventionsChecker.cpp:void clang::ento::check::ASTDecl<clang::CXXRecordDecl>::_register<(anonymous namespace)::LLVMConventionsChecker>((anonymous namespace)::LLVMConventionsChecker*, clang::ento::CheckerManager&) Line | Count | Source | 41 | 1 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 42 | 1 | mgr._registerForDecl(CheckerManager::CheckDeclFunc(checker, | 43 | 1 | _checkDecl<CHECKER>), | 44 | 1 | _handlesDecl); | 45 | 1 | } |
LocalizationChecker.cpp:void clang::ento::check::ASTDecl<clang::ObjCImplementationDecl>::_register<(anonymous namespace)::EmptyLocalizationContextChecker>((anonymous namespace)::EmptyLocalizationContextChecker*, clang::ento::CheckerManager&) Line | Count | Source | 41 | 1 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 42 | 1 | mgr._registerForDecl(CheckerManager::CheckDeclFunc(checker, | 43 | 1 | _checkDecl<CHECKER>), | 44 | 1 | _handlesDecl); | 45 | 1 | } |
NSErrorChecker.cpp:void clang::ento::check::ASTDecl<clang::ObjCMethodDecl>::_register<(anonymous namespace)::NSErrorMethodChecker>((anonymous namespace)::NSErrorMethodChecker*, clang::ento::CheckerManager&) Line | Count | Source | 41 | 47 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 42 | 47 | mgr._registerForDecl(CheckerManager::CheckDeclFunc(checker, | 43 | 47 | _checkDecl<CHECKER>), | 44 | 47 | _handlesDecl); | 45 | 47 | } |
NSErrorChecker.cpp:void clang::ento::check::ASTDecl<clang::FunctionDecl>::_register<(anonymous namespace)::CFErrorFunctionChecker>((anonymous namespace)::CFErrorFunctionChecker*, clang::ento::CheckerManager&) Line | Count | Source | 41 | 48 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 42 | 48 | mgr._registerForDecl(CheckerManager::CheckDeclFunc(checker, | 43 | 48 | _checkDecl<CHECKER>), | 44 | 48 | _handlesDecl); | 45 | 48 | } |
ObjCMissingSuperCallChecker.cpp:void clang::ento::check::ASTDecl<clang::ObjCImplementationDecl>::_register<(anonymous namespace)::ObjCSuperCallChecker>((anonymous namespace)::ObjCSuperCallChecker*, clang::ento::CheckerManager&) Line | Count | Source | 41 | 47 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 42 | 47 | mgr._registerForDecl(CheckerManager::CheckDeclFunc(checker, | 43 | 47 | _checkDecl<CHECKER>), | 44 | 47 | _handlesDecl); | 45 | 47 | } |
ObjCPropertyChecker.cpp:void clang::ento::check::ASTDecl<clang::ObjCPropertyDecl>::_register<(anonymous namespace)::ObjCPropertyChecker>((anonymous namespace)::ObjCPropertyChecker*, clang::ento::CheckerManager&) Line | Count | Source | 41 | 47 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 42 | 47 | mgr._registerForDecl(CheckerManager::CheckDeclFunc(checker, | 43 | 47 | _checkDecl<CHECKER>), | 44 | 47 | _handlesDecl); | 45 | 47 | } |
ObjCUnusedIVarsChecker.cpp:void clang::ento::check::ASTDecl<clang::ObjCImplementationDecl>::_register<(anonymous namespace)::ObjCUnusedIvarsChecker>((anonymous namespace)::ObjCUnusedIvarsChecker*, clang::ento::CheckerManager&) Line | Count | Source | 41 | 47 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 42 | 47 | mgr._registerForDecl(CheckerManager::CheckDeclFunc(checker, | 43 | 47 | _checkDecl<CHECKER>), | 44 | 47 | _handlesDecl); | 45 | 47 | } |
PaddingChecker.cpp:void clang::ento::check::ASTDecl<clang::TranslationUnitDecl>::_register<(anonymous namespace)::PaddingChecker>((anonymous namespace)::PaddingChecker*, clang::ento::CheckerManager&) Line | Count | Source | 41 | 7 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 42 | 7 | mgr._registerForDecl(CheckerManager::CheckDeclFunc(checker, | 43 | 7 | _checkDecl<CHECKER>), | 44 | 7 | _handlesDecl); | 45 | 7 | } |
NoUncountedMembersChecker.cpp:void clang::ento::check::ASTDecl<clang::TranslationUnitDecl>::_register<(anonymous namespace)::NoUncountedMemberChecker>((anonymous namespace)::NoUncountedMemberChecker*, clang::ento::CheckerManager&) Line | Count | Source | 41 | 2 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 42 | 2 | mgr._registerForDecl(CheckerManager::CheckDeclFunc(checker, | 43 | 2 | _checkDecl<CHECKER>), | 44 | 2 | _handlesDecl); | 45 | 2 | } |
RefCntblBaseVirtualDtorChecker.cpp:void clang::ento::check::ASTDecl<clang::TranslationUnitDecl>::_register<(anonymous namespace)::RefCntblBaseVirtualDtorChecker>((anonymous namespace)::RefCntblBaseVirtualDtorChecker*, clang::ento::CheckerManager&) Line | Count | Source | 41 | 2 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 42 | 2 | mgr._registerForDecl(CheckerManager::CheckDeclFunc(checker, | 43 | 2 | _checkDecl<CHECKER>), | 44 | 2 | _handlesDecl); | 45 | 2 | } |
UncountedCallArgsChecker.cpp:void clang::ento::check::ASTDecl<clang::TranslationUnitDecl>::_register<(anonymous namespace)::UncountedCallArgsChecker>((anonymous namespace)::UncountedCallArgsChecker*, clang::ento::CheckerManager&) Line | Count | Source | 41 | 1 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 42 | 1 | mgr._registerForDecl(CheckerManager::CheckDeclFunc(checker, | 43 | 1 | _checkDecl<CHECKER>), | 44 | 1 | _handlesDecl); | 45 | 1 | } |
UncountedLambdaCapturesChecker.cpp:void clang::ento::check::ASTDecl<clang::TranslationUnitDecl>::_register<(anonymous namespace)::UncountedLambdaCapturesChecker>((anonymous namespace)::UncountedLambdaCapturesChecker*, clang::ento::CheckerManager&) Line | Count | Source | 41 | 1 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 42 | 1 | mgr._registerForDecl(CheckerManager::CheckDeclFunc(checker, | 43 | 1 | _checkDecl<CHECKER>), | 44 | 1 | _handlesDecl); | 45 | 1 | } |
UncountedLocalVarsChecker.cpp:void clang::ento::check::ASTDecl<clang::TranslationUnitDecl>::_register<(anonymous namespace)::UncountedLocalVarsChecker>((anonymous namespace)::UncountedLocalVarsChecker*, clang::ento::CheckerManager&) Line | Count | Source | 41 | 1 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 42 | 1 | mgr._registerForDecl(CheckerManager::CheckDeclFunc(checker, | 43 | 1 | _checkDecl<CHECKER>), | 44 | 1 | _handlesDecl); | 45 | 1 | } |
|
46 | | }; |
47 | | |
48 | | class ASTCodeBody { |
49 | | template <typename CHECKER> |
50 | | static void _checkBody(void *checker, const Decl *D, AnalysisManager& mgr, |
51 | 8.72k | BugReporter &BR) { |
52 | 8.72k | ((const CHECKER *)checker)->checkASTCodeBody(D, mgr, BR); |
53 | 8.72k | } CStringSyntaxChecker.cpp:void clang::ento::check::ASTCodeBody::_checkBody<(anonymous namespace)::CStringSyntaxChecker>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 51 | 1.75k | BugReporter &BR) { | 52 | 1.75k | ((const CHECKER *)checker)->checkASTCodeBody(D, mgr, BR); | 53 | 1.75k | } |
CastToStructChecker.cpp:void clang::ento::check::ASTCodeBody::_checkBody<(anonymous namespace)::CastToStructChecker>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 51 | 1.30k | BugReporter &BR) { | 52 | 1.30k | ((const CHECKER *)checker)->checkASTCodeBody(D, mgr, BR); | 53 | 1.30k | } |
CheckSecuritySyntaxOnly.cpp:void clang::ento::check::ASTCodeBody::_checkBody<(anonymous namespace)::SecuritySyntaxChecker>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 51 | 220 | BugReporter &BR) { | 52 | 220 | ((const CHECKER *)checker)->checkASTCodeBody(D, mgr, BR); | 53 | 220 | } |
CheckSizeofPointer.cpp:void clang::ento::check::ASTCodeBody::_checkBody<(anonymous namespace)::SizeofPointerChecker>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 51 | 1.06k | BugReporter &BR) { | 52 | 1.06k | ((const CHECKER *)checker)->checkASTCodeBody(D, mgr, BR); | 53 | 1.06k | } |
CloneChecker.cpp:void clang::ento::check::ASTCodeBody::_checkBody<(anonymous namespace)::CloneChecker>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 51 | 93 | BugReporter &BR) { | 52 | 93 | ((const CHECKER *)checker)->checkASTCodeBody(D, mgr, BR); | 53 | 93 | } |
DeadStoresChecker.cpp:void clang::ento::check::ASTCodeBody::_checkBody<(anonymous namespace)::DeadStoresChecker>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 51 | 540 | BugReporter &BR) { | 52 | 540 | ((const CHECKER *)checker)->checkASTCodeBody(D, mgr, BR); | 53 | 540 | } |
DebugCheckers.cpp:void clang::ento::check::ASTCodeBody::_checkBody<(anonymous namespace)::DominatorsTreeDumper>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 51 | 9 | BugReporter &BR) { | 52 | 9 | ((const CHECKER *)checker)->checkASTCodeBody(D, mgr, BR); | 53 | 9 | } |
DebugCheckers.cpp:void clang::ento::check::ASTCodeBody::_checkBody<(anonymous namespace)::PostDominatorsTreeDumper>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 51 | 9 | BugReporter &BR) { | 52 | 9 | ((const CHECKER *)checker)->checkASTCodeBody(D, mgr, BR); | 53 | 9 | } |
DebugCheckers.cpp:void clang::ento::check::ASTCodeBody::_checkBody<(anonymous namespace)::ControlDependencyTreeDumper>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 51 | 9 | BugReporter &BR) { | 52 | 9 | ((const CHECKER *)checker)->checkASTCodeBody(D, mgr, BR); | 53 | 9 | } |
DebugCheckers.cpp:void clang::ento::check::ASTCodeBody::_checkBody<(anonymous namespace)::LiveVariablesDumper>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 51 | 2 | BugReporter &BR) { | 52 | 2 | ((const CHECKER *)checker)->checkASTCodeBody(D, mgr, BR); | 53 | 2 | } |
DebugCheckers.cpp:void clang::ento::check::ASTCodeBody::_checkBody<(anonymous namespace)::LiveExpressionsDumper>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 51 | 12 | BugReporter &BR) { | 52 | 12 | ((const CHECKER *)checker)->checkASTCodeBody(D, mgr, BR); | 53 | 12 | } |
Unexecuted instantiation: DebugCheckers.cpp:void clang::ento::check::ASTCodeBody::_checkBody<(anonymous namespace)::CFGViewer>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) DebugCheckers.cpp:void clang::ento::check::ASTCodeBody::_checkBody<(anonymous namespace)::CFGDumper>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 51 | 789 | BugReporter &BR) { | 52 | 789 | ((const CHECKER *)checker)->checkASTCodeBody(D, mgr, BR); | 53 | 789 | } |
GCDAntipatternChecker.cpp:void clang::ento::check::ASTCodeBody::_checkBody<(anonymous namespace)::GCDAntipatternChecker>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 51 | 79 | BugReporter &BR) { | 52 | 79 | ((const CHECKER *)checker)->checkASTCodeBody(D, mgr, BR); | 53 | 79 | } |
IdenticalExprChecker.cpp:void clang::ento::check::ASTCodeBody::_checkBody<(anonymous namespace)::FindIdenticalExprChecker>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 51 | 1.28k | BugReporter &BR) { | 52 | 1.28k | ((const CHECKER *)checker)->checkASTCodeBody(D, mgr, BR); | 53 | 1.28k | } |
LLVMConventionsChecker.cpp:void clang::ento::check::ASTCodeBody::_checkBody<(anonymous namespace)::LLVMConventionsChecker>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 51 | 5 | BugReporter &BR) { | 52 | 5 | ((const CHECKER *)checker)->checkASTCodeBody(D, mgr, BR); | 53 | 5 | } |
LocalizationChecker.cpp:void clang::ento::check::ASTCodeBody::_checkBody<(anonymous namespace)::PluralMisuseChecker>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 51 | 14 | BugReporter &BR) { | 52 | 14 | ((const CHECKER *)checker)->checkASTCodeBody(D, mgr, BR); | 53 | 14 | } |
MallocOverflowSecurityChecker.cpp:void clang::ento::check::ASTCodeBody::_checkBody<(anonymous namespace)::MallocOverflowSecurityChecker>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 51 | 24 | BugReporter &BR) { | 52 | 24 | ((const CHECKER *)checker)->checkASTCodeBody(D, mgr, BR); | 53 | 24 | } |
MallocSizeofChecker.cpp:void clang::ento::check::ASTCodeBody::_checkBody<(anonymous namespace)::MallocSizeofChecker>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 51 | 493 | BugReporter &BR) { | 52 | 493 | ((const CHECKER *)checker)->checkASTCodeBody(D, mgr, BR); | 53 | 493 | } |
NumberObjectConversionChecker.cpp:void clang::ento::check::ASTCodeBody::_checkBody<(anonymous namespace)::NumberObjectConversionChecker>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 51 | 276 | BugReporter &BR) { | 52 | 276 | ((const CHECKER *)checker)->checkASTCodeBody(D, mgr, BR); | 53 | 276 | } |
ObjCAutoreleaseWriteChecker.cpp:void clang::ento::check::ASTCodeBody::_checkBody<(anonymous namespace)::ObjCAutoreleaseWriteChecker>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 51 | 267 | BugReporter &BR) { | 52 | 267 | ((const CHECKER *)checker)->checkASTCodeBody(D, mgr, BR); | 53 | 267 | } |
ObjCContainersASTChecker.cpp:void clang::ento::check::ASTCodeBody::_checkBody<(anonymous namespace)::ObjCContainersASTChecker>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 51 | 234 | BugReporter &BR) { | 52 | 234 | ((const CHECKER *)checker)->checkASTCodeBody(D, mgr, BR); | 53 | 234 | } |
OSObjectCStyleCast.cpp:void clang::ento::check::ASTCodeBody::_checkBody<(anonymous namespace)::OSObjectCStyleCastChecker>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 51 | 11 | BugReporter &BR) { | 52 | 11 | ((const CHECKER *)checker)->checkASTCodeBody(D, mgr, BR); | 53 | 11 | } |
PointerIterationChecker.cpp:void clang::ento::check::ASTCodeBody::_checkBody<(anonymous namespace)::PointerIterationChecker>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 51 | 1 | BugReporter &BR) { | 52 | 1 | ((const CHECKER *)checker)->checkASTCodeBody(D, mgr, BR); | 53 | 1 | } |
PointerSortingChecker.cpp:void clang::ento::check::ASTCodeBody::_checkBody<(anonymous namespace)::PointerSortingChecker>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 51 | 3 | BugReporter &BR) { | 52 | 3 | ((const CHECKER *)checker)->checkASTCodeBody(D, mgr, BR); | 53 | 3 | } |
RunLoopAutoreleaseLeakChecker.cpp:void clang::ento::check::ASTCodeBody::_checkBody<(anonymous namespace)::RunLoopAutoreleaseLeakChecker>(void*, clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 51 | 235 | BugReporter &BR) { | 52 | 235 | ((const CHECKER *)checker)->checkASTCodeBody(D, mgr, BR); | 53 | 235 | } |
|
54 | | |
55 | | public: |
56 | | template <typename CHECKER> |
57 | 789 | static void _register(CHECKER *checker, CheckerManager &mgr) { |
58 | 789 | mgr._registerForBody(CheckerManager::CheckDeclFunc(checker, |
59 | 789 | _checkBody<CHECKER>)); |
60 | 789 | } CStringSyntaxChecker.cpp:void clang::ento::check::ASTCodeBody::_register<(anonymous namespace)::CStringSyntaxChecker>((anonymous namespace)::CStringSyntaxChecker*, clang::ento::CheckerManager&) Line | Count | Source | 57 | 94 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 58 | 94 | mgr._registerForBody(CheckerManager::CheckDeclFunc(checker, | 59 | 94 | _checkBody<CHECKER>)); | 60 | 94 | } |
CastToStructChecker.cpp:void clang::ento::check::ASTCodeBody::_register<(anonymous namespace)::CastToStructChecker>((anonymous namespace)::CastToStructChecker*, clang::ento::CheckerManager&) Line | Count | Source | 57 | 76 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 58 | 76 | mgr._registerForBody(CheckerManager::CheckDeclFunc(checker, | 59 | 76 | _checkBody<CHECKER>)); | 60 | 76 | } |
CheckSecuritySyntaxOnly.cpp:void clang::ento::check::ASTCodeBody::_register<(anonymous namespace)::SecuritySyntaxChecker>((anonymous namespace)::SecuritySyntaxChecker*, clang::ento::CheckerManager&) Line | Count | Source | 57 | 54 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 58 | 54 | mgr._registerForBody(CheckerManager::CheckDeclFunc(checker, | 59 | 54 | _checkBody<CHECKER>)); | 60 | 54 | } |
CheckSizeofPointer.cpp:void clang::ento::check::ASTCodeBody::_register<(anonymous namespace)::SizeofPointerChecker>((anonymous namespace)::SizeofPointerChecker*, clang::ento::CheckerManager&) Line | Count | Source | 57 | 71 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 58 | 71 | mgr._registerForBody(CheckerManager::CheckDeclFunc(checker, | 59 | 71 | _checkBody<CHECKER>)); | 60 | 71 | } |
CloneChecker.cpp:void clang::ento::check::ASTCodeBody::_register<(anonymous namespace)::CloneChecker>((anonymous namespace)::CloneChecker*, clang::ento::CheckerManager&) Line | Count | Source | 57 | 28 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 58 | 28 | mgr._registerForBody(CheckerManager::CheckDeclFunc(checker, | 59 | 28 | _checkBody<CHECKER>)); | 60 | 28 | } |
DeadStoresChecker.cpp:void clang::ento::check::ASTCodeBody::_register<(anonymous namespace)::DeadStoresChecker>((anonymous namespace)::DeadStoresChecker*, clang::ento::CheckerManager&) Line | Count | Source | 57 | 58 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 58 | 58 | mgr._registerForBody(CheckerManager::CheckDeclFunc(checker, | 59 | 58 | _checkBody<CHECKER>)); | 60 | 58 | } |
DebugCheckers.cpp:void clang::ento::check::ASTCodeBody::_register<(anonymous namespace)::DominatorsTreeDumper>((anonymous namespace)::DominatorsTreeDumper*, clang::ento::CheckerManager&) Line | Count | Source | 57 | 3 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 58 | 3 | mgr._registerForBody(CheckerManager::CheckDeclFunc(checker, | 59 | 3 | _checkBody<CHECKER>)); | 60 | 3 | } |
DebugCheckers.cpp:void clang::ento::check::ASTCodeBody::_register<(anonymous namespace)::PostDominatorsTreeDumper>((anonymous namespace)::PostDominatorsTreeDumper*, clang::ento::CheckerManager&) Line | Count | Source | 57 | 3 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 58 | 3 | mgr._registerForBody(CheckerManager::CheckDeclFunc(checker, | 59 | 3 | _checkBody<CHECKER>)); | 60 | 3 | } |
DebugCheckers.cpp:void clang::ento::check::ASTCodeBody::_register<(anonymous namespace)::ControlDependencyTreeDumper>((anonymous namespace)::ControlDependencyTreeDumper*, clang::ento::CheckerManager&) Line | Count | Source | 57 | 3 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 58 | 3 | mgr._registerForBody(CheckerManager::CheckDeclFunc(checker, | 59 | 3 | _checkBody<CHECKER>)); | 60 | 3 | } |
DebugCheckers.cpp:void clang::ento::check::ASTCodeBody::_register<(anonymous namespace)::LiveVariablesDumper>((anonymous namespace)::LiveVariablesDumper*, clang::ento::CheckerManager&) Line | Count | Source | 57 | 1 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 58 | 1 | mgr._registerForBody(CheckerManager::CheckDeclFunc(checker, | 59 | 1 | _checkBody<CHECKER>)); | 60 | 1 | } |
DebugCheckers.cpp:void clang::ento::check::ASTCodeBody::_register<(anonymous namespace)::LiveExpressionsDumper>((anonymous namespace)::LiveExpressionsDumper*, clang::ento::CheckerManager&) Line | Count | Source | 57 | 3 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 58 | 3 | mgr._registerForBody(CheckerManager::CheckDeclFunc(checker, | 59 | 3 | _checkBody<CHECKER>)); | 60 | 3 | } |
Unexecuted instantiation: DebugCheckers.cpp:void clang::ento::check::ASTCodeBody::_register<(anonymous namespace)::CFGViewer>((anonymous namespace)::CFGViewer*, clang::ento::CheckerManager&) DebugCheckers.cpp:void clang::ento::check::ASTCodeBody::_register<(anonymous namespace)::CFGDumper>((anonymous namespace)::CFGDumper*, clang::ento::CheckerManager&) Line | Count | Source | 57 | 39 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 58 | 39 | mgr._registerForBody(CheckerManager::CheckDeclFunc(checker, | 59 | 39 | _checkBody<CHECKER>)); | 60 | 39 | } |
GCDAntipatternChecker.cpp:void clang::ento::check::ASTCodeBody::_register<(anonymous namespace)::GCDAntipatternChecker>((anonymous namespace)::GCDAntipatternChecker*, clang::ento::CheckerManager&) Line | Count | Source | 57 | 6 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 58 | 6 | mgr._registerForBody(CheckerManager::CheckDeclFunc(checker, | 59 | 6 | _checkBody<CHECKER>)); | 60 | 6 | } |
IdenticalExprChecker.cpp:void clang::ento::check::ASTCodeBody::_register<(anonymous namespace)::FindIdenticalExprChecker>((anonymous namespace)::FindIdenticalExprChecker*, clang::ento::CheckerManager&) Line | Count | Source | 57 | 71 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 58 | 71 | mgr._registerForBody(CheckerManager::CheckDeclFunc(checker, | 59 | 71 | _checkBody<CHECKER>)); | 60 | 71 | } |
LLVMConventionsChecker.cpp:void clang::ento::check::ASTCodeBody::_register<(anonymous namespace)::LLVMConventionsChecker>((anonymous namespace)::LLVMConventionsChecker*, clang::ento::CheckerManager&) Line | Count | Source | 57 | 1 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 58 | 1 | mgr._registerForBody(CheckerManager::CheckDeclFunc(checker, | 59 | 1 | _checkBody<CHECKER>)); | 60 | 1 | } |
LocalizationChecker.cpp:void clang::ento::check::ASTCodeBody::_register<(anonymous namespace)::PluralMisuseChecker>((anonymous namespace)::PluralMisuseChecker*, clang::ento::CheckerManager&) Line | Count | Source | 57 | 1 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 58 | 1 | mgr._registerForBody(CheckerManager::CheckDeclFunc(checker, | 59 | 1 | _checkBody<CHECKER>)); | 60 | 1 | } |
MallocOverflowSecurityChecker.cpp:void clang::ento::check::ASTCodeBody::_register<(anonymous namespace)::MallocOverflowSecurityChecker>((anonymous namespace)::MallocOverflowSecurityChecker*, clang::ento::CheckerManager&) Line | Count | Source | 57 | 4 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 58 | 4 | mgr._registerForBody(CheckerManager::CheckDeclFunc(checker, | 59 | 4 | _checkBody<CHECKER>)); | 60 | 4 | } |
MallocSizeofChecker.cpp:void clang::ento::check::ASTCodeBody::_register<(anonymous namespace)::MallocSizeofChecker>((anonymous namespace)::MallocSizeofChecker*, clang::ento::CheckerManager&) Line | Count | Source | 57 | 67 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 58 | 67 | mgr._registerForBody(CheckerManager::CheckDeclFunc(checker, | 59 | 67 | _checkBody<CHECKER>)); | 60 | 67 | } |
NumberObjectConversionChecker.cpp:void clang::ento::check::ASTCodeBody::_register<(anonymous namespace)::NumberObjectConversionChecker>((anonymous namespace)::NumberObjectConversionChecker*, clang::ento::CheckerManager&) Line | Count | Source | 57 | 55 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 58 | 55 | mgr._registerForBody(CheckerManager::CheckDeclFunc(checker, | 59 | 55 | _checkBody<CHECKER>)); | 60 | 55 | } |
ObjCAutoreleaseWriteChecker.cpp:void clang::ento::check::ASTCodeBody::_register<(anonymous namespace)::ObjCAutoreleaseWriteChecker>((anonymous namespace)::ObjCAutoreleaseWriteChecker*, clang::ento::CheckerManager&) Line | Count | Source | 57 | 48 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 58 | 48 | mgr._registerForBody(CheckerManager::CheckDeclFunc(checker, | 59 | 48 | _checkBody<CHECKER>)); | 60 | 48 | } |
ObjCContainersASTChecker.cpp:void clang::ento::check::ASTCodeBody::_register<(anonymous namespace)::ObjCContainersASTChecker>((anonymous namespace)::ObjCContainersASTChecker*, clang::ento::CheckerManager&) Line | Count | Source | 57 | 48 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 58 | 48 | mgr._registerForBody(CheckerManager::CheckDeclFunc(checker, | 59 | 48 | _checkBody<CHECKER>)); | 60 | 48 | } |
OSObjectCStyleCast.cpp:void clang::ento::check::ASTCodeBody::_register<(anonymous namespace)::OSObjectCStyleCastChecker>((anonymous namespace)::OSObjectCStyleCastChecker*, clang::ento::CheckerManager&) Line | Count | Source | 57 | 1 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 58 | 1 | mgr._registerForBody(CheckerManager::CheckDeclFunc(checker, | 59 | 1 | _checkBody<CHECKER>)); | 60 | 1 | } |
PointerIterationChecker.cpp:void clang::ento::check::ASTCodeBody::_register<(anonymous namespace)::PointerIterationChecker>((anonymous namespace)::PointerIterationChecker*, clang::ento::CheckerManager&) Line | Count | Source | 57 | 1 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 58 | 1 | mgr._registerForBody(CheckerManager::CheckDeclFunc(checker, | 59 | 1 | _checkBody<CHECKER>)); | 60 | 1 | } |
PointerSortingChecker.cpp:void clang::ento::check::ASTCodeBody::_register<(anonymous namespace)::PointerSortingChecker>((anonymous namespace)::PointerSortingChecker*, clang::ento::CheckerManager&) Line | Count | Source | 57 | 1 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 58 | 1 | mgr._registerForBody(CheckerManager::CheckDeclFunc(checker, | 59 | 1 | _checkBody<CHECKER>)); | 60 | 1 | } |
RunLoopAutoreleaseLeakChecker.cpp:void clang::ento::check::ASTCodeBody::_register<(anonymous namespace)::RunLoopAutoreleaseLeakChecker>((anonymous namespace)::RunLoopAutoreleaseLeakChecker*, clang::ento::CheckerManager&) Line | Count | Source | 57 | 52 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 58 | 52 | mgr._registerForBody(CheckerManager::CheckDeclFunc(checker, | 59 | 52 | _checkBody<CHECKER>)); | 60 | 52 | } |
|
61 | | }; |
62 | | |
63 | | class EndOfTranslationUnit { |
64 | | template <typename CHECKER> |
65 | | static void _checkEndOfTranslationUnit(void *checker, |
66 | | const TranslationUnitDecl *TU, |
67 | | AnalysisManager& mgr, |
68 | 32 | BugReporter &BR) { |
69 | 32 | ((const CHECKER *)checker)->checkEndOfTranslationUnit(TU, mgr, BR); |
70 | 32 | } CloneChecker.cpp:void clang::ento::check::EndOfTranslationUnit::_checkEndOfTranslationUnit<(anonymous namespace)::CloneChecker>(void*, clang::TranslationUnitDecl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 68 | 28 | BugReporter &BR) { | 69 | 28 | ((const CHECKER *)checker)->checkEndOfTranslationUnit(TU, mgr, BR); | 70 | 28 | } |
DebugCheckers.cpp:void clang::ento::check::EndOfTranslationUnit::_checkEndOfTranslationUnit<(anonymous namespace)::ConfigDumper>(void*, clang::TranslationUnitDecl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) Line | Count | Source | 68 | 4 | BugReporter &BR) { | 69 | 4 | ((const CHECKER *)checker)->checkEndOfTranslationUnit(TU, mgr, BR); | 70 | 4 | } |
|
71 | | |
72 | | public: |
73 | | template <typename CHECKER> |
74 | 32 | static void _register(CHECKER *checker, CheckerManager &mgr){ |
75 | 32 | mgr._registerForEndOfTranslationUnit( |
76 | 32 | CheckerManager::CheckEndOfTranslationUnit(checker, |
77 | 32 | _checkEndOfTranslationUnit<CHECKER>)); |
78 | 32 | } CloneChecker.cpp:void clang::ento::check::EndOfTranslationUnit::_register<(anonymous namespace)::CloneChecker>((anonymous namespace)::CloneChecker*, clang::ento::CheckerManager&) Line | Count | Source | 74 | 28 | static void _register(CHECKER *checker, CheckerManager &mgr){ | 75 | 28 | mgr._registerForEndOfTranslationUnit( | 76 | 28 | CheckerManager::CheckEndOfTranslationUnit(checker, | 77 | 28 | _checkEndOfTranslationUnit<CHECKER>)); | 78 | 28 | } |
DebugCheckers.cpp:void clang::ento::check::EndOfTranslationUnit::_register<(anonymous namespace)::ConfigDumper>((anonymous namespace)::ConfigDumper*, clang::ento::CheckerManager&) Line | Count | Source | 74 | 4 | static void _register(CHECKER *checker, CheckerManager &mgr){ | 75 | 4 | mgr._registerForEndOfTranslationUnit( | 76 | 4 | CheckerManager::CheckEndOfTranslationUnit(checker, | 77 | 4 | _checkEndOfTranslationUnit<CHECKER>)); | 78 | 4 | } |
|
79 | | }; |
80 | | |
81 | | template <typename STMT> |
82 | | class PreStmt { |
83 | | template <typename CHECKER> |
84 | 463k | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { |
85 | 463k | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); |
86 | 463k | } AnalysisOrderChecker.cpp:void clang::ento::check::PreStmt<clang::CastExpr>::_checkStmt<(anonymous namespace)::AnalysisOrderChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 72 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 72 | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 72 | } |
Unexecuted instantiation: AnalysisOrderChecker.cpp:void clang::ento::check::PreStmt<clang::ArraySubscriptExpr>::_checkStmt<(anonymous namespace)::AnalysisOrderChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) AnalysisOrderChecker.cpp:void clang::ento::check::PreStmt<clang::CXXNewExpr>::_checkStmt<(anonymous namespace)::AnalysisOrderChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 10 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 10 | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 10 | } |
AnalysisOrderChecker.cpp:void clang::ento::check::PreStmt<clang::CXXDeleteExpr>::_checkStmt<(anonymous namespace)::AnalysisOrderChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 4 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 4 | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 4 | } |
AnalysisOrderChecker.cpp:void clang::ento::check::PreStmt<clang::CXXConstructExpr>::_checkStmt<(anonymous namespace)::AnalysisOrderChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 21 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 21 | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 21 | } |
AnalysisOrderChecker.cpp:void clang::ento::check::PreStmt<clang::OffsetOfExpr>::_checkStmt<(anonymous namespace)::AnalysisOrderChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 1 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 1 | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 1 | } |
BasicObjCFoundationChecks.cpp:void clang::ento::check::PreStmt<clang::CallExpr>::_checkStmt<(anonymous namespace)::CFNumberChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 305 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 305 | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 305 | } |
CStringChecker.cpp:void clang::ento::check::PreStmt<clang::DeclStmt>::_checkStmt<(anonymous namespace)::CStringChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 12.2k | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 12.2k | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 12.2k | } |
CastSizeChecker.cpp:void clang::ento::check::PreStmt<clang::CastExpr>::_checkStmt<(anonymous namespace)::CastSizeChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 7.97k | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 7.97k | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 7.97k | } |
CheckObjCDealloc.cpp:void clang::ento::check::PreStmt<clang::ReturnStmt>::_checkStmt<(anonymous namespace)::ObjCDeallocChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 227 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 227 | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 227 | } |
CheckPlacementNew.cpp:void clang::ento::check::PreStmt<clang::CXXNewExpr>::_checkStmt<(anonymous namespace)::PlacementNewChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 139 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 139 | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 139 | } |
ConversionChecker.cpp:void clang::ento::check::PreStmt<clang::ImplicitCastExpr>::_checkStmt<(anonymous namespace)::ConversionChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 9.81k | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 9.81k | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 9.81k | } |
DebugCheckers.cpp:void clang::ento::check::PreStmt<clang::Stmt>::_checkStmt<(anonymous namespace)::ReportStmts>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 16 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 16 | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 16 | } |
DeleteWithNonVirtualDtorChecker.cpp:void clang::ento::check::PreStmt<clang::CXXDeleteExpr>::_checkStmt<(anonymous namespace)::DeleteWithNonVirtualDtorChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 23 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 23 | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 23 | } |
DivZeroChecker.cpp:void clang::ento::check::PreStmt<clang::BinaryOperator>::_checkStmt<(anonymous namespace)::DivZeroChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 114k | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 114k | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 114k | } |
EnumCastOutOfRangeChecker.cpp:void clang::ento::check::PreStmt<clang::CastExpr>::_checkStmt<(anonymous namespace)::EnumCastOutOfRangeChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 129 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 129 | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 129 | } |
FixedAddressChecker.cpp:void clang::ento::check::PreStmt<clang::BinaryOperator>::_checkStmt<(anonymous namespace)::FixedAddressChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 2.35k | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 2.35k | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 2.35k | } |
InvalidatedIteratorChecker.cpp:void clang::ento::check::PreStmt<clang::UnaryOperator>::_checkStmt<(anonymous namespace)::InvalidatedIteratorChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 28 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 28 | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 28 | } |
InvalidatedIteratorChecker.cpp:void clang::ento::check::PreStmt<clang::BinaryOperator>::_checkStmt<(anonymous namespace)::InvalidatedIteratorChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 17 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 17 | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 17 | } |
InvalidatedIteratorChecker.cpp:void clang::ento::check::PreStmt<clang::ArraySubscriptExpr>::_checkStmt<(anonymous namespace)::InvalidatedIteratorChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 2 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 2 | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 2 | } |
InvalidatedIteratorChecker.cpp:void clang::ento::check::PreStmt<clang::MemberExpr>::_checkStmt<(anonymous namespace)::InvalidatedIteratorChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 142 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 142 | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 142 | } |
IteratorRangeChecker.cpp:void clang::ento::check::PreStmt<clang::UnaryOperator>::_checkStmt<(anonymous namespace)::IteratorRangeChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 294 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 294 | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 294 | } |
IteratorRangeChecker.cpp:void clang::ento::check::PreStmt<clang::BinaryOperator>::_checkStmt<(anonymous namespace)::IteratorRangeChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 99 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 99 | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 99 | } |
IteratorRangeChecker.cpp:void clang::ento::check::PreStmt<clang::ArraySubscriptExpr>::_checkStmt<(anonymous namespace)::IteratorRangeChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 2 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 2 | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 2 | } |
IteratorRangeChecker.cpp:void clang::ento::check::PreStmt<clang::MemberExpr>::_checkStmt<(anonymous namespace)::IteratorRangeChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 634 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 634 | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 634 | } |
MacOSKeychainAPIChecker.cpp:void clang::ento::check::PreStmt<clang::CallExpr>::_checkStmt<(anonymous namespace)::MacOSKeychainAPIChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 370 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 370 | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 370 | } |
MacOSXAPIChecker.cpp:void clang::ento::check::PreStmt<clang::CallExpr>::_checkStmt<(anonymous namespace)::MacOSXAPIChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 509 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 509 | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 509 | } |
MallocChecker.cpp:void clang::ento::check::PreStmt<clang::ReturnStmt>::_checkStmt<(anonymous namespace)::MallocChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 7.02k | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 7.02k | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 7.02k | } |
MismatchedIteratorChecker.cpp:void clang::ento::check::PreStmt<clang::BinaryOperator>::_checkStmt<(anonymous namespace)::MismatchedIteratorChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 25 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 25 | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 25 | } |
MIGChecker.cpp:void clang::ento::check::PreStmt<clang::ReturnStmt>::_checkStmt<(anonymous namespace)::MIGChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 108 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 108 | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 108 | } |
NullabilityChecker.cpp:void clang::ento::check::PreStmt<clang::ReturnStmt>::_checkStmt<(anonymous namespace)::NullabilityChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 306 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 306 | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 306 | } |
ObjCAtSyncChecker.cpp:void clang::ento::check::PreStmt<clang::ObjCAtSynchronizedStmt>::_checkStmt<(anonymous namespace)::ObjCAtSyncChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 14 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 14 | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 14 | } |
ObjCContainersChecker.cpp:void clang::ento::check::PreStmt<clang::CallExpr>::_checkStmt<(anonymous namespace)::ObjCContainersChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 354 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 354 | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 354 | } |
ObjCSelfInitChecker.cpp:void clang::ento::check::PreStmt<clang::ReturnStmt>::_checkStmt<(anonymous namespace)::ObjCSelfInitChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 228 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 228 | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 228 | } |
PointerArithChecker.cpp:void clang::ento::check::PreStmt<clang::BinaryOperator>::_checkStmt<(anonymous namespace)::PointerArithChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 40.6k | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 40.6k | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 40.6k | } |
PointerArithChecker.cpp:void clang::ento::check::PreStmt<clang::UnaryOperator>::_checkStmt<(anonymous namespace)::PointerArithChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 11.2k | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 11.2k | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 11.2k | } |
PointerArithChecker.cpp:void clang::ento::check::PreStmt<clang::ArraySubscriptExpr>::_checkStmt<(anonymous namespace)::PointerArithChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 408 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 408 | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 408 | } |
PointerArithChecker.cpp:void clang::ento::check::PreStmt<clang::CastExpr>::_checkStmt<(anonymous namespace)::PointerArithChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 142k | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 142k | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 142k | } |
PointerSubChecker.cpp:void clang::ento::check::PreStmt<clang::BinaryOperator>::_checkStmt<(anonymous namespace)::PointerSubChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 2.35k | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 2.35k | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 2.35k | } |
ReturnPointerRangeChecker.cpp:void clang::ento::check::PreStmt<clang::ReturnStmt>::_checkStmt<(anonymous namespace)::ReturnPointerRangeChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 281 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 281 | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 281 | } |
ReturnUndefChecker.cpp:void clang::ento::check::PreStmt<clang::ReturnStmt>::_checkStmt<(anonymous namespace)::ReturnUndefChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 23.3k | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 23.3k | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 23.3k | } |
StackAddrEscapeChecker.cpp:void clang::ento::check::PreStmt<clang::ReturnStmt>::_checkStmt<(anonymous namespace)::StackAddrEscapeChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 23.3k | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 23.3k | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 23.3k | } |
TestAfterDivZeroChecker.cpp:void clang::ento::check::PreStmt<clang::BinaryOperator>::_checkStmt<(anonymous namespace)::TestAfterDivZeroChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 2.16k | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 2.16k | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 2.16k | } |
UndefinedArraySubscriptChecker.cpp:void clang::ento::check::PreStmt<clang::ArraySubscriptExpr>::_checkStmt<(anonymous namespace)::UndefinedArraySubscriptChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 16.1k | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 16.1k | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 16.1k | } |
UnixAPIChecker.cpp:void clang::ento::check::PreStmt<clang::CallExpr>::_checkStmt<(anonymous namespace)::UnixAPIMisuseChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 1.39k | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 1.39k | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 1.39k | } |
UnixAPIChecker.cpp:void clang::ento::check::PreStmt<clang::CallExpr>::_checkStmt<(anonymous namespace)::UnixAPIPortabilityChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 95 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 95 | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 95 | } |
VforkChecker.cpp:void clang::ento::check::PreStmt<clang::ReturnStmt>::_checkStmt<(anonymous namespace)::VforkChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 153 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 153 | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 153 | } |
VLASizeChecker.cpp:void clang::ento::check::PreStmt<clang::DeclStmt>::_checkStmt<(anonymous namespace)::VLASizeChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 40.3k | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 40.3k | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 40.3k | } |
VLASizeChecker.cpp:void clang::ento::check::PreStmt<clang::UnaryExprOrTypeTraitExpr>::_checkStmt<(anonymous namespace)::VLASizeChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 961 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 961 | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 961 | } |
ValistChecker.cpp:void clang::ento::check::PreStmt<clang::VAArgExpr>::_checkStmt<(anonymous namespace)::ValistChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 84 | 51 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 85 | 51 | ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C); | 86 | 51 | } |
Unexecuted instantiation: MainCallChecker.cpp:void clang::ento::check::PreStmt<clang::CallExpr>::_checkStmt<(anonymous namespace)::MainCallChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) |
87 | | |
88 | 77.5k | static bool _handlesStmt(const Stmt *S) { |
89 | 77.5k | return isa<STMT>(S); |
90 | 77.5k | } clang::ento::check::PreStmt<clang::CXXDeleteExpr>::_handlesStmt(clang::Stmt const*) Line | Count | Source | 88 | 75 | static bool _handlesStmt(const Stmt *S) { | 89 | 75 | return isa<STMT>(S); | 90 | 75 | } |
clang::ento::check::PreStmt<clang::CXXConstructExpr>::_handlesStmt(clang::Stmt const*) Line | Count | Source | 88 | 61 | static bool _handlesStmt(const Stmt *S) { | 89 | 61 | return isa<STMT>(S); | 90 | 61 | } |
clang::ento::check::PreStmt<clang::OffsetOfExpr>::_handlesStmt(clang::Stmt const*) Line | Count | Source | 88 | 61 | static bool _handlesStmt(const Stmt *S) { | 89 | 61 | return isa<STMT>(S); | 90 | 61 | } |
clang::ento::check::PreStmt<clang::CallExpr>::_handlesStmt(clang::Stmt const*) Line | Count | Source | 88 | 1.52k | static bool _handlesStmt(const Stmt *S) { | 89 | 1.52k | return isa<STMT>(S); | 90 | 1.52k | } |
clang::ento::check::PreStmt<clang::DeclStmt>::_handlesStmt(clang::Stmt const*) Line | Count | Source | 88 | 12.9k | static bool _handlesStmt(const Stmt *S) { | 89 | 12.9k | return isa<STMT>(S); | 90 | 12.9k | } |
clang::ento::check::PreStmt<clang::CastExpr>::_handlesStmt(clang::Stmt const*) Line | Count | Source | 88 | 1.29k | static bool _handlesStmt(const Stmt *S) { | 89 | 1.29k | return isa<STMT>(S); | 90 | 1.29k | } |
clang::ento::check::PreStmt<clang::CXXNewExpr>::_handlesStmt(clang::Stmt const*) Line | Count | Source | 88 | 730 | static bool _handlesStmt(const Stmt *S) { | 89 | 730 | return isa<STMT>(S); | 90 | 730 | } |
clang::ento::check::PreStmt<clang::ImplicitCastExpr>::_handlesStmt(clang::Stmt const*) Line | Count | Source | 88 | 680 | static bool _handlesStmt(const Stmt *S) { | 89 | 680 | return isa<STMT>(S); | 90 | 680 | } |
clang::ento::check::PreStmt<clang::Stmt>::_handlesStmt(clang::Stmt const*) Line | Count | Source | 88 | 13 | static bool _handlesStmt(const Stmt *S) { | 89 | 13 | return isa<STMT>(S); | 90 | 13 | } |
clang::ento::check::PreStmt<clang::BinaryOperator>::_handlesStmt(clang::Stmt const*) Line | Count | Source | 88 | 13.1k | static bool _handlesStmt(const Stmt *S) { | 89 | 13.1k | return isa<STMT>(S); | 90 | 13.1k | } |
clang::ento::check::PreStmt<clang::MemberExpr>::_handlesStmt(clang::Stmt const*) Line | Count | Source | 88 | 59 | static bool _handlesStmt(const Stmt *S) { | 89 | 59 | return isa<STMT>(S); | 90 | 59 | } |
clang::ento::check::PreStmt<clang::ReturnStmt>::_handlesStmt(clang::Stmt const*) Line | Count | Source | 88 | 24.5k | static bool _handlesStmt(const Stmt *S) { | 89 | 24.5k | return isa<STMT>(S); | 90 | 24.5k | } |
clang::ento::check::PreStmt<clang::ObjCAtSynchronizedStmt>::_handlesStmt(clang::Stmt const*) Line | Count | Source | 88 | 91 | static bool _handlesStmt(const Stmt *S) { | 89 | 91 | return isa<STMT>(S); | 90 | 91 | } |
clang::ento::check::PreStmt<clang::UnaryOperator>::_handlesStmt(clang::Stmt const*) Line | Count | Source | 88 | 766 | static bool _handlesStmt(const Stmt *S) { | 89 | 766 | return isa<STMT>(S); | 90 | 766 | } |
clang::ento::check::PreStmt<clang::ArraySubscriptExpr>::_handlesStmt(clang::Stmt const*) Line | Count | Source | 88 | 11.1k | static bool _handlesStmt(const Stmt *S) { | 89 | 11.1k | return isa<STMT>(S); | 90 | 11.1k | } |
clang::ento::check::PreStmt<clang::UnaryExprOrTypeTraitExpr>::_handlesStmt(clang::Stmt const*) Line | Count | Source | 88 | 10.3k | static bool _handlesStmt(const Stmt *S) { | 89 | 10.3k | return isa<STMT>(S); | 90 | 10.3k | } |
clang::ento::check::PreStmt<clang::VAArgExpr>::_handlesStmt(clang::Stmt const*) Line | Count | Source | 88 | 54 | static bool _handlesStmt(const Stmt *S) { | 89 | 54 | return isa<STMT>(S); | 90 | 54 | } |
|
91 | | public: |
92 | | template <typename CHECKER> |
93 | 9.28k | static void _register(CHECKER *checker, CheckerManager &mgr) { |
94 | 9.28k | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, |
95 | 9.28k | _checkStmt<CHECKER>), |
96 | 9.28k | _handlesStmt); |
97 | 9.28k | } AnalysisOrderChecker.cpp:void clang::ento::check::PreStmt<clang::CastExpr>::_register<(anonymous namespace)::AnalysisOrderChecker>((anonymous namespace)::AnalysisOrderChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 12 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 12 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 12 | _checkStmt<CHECKER>), | 96 | 12 | _handlesStmt); | 97 | 12 | } |
AnalysisOrderChecker.cpp:void clang::ento::check::PreStmt<clang::ArraySubscriptExpr>::_register<(anonymous namespace)::AnalysisOrderChecker>((anonymous namespace)::AnalysisOrderChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 12 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 12 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 12 | _checkStmt<CHECKER>), | 96 | 12 | _handlesStmt); | 97 | 12 | } |
AnalysisOrderChecker.cpp:void clang::ento::check::PreStmt<clang::CXXNewExpr>::_register<(anonymous namespace)::AnalysisOrderChecker>((anonymous namespace)::AnalysisOrderChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 12 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 12 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 12 | _checkStmt<CHECKER>), | 96 | 12 | _handlesStmt); | 97 | 12 | } |
AnalysisOrderChecker.cpp:void clang::ento::check::PreStmt<clang::CXXDeleteExpr>::_register<(anonymous namespace)::AnalysisOrderChecker>((anonymous namespace)::AnalysisOrderChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 12 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 12 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 12 | _checkStmt<CHECKER>), | 96 | 12 | _handlesStmt); | 97 | 12 | } |
AnalysisOrderChecker.cpp:void clang::ento::check::PreStmt<clang::CXXConstructExpr>::_register<(anonymous namespace)::AnalysisOrderChecker>((anonymous namespace)::AnalysisOrderChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 12 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 12 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 12 | _checkStmt<CHECKER>), | 96 | 12 | _handlesStmt); | 97 | 12 | } |
AnalysisOrderChecker.cpp:void clang::ento::check::PreStmt<clang::OffsetOfExpr>::_register<(anonymous namespace)::AnalysisOrderChecker>((anonymous namespace)::AnalysisOrderChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 12 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 12 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 12 | _checkStmt<CHECKER>), | 96 | 12 | _handlesStmt); | 97 | 12 | } |
BasicObjCFoundationChecks.cpp:void clang::ento::check::PreStmt<clang::CallExpr>::_register<(anonymous namespace)::CFNumberChecker>((anonymous namespace)::CFNumberChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 47 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 47 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 47 | _checkStmt<CHECKER>), | 96 | 47 | _handlesStmt); | 97 | 47 | } |
CStringChecker.cpp:void clang::ento::check::PreStmt<clang::DeclStmt>::_register<(anonymous namespace)::CStringChecker>((anonymous namespace)::CStringChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 264 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 264 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 264 | _checkStmt<CHECKER>), | 96 | 264 | _handlesStmt); | 97 | 264 | } |
CastSizeChecker.cpp:void clang::ento::check::PreStmt<clang::CastExpr>::_register<(anonymous namespace)::CastSizeChecker>((anonymous namespace)::CastSizeChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 61 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 61 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 61 | _checkStmt<CHECKER>), | 96 | 61 | _handlesStmt); | 97 | 61 | } |
CheckObjCDealloc.cpp:void clang::ento::check::PreStmt<clang::ReturnStmt>::_register<(anonymous namespace)::ObjCDeallocChecker>((anonymous namespace)::ObjCDeallocChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 50 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 50 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 50 | _checkStmt<CHECKER>), | 96 | 50 | _handlesStmt); | 97 | 50 | } |
CheckPlacementNew.cpp:void clang::ento::check::PreStmt<clang::CXXNewExpr>::_register<(anonymous namespace)::PlacementNewChecker>((anonymous namespace)::PlacementNewChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 67 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 67 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 67 | _checkStmt<CHECKER>), | 96 | 67 | _handlesStmt); | 97 | 67 | } |
ConversionChecker.cpp:void clang::ento::check::PreStmt<clang::ImplicitCastExpr>::_register<(anonymous namespace)::ConversionChecker>((anonymous namespace)::ConversionChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 73 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 73 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 73 | _checkStmt<CHECKER>), | 96 | 73 | _handlesStmt); | 97 | 73 | } |
DebugCheckers.cpp:void clang::ento::check::PreStmt<clang::Stmt>::_register<(anonymous namespace)::ReportStmts>((anonymous namespace)::ReportStmts*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 2 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 2 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 2 | _checkStmt<CHECKER>), | 96 | 2 | _handlesStmt); | 97 | 2 | } |
DeleteWithNonVirtualDtorChecker.cpp:void clang::ento::check::PreStmt<clang::CXXDeleteExpr>::_register<(anonymous namespace)::DeleteWithNonVirtualDtorChecker>((anonymous namespace)::DeleteWithNonVirtualDtorChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 1 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 1 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 1 | _checkStmt<CHECKER>), | 96 | 1 | _handlesStmt); | 97 | 1 | } |
DivZeroChecker.cpp:void clang::ento::check::PreStmt<clang::BinaryOperator>::_register<(anonymous namespace)::DivZeroChecker>((anonymous namespace)::DivZeroChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 1.24k | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 1.24k | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 1.24k | _checkStmt<CHECKER>), | 96 | 1.24k | _handlesStmt); | 97 | 1.24k | } |
EnumCastOutOfRangeChecker.cpp:void clang::ento::check::PreStmt<clang::CastExpr>::_register<(anonymous namespace)::EnumCastOutOfRangeChecker>((anonymous namespace)::EnumCastOutOfRangeChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 2 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 2 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 2 | _checkStmt<CHECKER>), | 96 | 2 | _handlesStmt); | 97 | 2 | } |
FixedAddressChecker.cpp:void clang::ento::check::PreStmt<clang::BinaryOperator>::_register<(anonymous namespace)::FixedAddressChecker>((anonymous namespace)::FixedAddressChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 72 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 72 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 72 | _checkStmt<CHECKER>), | 96 | 72 | _handlesStmt); | 97 | 72 | } |
InvalidatedIteratorChecker.cpp:void clang::ento::check::PreStmt<clang::UnaryOperator>::_register<(anonymous namespace)::InvalidatedIteratorChecker>((anonymous namespace)::InvalidatedIteratorChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 2 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 2 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 2 | _checkStmt<CHECKER>), | 96 | 2 | _handlesStmt); | 97 | 2 | } |
InvalidatedIteratorChecker.cpp:void clang::ento::check::PreStmt<clang::BinaryOperator>::_register<(anonymous namespace)::InvalidatedIteratorChecker>((anonymous namespace)::InvalidatedIteratorChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 2 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 2 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 2 | _checkStmt<CHECKER>), | 96 | 2 | _handlesStmt); | 97 | 2 | } |
InvalidatedIteratorChecker.cpp:void clang::ento::check::PreStmt<clang::ArraySubscriptExpr>::_register<(anonymous namespace)::InvalidatedIteratorChecker>((anonymous namespace)::InvalidatedIteratorChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 2 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 2 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 2 | _checkStmt<CHECKER>), | 96 | 2 | _handlesStmt); | 97 | 2 | } |
InvalidatedIteratorChecker.cpp:void clang::ento::check::PreStmt<clang::MemberExpr>::_register<(anonymous namespace)::InvalidatedIteratorChecker>((anonymous namespace)::InvalidatedIteratorChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 2 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 2 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 2 | _checkStmt<CHECKER>), | 96 | 2 | _handlesStmt); | 97 | 2 | } |
IteratorRangeChecker.cpp:void clang::ento::check::PreStmt<clang::UnaryOperator>::_register<(anonymous namespace)::IteratorRangeChecker>((anonymous namespace)::IteratorRangeChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 2 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 2 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 2 | _checkStmt<CHECKER>), | 96 | 2 | _handlesStmt); | 97 | 2 | } |
IteratorRangeChecker.cpp:void clang::ento::check::PreStmt<clang::BinaryOperator>::_register<(anonymous namespace)::IteratorRangeChecker>((anonymous namespace)::IteratorRangeChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 2 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 2 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 2 | _checkStmt<CHECKER>), | 96 | 2 | _handlesStmt); | 97 | 2 | } |
IteratorRangeChecker.cpp:void clang::ento::check::PreStmt<clang::ArraySubscriptExpr>::_register<(anonymous namespace)::IteratorRangeChecker>((anonymous namespace)::IteratorRangeChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 2 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 2 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 2 | _checkStmt<CHECKER>), | 96 | 2 | _handlesStmt); | 97 | 2 | } |
IteratorRangeChecker.cpp:void clang::ento::check::PreStmt<clang::MemberExpr>::_register<(anonymous namespace)::IteratorRangeChecker>((anonymous namespace)::IteratorRangeChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 2 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 2 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 2 | _checkStmt<CHECKER>), | 96 | 2 | _handlesStmt); | 97 | 2 | } |
MacOSKeychainAPIChecker.cpp:void clang::ento::check::PreStmt<clang::CallExpr>::_register<(anonymous namespace)::MacOSKeychainAPIChecker>((anonymous namespace)::MacOSKeychainAPIChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 48 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 48 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 48 | _checkStmt<CHECKER>), | 96 | 48 | _handlesStmt); | 97 | 48 | } |
MacOSXAPIChecker.cpp:void clang::ento::check::PreStmt<clang::CallExpr>::_register<(anonymous namespace)::MacOSXAPIChecker>((anonymous namespace)::MacOSXAPIChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 51 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 51 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 51 | _checkStmt<CHECKER>), | 96 | 51 | _handlesStmt); | 97 | 51 | } |
MallocChecker.cpp:void clang::ento::check::PreStmt<clang::ReturnStmt>::_register<(anonymous namespace)::MallocChecker>((anonymous namespace)::MallocChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 241 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 241 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 241 | _checkStmt<CHECKER>), | 96 | 241 | _handlesStmt); | 97 | 241 | } |
MismatchedIteratorChecker.cpp:void clang::ento::check::PreStmt<clang::BinaryOperator>::_register<(anonymous namespace)::MismatchedIteratorChecker>((anonymous namespace)::MismatchedIteratorChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 2 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 2 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 2 | _checkStmt<CHECKER>), | 96 | 2 | _handlesStmt); | 97 | 2 | } |
MIGChecker.cpp:void clang::ento::check::PreStmt<clang::ReturnStmt>::_register<(anonymous namespace)::MIGChecker>((anonymous namespace)::MIGChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 47 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 47 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 47 | _checkStmt<CHECKER>), | 96 | 47 | _handlesStmt); | 97 | 47 | } |
NullabilityChecker.cpp:void clang::ento::check::PreStmt<clang::ReturnStmt>::_register<(anonymous namespace)::NullabilityChecker>((anonymous namespace)::NullabilityChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 51 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 51 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 51 | _checkStmt<CHECKER>), | 96 | 51 | _handlesStmt); | 97 | 51 | } |
ObjCAtSyncChecker.cpp:void clang::ento::check::PreStmt<clang::ObjCAtSynchronizedStmt>::_register<(anonymous namespace)::ObjCAtSyncChecker>((anonymous namespace)::ObjCAtSyncChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 10 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 10 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 10 | _checkStmt<CHECKER>), | 96 | 10 | _handlesStmt); | 97 | 10 | } |
ObjCContainersChecker.cpp:void clang::ento::check::PreStmt<clang::CallExpr>::_register<(anonymous namespace)::ObjCContainersChecker>((anonymous namespace)::ObjCContainersChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 47 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 47 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 47 | _checkStmt<CHECKER>), | 96 | 47 | _handlesStmt); | 97 | 47 | } |
ObjCSelfInitChecker.cpp:void clang::ento::check::PreStmt<clang::ReturnStmt>::_register<(anonymous namespace)::ObjCSelfInitChecker>((anonymous namespace)::ObjCSelfInitChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 49 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 49 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 49 | _checkStmt<CHECKER>), | 96 | 49 | _handlesStmt); | 97 | 49 | } |
PointerArithChecker.cpp:void clang::ento::check::PreStmt<clang::BinaryOperator>::_register<(anonymous namespace)::PointerArithChecker>((anonymous namespace)::PointerArithChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 74 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 74 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 74 | _checkStmt<CHECKER>), | 96 | 74 | _handlesStmt); | 97 | 74 | } |
PointerArithChecker.cpp:void clang::ento::check::PreStmt<clang::UnaryOperator>::_register<(anonymous namespace)::PointerArithChecker>((anonymous namespace)::PointerArithChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 74 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 74 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 74 | _checkStmt<CHECKER>), | 96 | 74 | _handlesStmt); | 97 | 74 | } |
PointerArithChecker.cpp:void clang::ento::check::PreStmt<clang::ArraySubscriptExpr>::_register<(anonymous namespace)::PointerArithChecker>((anonymous namespace)::PointerArithChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 74 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 74 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 74 | _checkStmt<CHECKER>), | 96 | 74 | _handlesStmt); | 97 | 74 | } |
PointerArithChecker.cpp:void clang::ento::check::PreStmt<clang::CastExpr>::_register<(anonymous namespace)::PointerArithChecker>((anonymous namespace)::PointerArithChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 74 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 74 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 74 | _checkStmt<CHECKER>), | 96 | 74 | _handlesStmt); | 97 | 74 | } |
PointerSubChecker.cpp:void clang::ento::check::PreStmt<clang::BinaryOperator>::_register<(anonymous namespace)::PointerSubChecker>((anonymous namespace)::PointerSubChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 72 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 72 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 72 | _checkStmt<CHECKER>), | 96 | 72 | _handlesStmt); | 97 | 72 | } |
ReturnPointerRangeChecker.cpp:void clang::ento::check::PreStmt<clang::ReturnStmt>::_register<(anonymous namespace)::ReturnPointerRangeChecker>((anonymous namespace)::ReturnPointerRangeChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 3 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 3 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 3 | _checkStmt<CHECKER>), | 96 | 3 | _handlesStmt); | 97 | 3 | } |
ReturnUndefChecker.cpp:void clang::ento::check::PreStmt<clang::ReturnStmt>::_register<(anonymous namespace)::ReturnUndefChecker>((anonymous namespace)::ReturnUndefChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 1.23k | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 1.23k | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 1.23k | _checkStmt<CHECKER>), | 96 | 1.23k | _handlesStmt); | 97 | 1.23k | } |
StackAddrEscapeChecker.cpp:void clang::ento::check::PreStmt<clang::ReturnStmt>::_register<(anonymous namespace)::StackAddrEscapeChecker>((anonymous namespace)::StackAddrEscapeChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 1.23k | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 1.23k | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 1.23k | _checkStmt<CHECKER>), | 96 | 1.23k | _handlesStmt); | 97 | 1.23k | } |
TestAfterDivZeroChecker.cpp:void clang::ento::check::PreStmt<clang::BinaryOperator>::_register<(anonymous namespace)::TestAfterDivZeroChecker>((anonymous namespace)::TestAfterDivZeroChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 72 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 72 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 72 | _checkStmt<CHECKER>), | 96 | 72 | _handlesStmt); | 97 | 72 | } |
UndefinedArraySubscriptChecker.cpp:void clang::ento::check::PreStmt<clang::ArraySubscriptExpr>::_register<(anonymous namespace)::UndefinedArraySubscriptChecker>((anonymous namespace)::UndefinedArraySubscriptChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 1.23k | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 1.23k | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 1.23k | _checkStmt<CHECKER>), | 96 | 1.23k | _handlesStmt); | 97 | 1.23k | } |
UnixAPIChecker.cpp:void clang::ento::check::PreStmt<clang::CallExpr>::_register<(anonymous namespace)::UnixAPIMisuseChecker>((anonymous namespace)::UnixAPIMisuseChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 70 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 70 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 70 | _checkStmt<CHECKER>), | 96 | 70 | _handlesStmt); | 97 | 70 | } |
UnixAPIChecker.cpp:void clang::ento::check::PreStmt<clang::CallExpr>::_register<(anonymous namespace)::UnixAPIPortabilityChecker>((anonymous namespace)::UnixAPIPortabilityChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 3 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 3 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 3 | _checkStmt<CHECKER>), | 96 | 3 | _handlesStmt); | 97 | 3 | } |
VforkChecker.cpp:void clang::ento::check::PreStmt<clang::ReturnStmt>::_register<(anonymous namespace)::VforkChecker>((anonymous namespace)::VforkChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 67 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 67 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 67 | _checkStmt<CHECKER>), | 96 | 67 | _handlesStmt); | 97 | 67 | } |
VLASizeChecker.cpp:void clang::ento::check::PreStmt<clang::DeclStmt>::_register<(anonymous namespace)::VLASizeChecker>((anonymous namespace)::VLASizeChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 1.23k | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 1.23k | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 1.23k | _checkStmt<CHECKER>), | 96 | 1.23k | _handlesStmt); | 97 | 1.23k | } |
VLASizeChecker.cpp:void clang::ento::check::PreStmt<clang::UnaryExprOrTypeTraitExpr>::_register<(anonymous namespace)::VLASizeChecker>((anonymous namespace)::VLASizeChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 1.23k | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 1.23k | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 1.23k | _checkStmt<CHECKER>), | 96 | 1.23k | _handlesStmt); | 97 | 1.23k | } |
ValistChecker.cpp:void clang::ento::check::PreStmt<clang::VAArgExpr>::_register<(anonymous namespace)::ValistChecker>((anonymous namespace)::ValistChecker*, clang::ento::CheckerManager&) Line | Count | Source | 93 | 7 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 94 | 7 | mgr._registerForPreStmt(CheckerManager::CheckStmtFunc(checker, | 95 | 7 | _checkStmt<CHECKER>), | 96 | 7 | _handlesStmt); | 97 | 7 | } |
Unexecuted instantiation: MainCallChecker.cpp:void clang::ento::check::PreStmt<clang::CallExpr>::_register<(anonymous namespace)::MainCallChecker>((anonymous namespace)::MainCallChecker*, clang::ento::CheckerManager&) |
98 | | }; |
99 | | |
100 | | template <typename STMT> |
101 | | class PostStmt { |
102 | | template <typename CHECKER> |
103 | 698k | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { |
104 | 698k | ((const CHECKER *)checker)->checkPostStmt(cast<STMT>(S), C); |
105 | 698k | } AnalysisOrderChecker.cpp:void clang::ento::check::PostStmt<clang::CastExpr>::_checkStmt<(anonymous namespace)::AnalysisOrderChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 103 | 72 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 104 | 72 | ((const CHECKER *)checker)->checkPostStmt(cast<STMT>(S), C); | 105 | 72 | } |
Unexecuted instantiation: AnalysisOrderChecker.cpp:void clang::ento::check::PostStmt<clang::ArraySubscriptExpr>::_checkStmt<(anonymous namespace)::AnalysisOrderChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) AnalysisOrderChecker.cpp:void clang::ento::check::PostStmt<clang::CXXNewExpr>::_checkStmt<(anonymous namespace)::AnalysisOrderChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 103 | 10 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 104 | 10 | ((const CHECKER *)checker)->checkPostStmt(cast<STMT>(S), C); | 105 | 10 | } |
AnalysisOrderChecker.cpp:void clang::ento::check::PostStmt<clang::CXXDeleteExpr>::_checkStmt<(anonymous namespace)::AnalysisOrderChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 103 | 5 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 104 | 5 | ((const CHECKER *)checker)->checkPostStmt(cast<STMT>(S), C); | 105 | 5 | } |
AnalysisOrderChecker.cpp:void clang::ento::check::PostStmt<clang::CXXConstructExpr>::_checkStmt<(anonymous namespace)::AnalysisOrderChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 103 | 21 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 104 | 21 | ((const CHECKER *)checker)->checkPostStmt(cast<STMT>(S), C); | 105 | 21 | } |
AnalysisOrderChecker.cpp:void clang::ento::check::PostStmt<clang::OffsetOfExpr>::_checkStmt<(anonymous namespace)::AnalysisOrderChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 103 | 1 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 104 | 1 | ((const CHECKER *)checker)->checkPostStmt(cast<STMT>(S), C); | 105 | 1 | } |
BasicObjCFoundationChecks.cpp:void clang::ento::check::PostStmt<clang::ObjCDictionaryLiteral>::_checkStmt<(anonymous namespace)::NilArgChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 103 | 9 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 104 | 9 | ((const CHECKER *)checker)->checkPostStmt(cast<STMT>(S), C); | 105 | 9 | } |
BasicObjCFoundationChecks.cpp:void clang::ento::check::PostStmt<clang::ObjCArrayLiteral>::_checkStmt<(anonymous namespace)::NilArgChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 103 | 7 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 104 | 7 | ((const CHECKER *)checker)->checkPostStmt(cast<STMT>(S), C); | 105 | 7 | } |
BasicObjCFoundationChecks.cpp:void clang::ento::check::PostStmt<clang::ObjCForCollectionStmt>::_checkStmt<(anonymous namespace)::ObjCLoopChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 103 | 423 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 104 | 423 | ((const CHECKER *)checker)->checkPostStmt(cast<STMT>(S), C); | 105 | 423 | } |
BasicObjCFoundationChecks.cpp:void clang::ento::check::PostStmt<clang::ObjCArrayLiteral>::_checkStmt<(anonymous namespace)::ObjCNonNilReturnValueChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 103 | 2 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 104 | 2 | ((const CHECKER *)checker)->checkPostStmt(cast<STMT>(S), C); | 105 | 2 | } |
BasicObjCFoundationChecks.cpp:void clang::ento::check::PostStmt<clang::ObjCDictionaryLiteral>::_checkStmt<(anonymous namespace)::ObjCNonNilReturnValueChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 103 | 4 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 104 | 4 | ((const CHECKER *)checker)->checkPostStmt(cast<STMT>(S), C); | 105 | 4 | } |
BasicObjCFoundationChecks.cpp:void clang::ento::check::PostStmt<clang::ObjCBoxedExpr>::_checkStmt<(anonymous namespace)::ObjCNonNilReturnValueChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 103 | 10 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 104 | 10 | ((const CHECKER *)checker)->checkPostStmt(cast<STMT>(S), C); | 105 | 10 | } |
DynamicTypePropagation.cpp:void clang::ento::check::PostStmt<clang::CastExpr>::_checkStmt<(anonymous namespace)::DynamicTypePropagation>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 103 | 393k | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 104 | 393k | ((const CHECKER *)checker)->checkPostStmt(cast<STMT>(S), C); | 105 | 393k | } |
DynamicTypePropagation.cpp:void clang::ento::check::PostStmt<clang::CXXNewExpr>::_checkStmt<(anonymous namespace)::DynamicTypePropagation>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 103 | 1.08k | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 104 | 1.08k | ((const CHECKER *)checker)->checkPostStmt(cast<STMT>(S), C); | 105 | 1.08k | } |
DynamicTypeChecker.cpp:void clang::ento::check::PostStmt<clang::ImplicitCastExpr>::_checkStmt<(anonymous namespace)::DynamicTypeChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 103 | 8.21k | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 104 | 8.21k | ((const CHECKER *)checker)->checkPostStmt(cast<STMT>(S), C); | 105 | 8.21k | } |
IteratorModeling.cpp:void clang::ento::check::PostStmt<clang::UnaryOperator>::_checkStmt<(anonymous namespace)::IteratorModeling>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 103 | 971 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 104 | 971 | ((const CHECKER *)checker)->checkPostStmt(cast<STMT>(S), C); | 105 | 971 | } |
IteratorModeling.cpp:void clang::ento::check::PostStmt<clang::BinaryOperator>::_checkStmt<(anonymous namespace)::IteratorModeling>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 103 | 912 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 104 | 912 | ((const CHECKER *)checker)->checkPostStmt(cast<STMT>(S), C); | 105 | 912 | } |
IteratorModeling.cpp:void clang::ento::check::PostStmt<clang::MaterializeTemporaryExpr>::_checkStmt<(anonymous namespace)::IteratorModeling>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 103 | 5.02k | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 104 | 5.02k | ((const CHECKER *)checker)->checkPostStmt(cast<STMT>(S), C); | 105 | 5.02k | } |
LocalizationChecker.cpp:void clang::ento::check::PostStmt<clang::ObjCStringLiteral>::_checkStmt<(anonymous namespace)::NonLocalizedStringChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 103 | 108 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 104 | 108 | ((const CHECKER *)checker)->checkPostStmt(cast<STMT>(S), C); | 105 | 108 | } |
MacOSKeychainAPIChecker.cpp:void clang::ento::check::PostStmt<clang::CallExpr>::_checkStmt<(anonymous namespace)::MacOSKeychainAPIChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 103 | 373 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 104 | 373 | ((const CHECKER *)checker)->checkPostStmt(cast<STMT>(S), C); | 105 | 373 | } |
MallocChecker.cpp:void clang::ento::check::PostStmt<clang::BlockExpr>::_checkStmt<(anonymous namespace)::MallocChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 103 | 58 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 104 | 58 | ((const CHECKER *)checker)->checkPostStmt(cast<STMT>(S), C); | 105 | 58 | } |
NullabilityChecker.cpp:void clang::ento::check::PostStmt<clang::ExplicitCastExpr>::_checkStmt<(anonymous namespace)::NullabilityChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 103 | 98 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 104 | 98 | ((const CHECKER *)checker)->checkPostStmt(cast<STMT>(S), C); | 105 | 98 | } |
ObjCContainersChecker.cpp:void clang::ento::check::PostStmt<clang::CallExpr>::_checkStmt<(anonymous namespace)::ObjCContainersChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 103 | 351 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 104 | 351 | ((const CHECKER *)checker)->checkPostStmt(cast<STMT>(S), C); | 105 | 351 | } |
ObjCSelfInitChecker.cpp:void clang::ento::check::PostStmt<clang::ObjCIvarRefExpr>::_checkStmt<(anonymous namespace)::ObjCSelfInitChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 103 | 64 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 104 | 64 | ((const CHECKER *)checker)->checkPostStmt(cast<STMT>(S), C); | 105 | 64 | } |
PointerArithChecker.cpp:void clang::ento::check::PostStmt<clang::CastExpr>::_checkStmt<(anonymous namespace)::PointerArithChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 103 | 142k | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 104 | 142k | ((const CHECKER *)checker)->checkPostStmt(cast<STMT>(S), C); | 105 | 142k | } |
PointerArithChecker.cpp:void clang::ento::check::PostStmt<clang::CXXNewExpr>::_checkStmt<(anonymous namespace)::PointerArithChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 103 | 11 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 104 | 11 | ((const CHECKER *)checker)->checkPostStmt(cast<STMT>(S), C); | 105 | 11 | } |
PointerArithChecker.cpp:void clang::ento::check::PostStmt<clang::CallExpr>::_checkStmt<(anonymous namespace)::PointerArithChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 103 | 18.7k | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 104 | 18.7k | ((const CHECKER *)checker)->checkPostStmt(cast<STMT>(S), C); | 105 | 18.7k | } |
void clang::ento::check::PostStmt<clang::BlockExpr>::_checkStmt<clang::ento::retaincountchecker::RetainCountChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 103 | 63 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 104 | 63 | ((const CHECKER *)checker)->checkPostStmt(cast<STMT>(S), C); | 105 | 63 | } |
void clang::ento::check::PostStmt<clang::CastExpr>::_checkStmt<clang::ento::retaincountchecker::RetainCountChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 103 | 10.2k | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 104 | 10.2k | ((const CHECKER *)checker)->checkPostStmt(cast<STMT>(S), C); | 105 | 10.2k | } |
void clang::ento::check::PostStmt<clang::ObjCArrayLiteral>::_checkStmt<clang::ento::retaincountchecker::RetainCountChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 103 | 29 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 104 | 29 | ((const CHECKER *)checker)->checkPostStmt(cast<STMT>(S), C); | 105 | 29 | } |
void clang::ento::check::PostStmt<clang::ObjCDictionaryLiteral>::_checkStmt<clang::ento::retaincountchecker::RetainCountChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 103 | 5 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 104 | 5 | ((const CHECKER *)checker)->checkPostStmt(cast<STMT>(S), C); | 105 | 5 | } |
void clang::ento::check::PostStmt<clang::ObjCBoxedExpr>::_checkStmt<clang::ento::retaincountchecker::RetainCountChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 103 | 25 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 104 | 25 | ((const CHECKER *)checker)->checkPostStmt(cast<STMT>(S), C); | 105 | 25 | } |
void clang::ento::check::PostStmt<clang::ObjCIvarRefExpr>::_checkStmt<clang::ento::retaincountchecker::RetainCountChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 103 | 486 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 104 | 486 | ((const CHECKER *)checker)->checkPostStmt(cast<STMT>(S), C); | 105 | 486 | } |
TaintTesterChecker.cpp:void clang::ento::check::PostStmt<clang::Expr>::_checkStmt<(anonymous namespace)::TaintTesterChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 103 | 1.00k | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 104 | 1.00k | ((const CHECKER *)checker)->checkPostStmt(cast<STMT>(S), C); | 105 | 1.00k | } |
UndefCapturedBlockVarChecker.cpp:void clang::ento::check::PostStmt<clang::BlockExpr>::_checkStmt<(anonymous namespace)::UndefCapturedBlockVarChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 103 | 372 | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 104 | 372 | ((const CHECKER *)checker)->checkPostStmt(cast<STMT>(S), C); | 105 | 372 | } |
UndefResultChecker.cpp:void clang::ento::check::PostStmt<clang::BinaryOperator>::_checkStmt<(anonymous namespace)::UndefResultChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 103 | 113k | static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) { | 104 | 113k | ((const CHECKER *)checker)->checkPostStmt(cast<STMT>(S), C); | 105 | 113k | } |
|
106 | | |
107 | 52.2k | static bool _handlesStmt(const Stmt *S) { |
108 | 52.2k | return isa<STMT>(S); |
109 | 52.2k | } clang::ento::check::PostStmt<clang::ArraySubscriptExpr>::_handlesStmt(clang::Stmt const*) Line | Count | Source | 107 | 56 | static bool _handlesStmt(const Stmt *S) { | 108 | 56 | return isa<STMT>(S); | 109 | 56 | } |
clang::ento::check::PostStmt<clang::CXXDeleteExpr>::_handlesStmt(clang::Stmt const*) Line | Count | Source | 107 | 56 | static bool _handlesStmt(const Stmt *S) { | 108 | 56 | return isa<STMT>(S); | 109 | 56 | } |
clang::ento::check::PostStmt<clang::CXXConstructExpr>::_handlesStmt(clang::Stmt const*) Line | Count | Source | 107 | 56 | static bool _handlesStmt(const Stmt *S) { | 108 | 56 | return isa<STMT>(S); | 109 | 56 | } |
clang::ento::check::PostStmt<clang::OffsetOfExpr>::_handlesStmt(clang::Stmt const*) Line | Count | Source | 107 | 56 | static bool _handlesStmt(const Stmt *S) { | 108 | 56 | return isa<STMT>(S); | 109 | 56 | } |
clang::ento::check::PostStmt<clang::ObjCDictionaryLiteral>::_handlesStmt(clang::Stmt const*) Line | Count | Source | 107 | 1.21k | static bool _handlesStmt(const Stmt *S) { | 108 | 1.21k | return isa<STMT>(S); | 109 | 1.21k | } |
clang::ento::check::PostStmt<clang::ObjCArrayLiteral>::_handlesStmt(clang::Stmt const*) Line | Count | Source | 107 | 1.21k | static bool _handlesStmt(const Stmt *S) { | 108 | 1.21k | return isa<STMT>(S); | 109 | 1.21k | } |
clang::ento::check::PostStmt<clang::ObjCForCollectionStmt>::_handlesStmt(clang::Stmt const*) Line | Count | Source | 107 | 257 | static bool _handlesStmt(const Stmt *S) { | 108 | 257 | return isa<STMT>(S); | 109 | 257 | } |
clang::ento::check::PostStmt<clang::ObjCBoxedExpr>::_handlesStmt(clang::Stmt const*) Line | Count | Source | 107 | 910 | static bool _handlesStmt(const Stmt *S) { | 108 | 910 | return isa<STMT>(S); | 109 | 910 | } |
clang::ento::check::PostStmt<clang::CXXNewExpr>::_handlesStmt(clang::Stmt const*) Line | Count | Source | 107 | 10.6k | static bool _handlesStmt(const Stmt *S) { | 108 | 10.6k | return isa<STMT>(S); | 109 | 10.6k | } |
clang::ento::check::PostStmt<clang::ImplicitCastExpr>::_handlesStmt(clang::Stmt const*) Line | Count | Source | 107 | 637 | static bool _handlesStmt(const Stmt *S) { | 108 | 637 | return isa<STMT>(S); | 109 | 637 | } |
clang::ento::check::PostStmt<clang::UnaryOperator>::_handlesStmt(clang::Stmt const*) Line | Count | Source | 107 | 281 | static bool _handlesStmt(const Stmt *S) { | 108 | 281 | return isa<STMT>(S); | 109 | 281 | } |
clang::ento::check::PostStmt<clang::BinaryOperator>::_handlesStmt(clang::Stmt const*) Line | Count | Source | 107 | 10.1k | static bool _handlesStmt(const Stmt *S) { | 108 | 10.1k | return isa<STMT>(S); | 109 | 10.1k | } |
clang::ento::check::PostStmt<clang::MaterializeTemporaryExpr>::_handlesStmt(clang::Stmt const*) Line | Count | Source | 107 | 281 | static bool _handlesStmt(const Stmt *S) { | 108 | 281 | return isa<STMT>(S); | 109 | 281 | } |
clang::ento::check::PostStmt<clang::ObjCStringLiteral>::_handlesStmt(clang::Stmt const*) Line | Count | Source | 107 | 17 | static bool _handlesStmt(const Stmt *S) { | 108 | 17 | return isa<STMT>(S); | 109 | 17 | } |
clang::ento::check::PostStmt<clang::BlockExpr>::_handlesStmt(clang::Stmt const*) Line | Count | Source | 107 | 12.8k | static bool _handlesStmt(const Stmt *S) { | 108 | 12.8k | return isa<STMT>(S); | 109 | 12.8k | } |
clang::ento::check::PostStmt<clang::ExplicitCastExpr>::_handlesStmt(clang::Stmt const*) Line | Count | Source | 107 | 248 | static bool _handlesStmt(const Stmt *S) { | 108 | 248 | return isa<STMT>(S); | 109 | 248 | } |
clang::ento::check::PostStmt<clang::CallExpr>::_handlesStmt(clang::Stmt const*) Line | Count | Source | 107 | 1.16k | static bool _handlesStmt(const Stmt *S) { | 108 | 1.16k | return isa<STMT>(S); | 109 | 1.16k | } |
clang::ento::check::PostStmt<clang::CastExpr>::_handlesStmt(clang::Stmt const*) Line | Count | Source | 107 | 11.2k | static bool _handlesStmt(const Stmt *S) { | 108 | 11.2k | return isa<STMT>(S); | 109 | 11.2k | } |
clang::ento::check::PostStmt<clang::ObjCIvarRefExpr>::_handlesStmt(clang::Stmt const*) Line | Count | Source | 107 | 904 | static bool _handlesStmt(const Stmt *S) { | 108 | 904 | return isa<STMT>(S); | 109 | 904 | } |
clang::ento::check::PostStmt<clang::Expr>::_handlesStmt(clang::Stmt const*) Line | Count | Source | 107 | 57 | static bool _handlesStmt(const Stmt *S) { | 108 | 57 | return isa<STMT>(S); | 109 | 57 | } |
|
110 | | public: |
111 | | template <typename CHECKER> |
112 | 6.67k | static void _register(CHECKER *checker, CheckerManager &mgr) { |
113 | 6.67k | mgr._registerForPostStmt(CheckerManager::CheckStmtFunc(checker, |
114 | 6.67k | _checkStmt<CHECKER>), |
115 | 6.67k | _handlesStmt); |
116 | 6.67k | } AnalysisOrderChecker.cpp:void clang::ento::check::PostStmt<clang::CastExpr>::_register<(anonymous namespace)::AnalysisOrderChecker>((anonymous namespace)::AnalysisOrderChecker*, clang::ento::CheckerManager&) Line | Count | Source | 112 | 12 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 113 | 12 | mgr._registerForPostStmt(CheckerManager::CheckStmtFunc(checker, | 114 | 12 | _checkStmt<CHECKER>), | 115 | 12 | _handlesStmt); | 116 | 12 | } |
AnalysisOrderChecker.cpp:void clang::ento::check::PostStmt<clang::ArraySubscriptExpr>::_register<(anonymous namespace)::AnalysisOrderChecker>((anonymous namespace)::AnalysisOrderChecker*, clang::ento::CheckerManager&) Line | Count | Source | 112 | 12 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 113 | 12 | mgr._registerForPostStmt(CheckerManager::CheckStmtFunc(checker, | 114 | 12 | _checkStmt<CHECKER>), | 115 | 12 | _handlesStmt); | 116 | 12 | } |
AnalysisOrderChecker.cpp:void clang::ento::check::PostStmt<clang::CXXNewExpr>::_register<(anonymous namespace)::AnalysisOrderChecker>((anonymous namespace)::AnalysisOrderChecker*, clang::ento::CheckerManager&) Line | Count | Source | 112 | 12 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 113 | 12 | mgr._registerForPostStmt(CheckerManager::CheckStmtFunc(checker, | 114 | 12 | _checkStmt<CHECKER>), | 115 | 12 | _handlesStmt); | 116 | 12 | } |
AnalysisOrderChecker.cpp:void clang::ento::check::PostStmt<clang::CXXDeleteExpr>::_register<(anonymous namespace)::AnalysisOrderChecker>((anonymous namespace)::AnalysisOrderChecker*, clang::ento::CheckerManager&) Line | Count | Source | 112 | 12 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 113 | 12 | mgr._registerForPostStmt(CheckerManager::CheckStmtFunc(checker, | 114 | 12 | _checkStmt<CHECKER>), | 115 | 12 | _handlesStmt); | 116 | 12 | } |
AnalysisOrderChecker.cpp:void clang::ento::check::PostStmt<clang::CXXConstructExpr>::_register<(anonymous namespace)::AnalysisOrderChecker>((anonymous namespace)::AnalysisOrderChecker*, clang::ento::CheckerManager&) Line | Count | Source | 112 | 12 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 113 | 12 | mgr._registerForPostStmt(CheckerManager::CheckStmtFunc(checker, | 114 | 12 | _checkStmt<CHECKER>), | 115 | 12 | _handlesStmt); | 116 | 12 | } |
AnalysisOrderChecker.cpp:void clang::ento::check::PostStmt<clang::OffsetOfExpr>::_register<(anonymous namespace)::AnalysisOrderChecker>((anonymous namespace)::AnalysisOrderChecker*, clang::ento::CheckerManager&) Line | Count | Source | 112 | 12 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 113 | 12 | mgr._registerForPostStmt(CheckerManager::CheckStmtFunc(checker, | 114 | 12 | _checkStmt<CHECKER>), | 115 | 12 | _handlesStmt); | 116 | 12 | } |
BasicObjCFoundationChecks.cpp:void clang::ento::check::PostStmt<clang::ObjCDictionaryLiteral>::_register<(anonymous namespace)::NilArgChecker>((anonymous namespace)::NilArgChecker*, clang::ento::CheckerManager&) Line | Count | Source | 112 | 53 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 113 | 53 | mgr._registerForPostStmt(CheckerManager::CheckStmtFunc(checker, | 114 | 53 | _checkStmt<CHECKER>), | 115 | 53 | _handlesStmt); | 116 | 53 | } |
BasicObjCFoundationChecks.cpp:void clang::ento::check::PostStmt<clang::ObjCArrayLiteral>::_register<(anonymous namespace)::NilArgChecker>((anonymous namespace)::NilArgChecker*, clang::ento::CheckerManager&) Line | Count | Source | 112 | 53 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 113 | 53 | mgr._registerForPostStmt(CheckerManager::CheckStmtFunc(checker, | 114 | 53 | _checkStmt<CHECKER>), | 115 | 53 | _handlesStmt); | 116 | 53 | } |
BasicObjCFoundationChecks.cpp:void clang::ento::check::PostStmt<clang::ObjCForCollectionStmt>::_register<(anonymous namespace)::ObjCLoopChecker>((anonymous namespace)::ObjCLoopChecker*, clang::ento::CheckerManager&) Line | Count | Source | 112 | 48 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 113 | 48 | mgr._registerForPostStmt(CheckerManager::CheckStmtFunc(checker, | 114 | 48 | _checkStmt<CHECKER>), | 115 | 48 | _handlesStmt); | 116 | 48 | } |
BasicObjCFoundationChecks.cpp:void clang::ento::check::PostStmt<clang::ObjCArrayLiteral>::_register<(anonymous namespace)::ObjCNonNilReturnValueChecker>((anonymous namespace)::ObjCNonNilReturnValueChecker*, clang::ento::CheckerManager&) Line | Count | Source | 112 | 49 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 113 | 49 | mgr._registerForPostStmt(CheckerManager::CheckStmtFunc(checker, | 114 | 49 | _checkStmt<CHECKER>), | 115 | 49 | _handlesStmt); | 116 | 49 | } |
BasicObjCFoundationChecks.cpp:void clang::ento::check::PostStmt<clang::ObjCDictionaryLiteral>::_register<(anonymous namespace)::ObjCNonNilReturnValueChecker>((anonymous namespace)::ObjCNonNilReturnValueChecker*, clang::ento::CheckerManager&) Line | Count | Source | 112 | 49 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 113 | 49 | mgr._registerForPostStmt(CheckerManager::CheckStmtFunc(checker, | 114 | 49 | _checkStmt<CHECKER>), | 115 | 49 | _handlesStmt); | 116 | 49 | } |
BasicObjCFoundationChecks.cpp:void clang::ento::check::PostStmt<clang::ObjCBoxedExpr>::_register<(anonymous namespace)::ObjCNonNilReturnValueChecker>((anonymous namespace)::ObjCNonNilReturnValueChecker*, clang::ento::CheckerManager&) Line | Count | Source | 112 | 49 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 113 | 49 | mgr._registerForPostStmt(CheckerManager::CheckStmtFunc(checker, | 114 | 49 | _checkStmt<CHECKER>), | 115 | 49 | _handlesStmt); | 116 | 49 | } |
DynamicTypePropagation.cpp:void clang::ento::check::PostStmt<clang::CastExpr>::_register<(anonymous namespace)::DynamicTypePropagation>((anonymous namespace)::DynamicTypePropagation*, clang::ento::CheckerManager&) Line | Count | Source | 112 | 1.23k | static void _register(CHECKER *checker, CheckerManager &mgr) { | 113 | 1.23k | mgr._registerForPostStmt(CheckerManager::CheckStmtFunc(checker, | 114 | 1.23k | _checkStmt<CHECKER>), | 115 | 1.23k | _handlesStmt); | 116 | 1.23k | } |
DynamicTypePropagation.cpp:void clang::ento::check::PostStmt<clang::CXXNewExpr>::_register<(anonymous namespace)::DynamicTypePropagation>((anonymous namespace)::DynamicTypePropagation*, clang::ento::CheckerManager&) Line | Count | Source | 112 | 1.23k | static void _register(CHECKER *checker, CheckerManager &mgr) { | 113 | 1.23k | mgr._registerForPostStmt(CheckerManager::CheckStmtFunc(checker, | 114 | 1.23k | _checkStmt<CHECKER>), | 115 | 1.23k | _handlesStmt); | 116 | 1.23k | } |
DynamicTypeChecker.cpp:void clang::ento::check::PostStmt<clang::ImplicitCastExpr>::_register<(anonymous namespace)::DynamicTypeChecker>((anonymous namespace)::DynamicTypeChecker*, clang::ento::CheckerManager&) Line | Count | Source | 112 | 73 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 113 | 73 | mgr._registerForPostStmt(CheckerManager::CheckStmtFunc(checker, | 114 | 73 | _checkStmt<CHECKER>), | 115 | 73 | _handlesStmt); | 116 | 73 | } |
IteratorModeling.cpp:void clang::ento::check::PostStmt<clang::UnaryOperator>::_register<(anonymous namespace)::IteratorModeling>((anonymous namespace)::IteratorModeling*, clang::ento::CheckerManager&) Line | Count | Source | 112 | 19 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 113 | 19 | mgr._registerForPostStmt(CheckerManager::CheckStmtFunc(checker, | 114 | 19 | _checkStmt<CHECKER>), | 115 | 19 | _handlesStmt); | 116 | 19 | } |
IteratorModeling.cpp:void clang::ento::check::PostStmt<clang::BinaryOperator>::_register<(anonymous namespace)::IteratorModeling>((anonymous namespace)::IteratorModeling*, clang::ento::CheckerManager&) Line | Count | Source | 112 | 19 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 113 | 19 | mgr._registerForPostStmt(CheckerManager::CheckStmtFunc(checker, | 114 | 19 | _checkStmt<CHECKER>), | 115 | 19 | _handlesStmt); | 116 | 19 | } |
IteratorModeling.cpp:void clang::ento::check::PostStmt<clang::MaterializeTemporaryExpr>::_register<(anonymous namespace)::IteratorModeling>((anonymous namespace)::IteratorModeling*, clang::ento::CheckerManager&) Line | Count | Source | 112 | 19 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 113 | 19 | mgr._registerForPostStmt(CheckerManager::CheckStmtFunc(checker, | 114 | 19 | _checkStmt<CHECKER>), | 115 | 19 | _handlesStmt); | 116 | 19 | } |
LocalizationChecker.cpp:void clang::ento::check::PostStmt<clang::ObjCStringLiteral>::_register<(anonymous namespace)::NonLocalizedStringChecker>((anonymous namespace)::NonLocalizedStringChecker*, clang::ento::CheckerManager&) Line | Count | Source | 112 | 2 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 113 | 2 | mgr._registerForPostStmt(CheckerManager::CheckStmtFunc(checker, | 114 | 2 | _checkStmt<CHECKER>), | 115 | 2 | _handlesStmt); | 116 | 2 | } |
MacOSKeychainAPIChecker.cpp:void clang::ento::check::PostStmt<clang::CallExpr>::_register<(anonymous namespace)::MacOSKeychainAPIChecker>((anonymous namespace)::MacOSKeychainAPIChecker*, clang::ento::CheckerManager&) Line | Count | Source | 112 | 48 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 113 | 48 | mgr._registerForPostStmt(CheckerManager::CheckStmtFunc(checker, | 114 | 48 | _checkStmt<CHECKER>), | 115 | 48 | _handlesStmt); | 116 | 48 | } |
MallocChecker.cpp:void clang::ento::check::PostStmt<clang::BlockExpr>::_register<(anonymous namespace)::MallocChecker>((anonymous namespace)::MallocChecker*, clang::ento::CheckerManager&) Line | Count | Source | 112 | 241 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 113 | 241 | mgr._registerForPostStmt(CheckerManager::CheckStmtFunc(checker, | 114 | 241 | _checkStmt<CHECKER>), | 115 | 241 | _handlesStmt); | 116 | 241 | } |
NullabilityChecker.cpp:void clang::ento::check::PostStmt<clang::ExplicitCastExpr>::_register<(anonymous namespace)::NullabilityChecker>((anonymous namespace)::NullabilityChecker*, clang::ento::CheckerManager&) Line | Count | Source | 112 | 51 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 113 | 51 | mgr._registerForPostStmt(CheckerManager::CheckStmtFunc(checker, | 114 | 51 | _checkStmt<CHECKER>), | 115 | 51 | _handlesStmt); | 116 | 51 | } |
ObjCContainersChecker.cpp:void clang::ento::check::PostStmt<clang::CallExpr>::_register<(anonymous namespace)::ObjCContainersChecker>((anonymous namespace)::ObjCContainersChecker*, clang::ento::CheckerManager&) Line | Count | Source | 112 | 47 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 113 | 47 | mgr._registerForPostStmt(CheckerManager::CheckStmtFunc(checker, | 114 | 47 | _checkStmt<CHECKER>), | 115 | 47 | _handlesStmt); | 116 | 47 | } |
ObjCSelfInitChecker.cpp:void clang::ento::check::PostStmt<clang::ObjCIvarRefExpr>::_register<(anonymous namespace)::ObjCSelfInitChecker>((anonymous namespace)::ObjCSelfInitChecker*, clang::ento::CheckerManager&) Line | Count | Source | 112 | 49 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 113 | 49 | mgr._registerForPostStmt(CheckerManager::CheckStmtFunc(checker, | 114 | 49 | _checkStmt<CHECKER>), | 115 | 49 | _handlesStmt); | 116 | 49 | } |
PointerArithChecker.cpp:void clang::ento::check::PostStmt<clang::CastExpr>::_register<(anonymous namespace)::PointerArithChecker>((anonymous namespace)::PointerArithChecker*, clang::ento::CheckerManager&) Line | Count | Source | 112 | 74 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 113 | 74 | mgr._registerForPostStmt(CheckerManager::CheckStmtFunc(checker, | 114 | 74 | _checkStmt<CHECKER>), | 115 | 74 | _handlesStmt); | 116 | 74 | } |
PointerArithChecker.cpp:void clang::ento::check::PostStmt<clang::CXXNewExpr>::_register<(anonymous namespace)::PointerArithChecker>((anonymous namespace)::PointerArithChecker*, clang::ento::CheckerManager&) Line | Count | Source | 112 | 74 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 113 | 74 | mgr._registerForPostStmt(CheckerManager::CheckStmtFunc(checker, | 114 | 74 | _checkStmt<CHECKER>), | 115 | 74 | _handlesStmt); | 116 | 74 | } |
PointerArithChecker.cpp:void clang::ento::check::PostStmt<clang::CallExpr>::_register<(anonymous namespace)::PointerArithChecker>((anonymous namespace)::PointerArithChecker*, clang::ento::CheckerManager&) Line | Count | Source | 112 | 74 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 113 | 74 | mgr._registerForPostStmt(CheckerManager::CheckStmtFunc(checker, | 114 | 74 | _checkStmt<CHECKER>), | 115 | 74 | _handlesStmt); | 116 | 74 | } |
void clang::ento::check::PostStmt<clang::BlockExpr>::_register<clang::ento::retaincountchecker::RetainCountChecker>(clang::ento::retaincountchecker::RetainCountChecker*, clang::ento::CheckerManager&) Line | Count | Source | 112 | 94 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 113 | 94 | mgr._registerForPostStmt(CheckerManager::CheckStmtFunc(checker, | 114 | 94 | _checkStmt<CHECKER>), | 115 | 94 | _handlesStmt); | 116 | 94 | } |
void clang::ento::check::PostStmt<clang::CastExpr>::_register<clang::ento::retaincountchecker::RetainCountChecker>(clang::ento::retaincountchecker::RetainCountChecker*, clang::ento::CheckerManager&) Line | Count | Source | 112 | 94 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 113 | 94 | mgr._registerForPostStmt(CheckerManager::CheckStmtFunc(checker, | 114 | 94 | _checkStmt<CHECKER>), | 115 | 94 | _handlesStmt); | 116 | 94 | } |
void clang::ento::check::PostStmt<clang::ObjCArrayLiteral>::_register<clang::ento::retaincountchecker::RetainCountChecker>(clang::ento::retaincountchecker::RetainCountChecker*, clang::ento::CheckerManager&) Line | Count | Source | 112 | 94 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 113 | 94 | mgr._registerForPostStmt(CheckerManager::CheckStmtFunc(checker, | 114 | 94 | _checkStmt<CHECKER>), | 115 | 94 | _handlesStmt); | 116 | 94 | } |
void clang::ento::check::PostStmt<clang::ObjCDictionaryLiteral>::_register<clang::ento::retaincountchecker::RetainCountChecker>(clang::ento::retaincountchecker::RetainCountChecker*, clang::ento::CheckerManager&) Line | Count | Source | 112 | 94 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 113 | 94 | mgr._registerForPostStmt(CheckerManager::CheckStmtFunc(checker, | 114 | 94 | _checkStmt<CHECKER>), | 115 | 94 | _handlesStmt); | 116 | 94 | } |
void clang::ento::check::PostStmt<clang::ObjCBoxedExpr>::_register<clang::ento::retaincountchecker::RetainCountChecker>(clang::ento::retaincountchecker::RetainCountChecker*, clang::ento::CheckerManager&) Line | Count | Source | 112 | 94 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 113 | 94 | mgr._registerForPostStmt(CheckerManager::CheckStmtFunc(checker, | 114 | 94 | _checkStmt<CHECKER>), | 115 | 94 | _handlesStmt); | 116 | 94 | } |
void clang::ento::check::PostStmt<clang::ObjCIvarRefExpr>::_register<clang::ento::retaincountchecker::RetainCountChecker>(clang::ento::retaincountchecker::RetainCountChecker*, clang::ento::CheckerManager&) Line | Count | Source | 112 | 94 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 113 | 94 | mgr._registerForPostStmt(CheckerManager::CheckStmtFunc(checker, | 114 | 94 | _checkStmt<CHECKER>), | 115 | 94 | _handlesStmt); | 116 | 94 | } |
TaintTesterChecker.cpp:void clang::ento::check::PostStmt<clang::Expr>::_register<(anonymous namespace)::TaintTesterChecker>((anonymous namespace)::TaintTesterChecker*, clang::ento::CheckerManager&) Line | Count | Source | 112 | 8 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 113 | 8 | mgr._registerForPostStmt(CheckerManager::CheckStmtFunc(checker, | 114 | 8 | _checkStmt<CHECKER>), | 115 | 8 | _handlesStmt); | 116 | 8 | } |
UndefCapturedBlockVarChecker.cpp:void clang::ento::check::PostStmt<clang::BlockExpr>::_register<(anonymous namespace)::UndefCapturedBlockVarChecker>((anonymous namespace)::UndefCapturedBlockVarChecker*, clang::ento::CheckerManager&) Line | Count | Source | 112 | 1.23k | static void _register(CHECKER *checker, CheckerManager &mgr) { | 113 | 1.23k | mgr._registerForPostStmt(CheckerManager::CheckStmtFunc(checker, | 114 | 1.23k | _checkStmt<CHECKER>), | 115 | 1.23k | _handlesStmt); | 116 | 1.23k | } |
UndefResultChecker.cpp:void clang::ento::check::PostStmt<clang::BinaryOperator>::_register<(anonymous namespace)::UndefResultChecker>((anonymous namespace)::UndefResultChecker*, clang::ento::CheckerManager&) Line | Count | Source | 112 | 1.23k | static void _register(CHECKER *checker, CheckerManager &mgr) { | 113 | 1.23k | mgr._registerForPostStmt(CheckerManager::CheckStmtFunc(checker, | 114 | 1.23k | _checkStmt<CHECKER>), | 115 | 1.23k | _handlesStmt); | 116 | 1.23k | } |
|
117 | | }; |
118 | | |
119 | | class PreObjCMessage { |
120 | | template <typename CHECKER> |
121 | | static void _checkObjCMessage(void *checker, const ObjCMethodCall &msg, |
122 | 9.89k | CheckerContext &C) { |
123 | 9.89k | ((const CHECKER *)checker)->checkPreObjCMessage(msg, C); |
124 | 9.89k | } BasicObjCFoundationChecks.cpp:void clang::ento::check::PreObjCMessage::_checkObjCMessage<(anonymous namespace)::NilArgChecker>(void*, clang::ento::ObjCMethodCall const&, clang::ento::CheckerContext&) Line | Count | Source | 122 | 491 | CheckerContext &C) { | 123 | 491 | ((const CHECKER *)checker)->checkPreObjCMessage(msg, C); | 124 | 491 | } |
BasicObjCFoundationChecks.cpp:void clang::ento::check::PreObjCMessage::_checkObjCMessage<(anonymous namespace)::ClassReleaseChecker>(void*, clang::ento::ObjCMethodCall const&, clang::ento::CheckerContext&) Line | Count | Source | 122 | 1.23k | CheckerContext &C) { | 123 | 1.23k | ((const CHECKER *)checker)->checkPreObjCMessage(msg, C); | 124 | 1.23k | } |
BasicObjCFoundationChecks.cpp:void clang::ento::check::PreObjCMessage::_checkObjCMessage<(anonymous namespace)::VariadicMethodTypeChecker>(void*, clang::ento::ObjCMethodCall const&, clang::ento::CheckerContext&) Line | Count | Source | 122 | 62 | CheckerContext &C) { | 123 | 62 | ((const CHECKER *)checker)->checkPreObjCMessage(msg, C); | 124 | 62 | } |
CallAndMessageChecker.cpp:void clang::ento::check::PreObjCMessage::_checkObjCMessage<(anonymous namespace)::CallAndMessageChecker>(void*, clang::ento::ObjCMethodCall const&, clang::ento::CheckerContext&) Line | Count | Source | 122 | 3.62k | CheckerContext &C) { | 123 | 3.62k | ((const CHECKER *)checker)->checkPreObjCMessage(msg, C); | 124 | 3.62k | } |
CheckObjCDealloc.cpp:void clang::ento::check::PreObjCMessage::_checkObjCMessage<(anonymous namespace)::ObjCDeallocChecker>(void*, clang::ento::ObjCMethodCall const&, clang::ento::CheckerContext&) Line | Count | Source | 122 | 592 | CheckerContext &C) { | 123 | 592 | ((const CHECKER *)checker)->checkPreObjCMessage(msg, C); | 124 | 592 | } |
DynamicTypePropagation.cpp:void clang::ento::check::PreObjCMessage::_checkObjCMessage<(anonymous namespace)::DynamicTypePropagation>(void*, clang::ento::ObjCMethodCall const&, clang::ento::CheckerContext&) Line | Count | Source | 122 | 3.63k | CheckerContext &C) { | 123 | 3.63k | ((const CHECKER *)checker)->checkPreObjCMessage(msg, C); | 124 | 3.63k | } |
LocalizationChecker.cpp:void clang::ento::check::PreObjCMessage::_checkObjCMessage<(anonymous namespace)::NonLocalizedStringChecker>(void*, clang::ento::ObjCMethodCall const&, clang::ento::CheckerContext&) Line | Count | Source | 122 | 175 | CheckerContext &C) { | 123 | 175 | ((const CHECKER *)checker)->checkPreObjCMessage(msg, C); | 124 | 175 | } |
Unexecuted instantiation: NSAutoreleasePoolChecker.cpp:void clang::ento::check::PreObjCMessage::_checkObjCMessage<(anonymous namespace)::NSAutoreleasePoolChecker>(void*, clang::ento::ObjCMethodCall const&, clang::ento::CheckerContext&) ObjCSuperDeallocChecker.cpp:void clang::ento::check::PreObjCMessage::_checkObjCMessage<(anonymous namespace)::ObjCSuperDeallocChecker>(void*, clang::ento::ObjCMethodCall const&, clang::ento::CheckerContext&) Line | Count | Source | 122 | 89 | CheckerContext &C) { | 123 | 89 | ((const CHECKER *)checker)->checkPreObjCMessage(msg, C); | 124 | 89 | } |
|
125 | | |
126 | | public: |
127 | | template <typename CHECKER> |
128 | 2.73k | static void _register(CHECKER *checker, CheckerManager &mgr) { |
129 | 2.73k | mgr._registerForPreObjCMessage( |
130 | 2.73k | CheckerManager::CheckObjCMessageFunc(checker, _checkObjCMessage<CHECKER>)); |
131 | 2.73k | } BasicObjCFoundationChecks.cpp:void clang::ento::check::PreObjCMessage::_register<(anonymous namespace)::NilArgChecker>((anonymous namespace)::NilArgChecker*, clang::ento::CheckerManager&) Line | Count | Source | 128 | 53 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 129 | 53 | mgr._registerForPreObjCMessage( | 130 | 53 | CheckerManager::CheckObjCMessageFunc(checker, _checkObjCMessage<CHECKER>)); | 131 | 53 | } |
BasicObjCFoundationChecks.cpp:void clang::ento::check::PreObjCMessage::_register<(anonymous namespace)::ClassReleaseChecker>((anonymous namespace)::ClassReleaseChecker*, clang::ento::CheckerManager&) Line | Count | Source | 128 | 55 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 129 | 55 | mgr._registerForPreObjCMessage( | 130 | 55 | CheckerManager::CheckObjCMessageFunc(checker, _checkObjCMessage<CHECKER>)); | 131 | 55 | } |
BasicObjCFoundationChecks.cpp:void clang::ento::check::PreObjCMessage::_register<(anonymous namespace)::VariadicMethodTypeChecker>((anonymous namespace)::VariadicMethodTypeChecker*, clang::ento::CheckerManager&) Line | Count | Source | 128 | 47 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 129 | 47 | mgr._registerForPreObjCMessage( | 130 | 47 | CheckerManager::CheckObjCMessageFunc(checker, _checkObjCMessage<CHECKER>)); | 131 | 47 | } |
CallAndMessageChecker.cpp:void clang::ento::check::PreObjCMessage::_register<(anonymous namespace)::CallAndMessageChecker>((anonymous namespace)::CallAndMessageChecker*, clang::ento::CheckerManager&) Line | Count | Source | 128 | 1.24k | static void _register(CHECKER *checker, CheckerManager &mgr) { | 129 | 1.24k | mgr._registerForPreObjCMessage( | 130 | 1.24k | CheckerManager::CheckObjCMessageFunc(checker, _checkObjCMessage<CHECKER>)); | 131 | 1.24k | } |
CheckObjCDealloc.cpp:void clang::ento::check::PreObjCMessage::_register<(anonymous namespace)::ObjCDeallocChecker>((anonymous namespace)::ObjCDeallocChecker*, clang::ento::CheckerManager&) Line | Count | Source | 128 | 50 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 129 | 50 | mgr._registerForPreObjCMessage( | 130 | 50 | CheckerManager::CheckObjCMessageFunc(checker, _checkObjCMessage<CHECKER>)); | 131 | 50 | } |
DynamicTypePropagation.cpp:void clang::ento::check::PreObjCMessage::_register<(anonymous namespace)::DynamicTypePropagation>((anonymous namespace)::DynamicTypePropagation*, clang::ento::CheckerManager&) Line | Count | Source | 128 | 1.23k | static void _register(CHECKER *checker, CheckerManager &mgr) { | 129 | 1.23k | mgr._registerForPreObjCMessage( | 130 | 1.23k | CheckerManager::CheckObjCMessageFunc(checker, _checkObjCMessage<CHECKER>)); | 131 | 1.23k | } |
LocalizationChecker.cpp:void clang::ento::check::PreObjCMessage::_register<(anonymous namespace)::NonLocalizedStringChecker>((anonymous namespace)::NonLocalizedStringChecker*, clang::ento::CheckerManager&) Line | Count | Source | 128 | 2 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 129 | 2 | mgr._registerForPreObjCMessage( | 130 | 2 | CheckerManager::CheckObjCMessageFunc(checker, _checkObjCMessage<CHECKER>)); | 131 | 2 | } |
Unexecuted instantiation: NSAutoreleasePoolChecker.cpp:void clang::ento::check::PreObjCMessage::_register<(anonymous namespace)::NSAutoreleasePoolChecker>((anonymous namespace)::NSAutoreleasePoolChecker*, clang::ento::CheckerManager&) ObjCSuperDeallocChecker.cpp:void clang::ento::check::PreObjCMessage::_register<(anonymous namespace)::ObjCSuperDeallocChecker>((anonymous namespace)::ObjCSuperDeallocChecker*, clang::ento::CheckerManager&) Line | Count | Source | 128 | 47 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 129 | 47 | mgr._registerForPreObjCMessage( | 130 | 47 | CheckerManager::CheckObjCMessageFunc(checker, _checkObjCMessage<CHECKER>)); | 131 | 47 | } |
|
132 | | }; |
133 | | |
134 | | class ObjCMessageNil { |
135 | | template <typename CHECKER> |
136 | | static void _checkObjCMessage(void *checker, const ObjCMethodCall &msg, |
137 | 96 | CheckerContext &C) { |
138 | 96 | ((const CHECKER *)checker)->checkObjCMessageNil(msg, C); |
139 | 96 | } |
140 | | |
141 | | public: |
142 | | template <typename CHECKER> |
143 | 1.24k | static void _register(CHECKER *checker, CheckerManager &mgr) { |
144 | 1.24k | mgr._registerForObjCMessageNil( |
145 | 1.24k | CheckerManager::CheckObjCMessageFunc(checker, _checkObjCMessage<CHECKER>)); |
146 | 1.24k | } |
147 | | }; |
148 | | |
149 | | class PostObjCMessage { |
150 | | template <typename CHECKER> |
151 | | static void _checkObjCMessage(void *checker, const ObjCMethodCall &msg, |
152 | 8.59k | CheckerContext &C) { |
153 | 8.59k | ((const CHECKER *)checker)->checkPostObjCMessage(msg, C); |
154 | 8.59k | } BasicObjCFoundationChecks.cpp:void clang::ento::check::PostObjCMessage::_checkObjCMessage<(anonymous namespace)::ObjCLoopChecker>(void*, clang::ento::ObjCMethodCall const&, clang::ento::CheckerContext&) Line | Count | Source | 152 | 145 | CheckerContext &C) { | 153 | 145 | ((const CHECKER *)checker)->checkPostObjCMessage(msg, C); | 154 | 145 | } |
BasicObjCFoundationChecks.cpp:void clang::ento::check::PostObjCMessage::_checkObjCMessage<(anonymous namespace)::ObjCNonNilReturnValueChecker>(void*, clang::ento::ObjCMethodCall const&, clang::ento::CheckerContext&) Line | Count | Source | 152 | 76 | CheckerContext &C) { | 153 | 76 | ((const CHECKER *)checker)->checkPostObjCMessage(msg, C); | 154 | 76 | } |
CheckObjCDealloc.cpp:void clang::ento::check::PostObjCMessage::_checkObjCMessage<(anonymous namespace)::ObjCDeallocChecker>(void*, clang::ento::ObjCMethodCall const&, clang::ento::CheckerContext&) Line | Count | Source | 152 | 589 | CheckerContext &C) { | 153 | 589 | ((const CHECKER *)checker)->checkPostObjCMessage(msg, C); | 154 | 589 | } |
DynamicTypePropagation.cpp:void clang::ento::check::PostObjCMessage::_checkObjCMessage<(anonymous namespace)::DynamicTypePropagation>(void*, clang::ento::ObjCMethodCall const&, clang::ento::CheckerContext&) Line | Count | Source | 152 | 3.53k | CheckerContext &C) { | 153 | 3.53k | ((const CHECKER *)checker)->checkPostObjCMessage(msg, C); | 154 | 3.53k | } |
LocalizationChecker.cpp:void clang::ento::check::PostObjCMessage::_checkObjCMessage<(anonymous namespace)::NonLocalizedStringChecker>(void*, clang::ento::ObjCMethodCall const&, clang::ento::CheckerContext&) Line | Count | Source | 152 | 175 | CheckerContext &C) { | 153 | 175 | ((const CHECKER *)checker)->checkPostObjCMessage(msg, C); | 154 | 175 | } |
MallocChecker.cpp:void clang::ento::check::PostObjCMessage::_checkObjCMessage<(anonymous namespace)::MallocChecker>(void*, clang::ento::ObjCMethodCall const&, clang::ento::CheckerContext&) Line | Count | Source | 152 | 97 | CheckerContext &C) { | 153 | 97 | ((const CHECKER *)checker)->checkPostObjCMessage(msg, C); | 154 | 97 | } |
NoReturnFunctionChecker.cpp:void clang::ento::check::PostObjCMessage::_checkObjCMessage<(anonymous namespace)::NoReturnFunctionChecker>(void*, clang::ento::ObjCMethodCall const&, clang::ento::CheckerContext&) Line | Count | Source | 152 | 3.52k | CheckerContext &C) { | 153 | 3.52k | ((const CHECKER *)checker)->checkPostObjCMessage(msg, C); | 154 | 3.52k | } |
NullabilityChecker.cpp:void clang::ento::check::PostObjCMessage::_checkObjCMessage<(anonymous namespace)::NullabilityChecker>(void*, clang::ento::ObjCMethodCall const&, clang::ento::CheckerContext&) Line | Count | Source | 152 | 202 | CheckerContext &C) { | 153 | 202 | ((const CHECKER *)checker)->checkPostObjCMessage(msg, C); | 154 | 202 | } |
ObjCSelfInitChecker.cpp:void clang::ento::check::PostObjCMessage::_checkObjCMessage<(anonymous namespace)::ObjCSelfInitChecker>(void*, clang::ento::ObjCMethodCall const&, clang::ento::CheckerContext&) Line | Count | Source | 152 | 163 | CheckerContext &C) { | 153 | 163 | ((const CHECKER *)checker)->checkPostObjCMessage(msg, C); | 154 | 163 | } |
ObjCSuperDeallocChecker.cpp:void clang::ento::check::PostObjCMessage::_checkObjCMessage<(anonymous namespace)::ObjCSuperDeallocChecker>(void*, clang::ento::ObjCMethodCall const&, clang::ento::CheckerContext&) Line | Count | Source | 152 | 93 | CheckerContext &C) { | 153 | 93 | ((const CHECKER *)checker)->checkPostObjCMessage(msg, C); | 154 | 93 | } |
Unexecuted instantiation: TrustNonnullChecker.cpp:void clang::ento::check::PostObjCMessage::_checkObjCMessage<(anonymous namespace)::TrustNonnullChecker>(void*, clang::ento::ObjCMethodCall const&, clang::ento::CheckerContext&) |
155 | | |
156 | | public: |
157 | | template <typename CHECKER> |
158 | 3.06k | static void _register(CHECKER *checker, CheckerManager &mgr) { |
159 | 3.06k | mgr._registerForPostObjCMessage( |
160 | 3.06k | CheckerManager::CheckObjCMessageFunc(checker, _checkObjCMessage<CHECKER>)); |
161 | 3.06k | } BasicObjCFoundationChecks.cpp:void clang::ento::check::PostObjCMessage::_register<(anonymous namespace)::ObjCLoopChecker>((anonymous namespace)::ObjCLoopChecker*, clang::ento::CheckerManager&) Line | Count | Source | 158 | 48 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 159 | 48 | mgr._registerForPostObjCMessage( | 160 | 48 | CheckerManager::CheckObjCMessageFunc(checker, _checkObjCMessage<CHECKER>)); | 161 | 48 | } |
BasicObjCFoundationChecks.cpp:void clang::ento::check::PostObjCMessage::_register<(anonymous namespace)::ObjCNonNilReturnValueChecker>((anonymous namespace)::ObjCNonNilReturnValueChecker*, clang::ento::CheckerManager&) Line | Count | Source | 158 | 49 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 159 | 49 | mgr._registerForPostObjCMessage( | 160 | 49 | CheckerManager::CheckObjCMessageFunc(checker, _checkObjCMessage<CHECKER>)); | 161 | 49 | } |
CheckObjCDealloc.cpp:void clang::ento::check::PostObjCMessage::_register<(anonymous namespace)::ObjCDeallocChecker>((anonymous namespace)::ObjCDeallocChecker*, clang::ento::CheckerManager&) Line | Count | Source | 158 | 50 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 159 | 50 | mgr._registerForPostObjCMessage( | 160 | 50 | CheckerManager::CheckObjCMessageFunc(checker, _checkObjCMessage<CHECKER>)); | 161 | 50 | } |
DynamicTypePropagation.cpp:void clang::ento::check::PostObjCMessage::_register<(anonymous namespace)::DynamicTypePropagation>((anonymous namespace)::DynamicTypePropagation*, clang::ento::CheckerManager&) Line | Count | Source | 158 | 1.23k | static void _register(CHECKER *checker, CheckerManager &mgr) { | 159 | 1.23k | mgr._registerForPostObjCMessage( | 160 | 1.23k | CheckerManager::CheckObjCMessageFunc(checker, _checkObjCMessage<CHECKER>)); | 161 | 1.23k | } |
LocalizationChecker.cpp:void clang::ento::check::PostObjCMessage::_register<(anonymous namespace)::NonLocalizedStringChecker>((anonymous namespace)::NonLocalizedStringChecker*, clang::ento::CheckerManager&) Line | Count | Source | 158 | 2 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 159 | 2 | mgr._registerForPostObjCMessage( | 160 | 2 | CheckerManager::CheckObjCMessageFunc(checker, _checkObjCMessage<CHECKER>)); | 161 | 2 | } |
MallocChecker.cpp:void clang::ento::check::PostObjCMessage::_register<(anonymous namespace)::MallocChecker>((anonymous namespace)::MallocChecker*, clang::ento::CheckerManager&) Line | Count | Source | 158 | 241 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 159 | 241 | mgr._registerForPostObjCMessage( | 160 | 241 | CheckerManager::CheckObjCMessageFunc(checker, _checkObjCMessage<CHECKER>)); | 161 | 241 | } |
NoReturnFunctionChecker.cpp:void clang::ento::check::PostObjCMessage::_register<(anonymous namespace)::NoReturnFunctionChecker>((anonymous namespace)::NoReturnFunctionChecker*, clang::ento::CheckerManager&) Line | Count | Source | 158 | 1.24k | static void _register(CHECKER *checker, CheckerManager &mgr) { | 159 | 1.24k | mgr._registerForPostObjCMessage( | 160 | 1.24k | CheckerManager::CheckObjCMessageFunc(checker, _checkObjCMessage<CHECKER>)); | 161 | 1.24k | } |
NullabilityChecker.cpp:void clang::ento::check::PostObjCMessage::_register<(anonymous namespace)::NullabilityChecker>((anonymous namespace)::NullabilityChecker*, clang::ento::CheckerManager&) Line | Count | Source | 158 | 51 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 159 | 51 | mgr._registerForPostObjCMessage( | 160 | 51 | CheckerManager::CheckObjCMessageFunc(checker, _checkObjCMessage<CHECKER>)); | 161 | 51 | } |
ObjCSelfInitChecker.cpp:void clang::ento::check::PostObjCMessage::_register<(anonymous namespace)::ObjCSelfInitChecker>((anonymous namespace)::ObjCSelfInitChecker*, clang::ento::CheckerManager&) Line | Count | Source | 158 | 49 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 159 | 49 | mgr._registerForPostObjCMessage( | 160 | 49 | CheckerManager::CheckObjCMessageFunc(checker, _checkObjCMessage<CHECKER>)); | 161 | 49 | } |
ObjCSuperDeallocChecker.cpp:void clang::ento::check::PostObjCMessage::_register<(anonymous namespace)::ObjCSuperDeallocChecker>((anonymous namespace)::ObjCSuperDeallocChecker*, clang::ento::CheckerManager&) Line | Count | Source | 158 | 47 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 159 | 47 | mgr._registerForPostObjCMessage( | 160 | 47 | CheckerManager::CheckObjCMessageFunc(checker, _checkObjCMessage<CHECKER>)); | 161 | 47 | } |
TrustNonnullChecker.cpp:void clang::ento::check::PostObjCMessage::_register<(anonymous namespace)::TrustNonnullChecker>((anonymous namespace)::TrustNonnullChecker*, clang::ento::CheckerManager&) Line | Count | Source | 158 | 42 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 159 | 42 | mgr._registerForPostObjCMessage( | 160 | 42 | CheckerManager::CheckObjCMessageFunc(checker, _checkObjCMessage<CHECKER>)); | 161 | 42 | } |
|
162 | | }; |
163 | | |
164 | | class PreCall { |
165 | | template <typename CHECKER> |
166 | | static void _checkCall(void *checker, const CallEvent &msg, |
167 | 568k | CheckerContext &C) { |
168 | 568k | ((const CHECKER *)checker)->checkPreCall(msg, C); |
169 | 568k | } AnalysisOrderChecker.cpp:void clang::ento::check::PreCall::_checkCall<(anonymous namespace)::AnalysisOrderChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 167 | 64 | CheckerContext &C) { | 168 | 64 | ((const CHECKER *)checker)->checkPreCall(msg, C); | 169 | 64 | } |
BasicObjCFoundationChecks.cpp:void clang::ento::check::PreCall::_checkCall<(anonymous namespace)::CFRetainReleaseChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 167 | 2.70k | CheckerContext &C) { | 168 | 2.70k | ((const CHECKER *)checker)->checkPreCall(msg, C); | 169 | 2.70k | } |
CallAndMessageChecker.cpp:void clang::ento::check::PreCall::_checkCall<(anonymous namespace)::CallAndMessageChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 167 | 100k | CheckerContext &C) { | 168 | 100k | ((const CHECKER *)checker)->checkPreCall(msg, C); | 169 | 100k | } |
CheckObjCDealloc.cpp:void clang::ento::check::PreCall::_checkCall<(anonymous namespace)::ObjCDeallocChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 167 | 1.05k | CheckerContext &C) { | 168 | 1.05k | ((const CHECKER *)checker)->checkPreCall(msg, C); | 169 | 1.05k | } |
ChrootChecker.cpp:void clang::ento::check::PreCall::_checkCall<(anonymous namespace)::ChrootChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 167 | 33 | CheckerContext &C) { | 168 | 33 | ((const CHECKER *)checker)->checkPreCall(msg, C); | 169 | 33 | } |
DynamicTypePropagation.cpp:void clang::ento::check::PreCall::_checkCall<(anonymous namespace)::DynamicTypePropagation>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 167 | 99.8k | CheckerContext &C) { | 168 | 99.8k | ((const CHECKER *)checker)->checkPreCall(msg, C); | 169 | 99.8k | } |
ErrnoChecker.cpp:void clang::ento::check::PreCall::_checkCall<(anonymous namespace)::ErrnoChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 167 | 294 | CheckerContext &C) { | 168 | 294 | ((const CHECKER *)checker)->checkPreCall(msg, C); | 169 | 294 | } |
FuchsiaHandleChecker.cpp:void clang::ento::check::PreCall::_checkCall<(anonymous namespace)::FuchsiaHandleChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 167 | 158 | CheckerContext &C) { | 168 | 158 | ((const CHECKER *)checker)->checkPreCall(msg, C); | 169 | 158 | } |
GenericTaintChecker.cpp:void clang::ento::check::PreCall::_checkCall<(anonymous namespace)::GenericTaintChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 167 | 2.54k | CheckerContext &C) { | 168 | 2.54k | ((const CHECKER *)checker)->checkPreCall(msg, C); | 169 | 2.54k | } |
InvalidatedIteratorChecker.cpp:void clang::ento::check::PreCall::_checkCall<(anonymous namespace)::InvalidatedIteratorChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 167 | 217 | CheckerContext &C) { | 168 | 217 | ((const CHECKER *)checker)->checkPreCall(msg, C); | 169 | 217 | } |
IteratorRangeChecker.cpp:void clang::ento::check::PreCall::_checkCall<(anonymous namespace)::IteratorRangeChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 167 | 1.77k | CheckerContext &C) { | 168 | 1.77k | ((const CHECKER *)checker)->checkPreCall(msg, C); | 169 | 1.77k | } |
LocalizationChecker.cpp:void clang::ento::check::PreCall::_checkCall<(anonymous namespace)::NonLocalizedStringChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 167 | 196 | CheckerContext &C) { | 168 | 196 | ((const CHECKER *)checker)->checkPreCall(msg, C); | 169 | 196 | } |
MallocChecker.cpp:void clang::ento::check::PreCall::_checkCall<(anonymous namespace)::MallocChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 167 | 42.0k | CheckerContext &C) { | 168 | 42.0k | ((const CHECKER *)checker)->checkPreCall(msg, C); | 169 | 42.0k | } |
MismatchedIteratorChecker.cpp:void clang::ento::check::PreCall::_checkCall<(anonymous namespace)::MismatchedIteratorChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 167 | 370 | CheckerContext &C) { | 168 | 370 | ((const CHECKER *)checker)->checkPreCall(msg, C); | 169 | 370 | } |
MmapWriteExecChecker.cpp:void clang::ento::check::PreCall::_checkCall<(anonymous namespace)::MmapWriteExecChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 167 | 12 | CheckerContext &C) { | 168 | 12 | ((const CHECKER *)checker)->checkPreCall(msg, C); | 169 | 12 | } |
MoveChecker.cpp:void clang::ento::check::PreCall::_checkCall<(anonymous namespace)::MoveChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 167 | 49.0k | CheckerContext &C) { | 168 | 49.0k | ((const CHECKER *)checker)->checkPreCall(msg, C); | 169 | 49.0k | } |
void clang::ento::check::PreCall::_checkCall<clang::ento::mpi::MPIChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 167 | 131 | CheckerContext &C) { | 168 | 131 | ((const CHECKER *)checker)->checkPreCall(msg, C); | 169 | 131 | } |
NonNullParamChecker.cpp:void clang::ento::check::PreCall::_checkCall<(anonymous namespace)::NonNullParamChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 167 | 99.9k | CheckerContext &C) { | 168 | 99.9k | ((const CHECKER *)checker)->checkPreCall(msg, C); | 169 | 99.9k | } |
NullabilityChecker.cpp:void clang::ento::check::PreCall::_checkCall<(anonymous namespace)::NullabilityChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 167 | 735 | CheckerContext &C) { | 168 | 735 | ((const CHECKER *)checker)->checkPreCall(msg, C); | 169 | 735 | } |
ObjCSelfInitChecker.cpp:void clang::ento::check::PreCall::_checkCall<(anonymous namespace)::ObjCSelfInitChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 167 | 547 | CheckerContext &C) { | 168 | 547 | ((const CHECKER *)checker)->checkPreCall(msg, C); | 169 | 547 | } |
ObjCSuperDeallocChecker.cpp:void clang::ento::check::PreCall::_checkCall<(anonymous namespace)::ObjCSuperDeallocChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 167 | 468 | CheckerContext &C) { | 168 | 468 | ((const CHECKER *)checker)->checkPreCall(msg, C); | 169 | 468 | } |
SimpleStreamChecker.cpp:void clang::ento::check::PreCall::_checkCall<(anonymous namespace)::SimpleStreamChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 167 | 52 | CheckerContext &C) { | 168 | 52 | ((const CHECKER *)checker)->checkPreCall(msg, C); | 169 | 52 | } |
SmartPtrChecker.cpp:void clang::ento::check::PreCall::_checkCall<(anonymous namespace)::SmartPtrChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 167 | 1.06k | CheckerContext &C) { | 168 | 1.06k | ((const CHECKER *)checker)->checkPreCall(msg, C); | 169 | 1.06k | } |
StackAddrEscapeChecker.cpp:void clang::ento::check::PreCall::_checkCall<(anonymous namespace)::StackAddrEscapeChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 167 | 99.8k | CheckerContext &C) { | 168 | 99.8k | ((const CHECKER *)checker)->checkPreCall(msg, C); | 169 | 99.8k | } |
StdLibraryFunctionsChecker.cpp:void clang::ento::check::PreCall::_checkCall<(anonymous namespace)::StdLibraryFunctionsChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 167 | 1.06k | CheckerContext &C) { | 168 | 1.06k | ((const CHECKER *)checker)->checkPreCall(msg, C); | 169 | 1.06k | } |
StreamChecker.cpp:void clang::ento::check::PreCall::_checkCall<(anonymous namespace)::StreamChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 167 | 398 | CheckerContext &C) { | 168 | 398 | ((const CHECKER *)checker)->checkPreCall(msg, C); | 169 | 398 | } |
StringChecker.cpp:void clang::ento::check::PreCall::_checkCall<(anonymous namespace)::StringChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 167 | 31.0k | CheckerContext &C) { | 168 | 31.0k | ((const CHECKER *)checker)->checkPreCall(msg, C); | 169 | 31.0k | } |
Unexecuted instantiation: TraversalChecker.cpp:void clang::ento::check::PreCall::_checkCall<(anonymous namespace)::CallDumper>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) VforkChecker.cpp:void clang::ento::check::PreCall::_checkCall<(anonymous namespace)::VforkChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 167 | 1.35k | CheckerContext &C) { | 168 | 1.35k | ((const CHECKER *)checker)->checkPreCall(msg, C); | 169 | 1.35k | } |
ValistChecker.cpp:void clang::ento::check::PreCall::_checkCall<(anonymous namespace)::ValistChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 167 | 232 | CheckerContext &C) { | 168 | 232 | ((const CHECKER *)checker)->checkPreCall(msg, C); | 169 | 232 | } |
VirtualCallChecker.cpp:void clang::ento::check::PreCall::_checkCall<(anonymous namespace)::VirtualCallChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 167 | 31.3k | CheckerContext &C) { | 168 | 31.3k | ((const CHECKER *)checker)->checkPreCall(msg, C); | 169 | 31.3k | } |
|
170 | | |
171 | | public: |
172 | | template <typename CHECKER> |
173 | 5.90k | static void _register(CHECKER *checker, CheckerManager &mgr) { |
174 | 5.90k | mgr._registerForPreCall( |
175 | 5.90k | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); |
176 | 5.90k | } AnalysisOrderChecker.cpp:void clang::ento::check::PreCall::_register<(anonymous namespace)::AnalysisOrderChecker>((anonymous namespace)::AnalysisOrderChecker*, clang::ento::CheckerManager&) Line | Count | Source | 173 | 12 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 174 | 12 | mgr._registerForPreCall( | 175 | 12 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 176 | 12 | } |
BasicObjCFoundationChecks.cpp:void clang::ento::check::PreCall::_register<(anonymous namespace)::CFRetainReleaseChecker>((anonymous namespace)::CFRetainReleaseChecker*, clang::ento::CheckerManager&) Line | Count | Source | 173 | 57 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 174 | 57 | mgr._registerForPreCall( | 175 | 57 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 176 | 57 | } |
CallAndMessageChecker.cpp:void clang::ento::check::PreCall::_register<(anonymous namespace)::CallAndMessageChecker>((anonymous namespace)::CallAndMessageChecker*, clang::ento::CheckerManager&) Line | Count | Source | 173 | 1.24k | static void _register(CHECKER *checker, CheckerManager &mgr) { | 174 | 1.24k | mgr._registerForPreCall( | 175 | 1.24k | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 176 | 1.24k | } |
CheckObjCDealloc.cpp:void clang::ento::check::PreCall::_register<(anonymous namespace)::ObjCDeallocChecker>((anonymous namespace)::ObjCDeallocChecker*, clang::ento::CheckerManager&) Line | Count | Source | 173 | 50 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 174 | 50 | mgr._registerForPreCall( | 175 | 50 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 176 | 50 | } |
ChrootChecker.cpp:void clang::ento::check::PreCall::_register<(anonymous namespace)::ChrootChecker>((anonymous namespace)::ChrootChecker*, clang::ento::CheckerManager&) Line | Count | Source | 173 | 4 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 174 | 4 | mgr._registerForPreCall( | 175 | 4 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 176 | 4 | } |
DynamicTypePropagation.cpp:void clang::ento::check::PreCall::_register<(anonymous namespace)::DynamicTypePropagation>((anonymous namespace)::DynamicTypePropagation*, clang::ento::CheckerManager&) Line | Count | Source | 173 | 1.23k | static void _register(CHECKER *checker, CheckerManager &mgr) { | 174 | 1.23k | mgr._registerForPreCall( | 175 | 1.23k | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 176 | 1.23k | } |
ErrnoChecker.cpp:void clang::ento::check::PreCall::_register<(anonymous namespace)::ErrnoChecker>((anonymous namespace)::ErrnoChecker*, clang::ento::CheckerManager&) Line | Count | Source | 173 | 11 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 174 | 11 | mgr._registerForPreCall( | 175 | 11 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 176 | 11 | } |
FuchsiaHandleChecker.cpp:void clang::ento::check::PreCall::_register<(anonymous namespace)::FuchsiaHandleChecker>((anonymous namespace)::FuchsiaHandleChecker*, clang::ento::CheckerManager&) Line | Count | Source | 173 | 1 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 174 | 1 | mgr._registerForPreCall( | 175 | 1 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 176 | 1 | } |
GenericTaintChecker.cpp:void clang::ento::check::PreCall::_register<(anonymous namespace)::GenericTaintChecker>((anonymous namespace)::GenericTaintChecker*, clang::ento::CheckerManager&) Line | Count | Source | 173 | 26 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 174 | 26 | mgr._registerForPreCall( | 175 | 26 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 176 | 26 | } |
InvalidatedIteratorChecker.cpp:void clang::ento::check::PreCall::_register<(anonymous namespace)::InvalidatedIteratorChecker>((anonymous namespace)::InvalidatedIteratorChecker*, clang::ento::CheckerManager&) Line | Count | Source | 173 | 2 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 174 | 2 | mgr._registerForPreCall( | 175 | 2 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 176 | 2 | } |
IteratorRangeChecker.cpp:void clang::ento::check::PreCall::_register<(anonymous namespace)::IteratorRangeChecker>((anonymous namespace)::IteratorRangeChecker*, clang::ento::CheckerManager&) Line | Count | Source | 173 | 2 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 174 | 2 | mgr._registerForPreCall( | 175 | 2 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 176 | 2 | } |
LocalizationChecker.cpp:void clang::ento::check::PreCall::_register<(anonymous namespace)::NonLocalizedStringChecker>((anonymous namespace)::NonLocalizedStringChecker*, clang::ento::CheckerManager&) Line | Count | Source | 173 | 2 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 174 | 2 | mgr._registerForPreCall( | 175 | 2 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 176 | 2 | } |
MallocChecker.cpp:void clang::ento::check::PreCall::_register<(anonymous namespace)::MallocChecker>((anonymous namespace)::MallocChecker*, clang::ento::CheckerManager&) Line | Count | Source | 173 | 241 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 174 | 241 | mgr._registerForPreCall( | 175 | 241 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 176 | 241 | } |
MismatchedIteratorChecker.cpp:void clang::ento::check::PreCall::_register<(anonymous namespace)::MismatchedIteratorChecker>((anonymous namespace)::MismatchedIteratorChecker*, clang::ento::CheckerManager&) Line | Count | Source | 173 | 2 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 174 | 2 | mgr._registerForPreCall( | 175 | 2 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 176 | 2 | } |
MmapWriteExecChecker.cpp:void clang::ento::check::PreCall::_register<(anonymous namespace)::MmapWriteExecChecker>((anonymous namespace)::MmapWriteExecChecker*, clang::ento::CheckerManager&) Line | Count | Source | 173 | 2 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 174 | 2 | mgr._registerForPreCall( | 175 | 2 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 176 | 2 | } |
MoveChecker.cpp:void clang::ento::check::PreCall::_register<(anonymous namespace)::MoveChecker>((anonymous namespace)::MoveChecker*, clang::ento::CheckerManager&) Line | Count | Source | 173 | 78 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 174 | 78 | mgr._registerForPreCall( | 175 | 78 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 176 | 78 | } |
void clang::ento::check::PreCall::_register<clang::ento::mpi::MPIChecker>(clang::ento::mpi::MPIChecker*, clang::ento::CheckerManager&) Line | Count | Source | 173 | 3 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 174 | 3 | mgr._registerForPreCall( | 175 | 3 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 176 | 3 | } |
NonNullParamChecker.cpp:void clang::ento::check::PreCall::_register<(anonymous namespace)::NonNullParamChecker>((anonymous namespace)::NonNullParamChecker*, clang::ento::CheckerManager&) Line | Count | Source | 173 | 1.23k | static void _register(CHECKER *checker, CheckerManager &mgr) { | 174 | 1.23k | mgr._registerForPreCall( | 175 | 1.23k | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 176 | 1.23k | } |
NullabilityChecker.cpp:void clang::ento::check::PreCall::_register<(anonymous namespace)::NullabilityChecker>((anonymous namespace)::NullabilityChecker*, clang::ento::CheckerManager&) Line | Count | Source | 173 | 51 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 174 | 51 | mgr._registerForPreCall( | 175 | 51 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 176 | 51 | } |
ObjCSelfInitChecker.cpp:void clang::ento::check::PreCall::_register<(anonymous namespace)::ObjCSelfInitChecker>((anonymous namespace)::ObjCSelfInitChecker*, clang::ento::CheckerManager&) Line | Count | Source | 173 | 49 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 174 | 49 | mgr._registerForPreCall( | 175 | 49 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 176 | 49 | } |
ObjCSuperDeallocChecker.cpp:void clang::ento::check::PreCall::_register<(anonymous namespace)::ObjCSuperDeallocChecker>((anonymous namespace)::ObjCSuperDeallocChecker*, clang::ento::CheckerManager&) Line | Count | Source | 173 | 47 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 174 | 47 | mgr._registerForPreCall( | 175 | 47 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 176 | 47 | } |
SimpleStreamChecker.cpp:void clang::ento::check::PreCall::_register<(anonymous namespace)::SimpleStreamChecker>((anonymous namespace)::SimpleStreamChecker*, clang::ento::CheckerManager&) Line | Count | Source | 173 | 4 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 174 | 4 | mgr._registerForPreCall( | 175 | 4 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 176 | 4 | } |
SmartPtrChecker.cpp:void clang::ento::check::PreCall::_register<(anonymous namespace)::SmartPtrChecker>((anonymous namespace)::SmartPtrChecker*, clang::ento::CheckerManager&) Line | Count | Source | 173 | 4 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 174 | 4 | mgr._registerForPreCall( | 175 | 4 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 176 | 4 | } |
StackAddrEscapeChecker.cpp:void clang::ento::check::PreCall::_register<(anonymous namespace)::StackAddrEscapeChecker>((anonymous namespace)::StackAddrEscapeChecker*, clang::ento::CheckerManager&) Line | Count | Source | 173 | 1.23k | static void _register(CHECKER *checker, CheckerManager &mgr) { | 174 | 1.23k | mgr._registerForPreCall( | 175 | 1.23k | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 176 | 1.23k | } |
StdLibraryFunctionsChecker.cpp:void clang::ento::check::PreCall::_register<(anonymous namespace)::StdLibraryFunctionsChecker>((anonymous namespace)::StdLibraryFunctionsChecker*, clang::ento::CheckerManager&) Line | Count | Source | 173 | 83 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 174 | 83 | mgr._registerForPreCall( | 175 | 83 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 176 | 83 | } |
StreamChecker.cpp:void clang::ento::check::PreCall::_register<(anonymous namespace)::StreamChecker>((anonymous namespace)::StreamChecker*, clang::ento::CheckerManager&) Line | Count | Source | 173 | 11 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 174 | 11 | mgr._registerForPreCall( | 175 | 11 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 176 | 11 | } |
StringChecker.cpp:void clang::ento::check::PreCall::_register<(anonymous namespace)::StringChecker>((anonymous namespace)::StringChecker*, clang::ento::CheckerManager&) Line | Count | Source | 173 | 66 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 174 | 66 | mgr._registerForPreCall( | 175 | 66 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 176 | 66 | } |
Unexecuted instantiation: TraversalChecker.cpp:void clang::ento::check::PreCall::_register<(anonymous namespace)::CallDumper>((anonymous namespace)::CallDumper*, clang::ento::CheckerManager&) VforkChecker.cpp:void clang::ento::check::PreCall::_register<(anonymous namespace)::VforkChecker>((anonymous namespace)::VforkChecker*, clang::ento::CheckerManager&) Line | Count | Source | 173 | 67 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 174 | 67 | mgr._registerForPreCall( | 175 | 67 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 176 | 67 | } |
ValistChecker.cpp:void clang::ento::check::PreCall::_register<(anonymous namespace)::ValistChecker>((anonymous namespace)::ValistChecker*, clang::ento::CheckerManager&) Line | Count | Source | 173 | 7 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 174 | 7 | mgr._registerForPreCall( | 175 | 7 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 176 | 7 | } |
VirtualCallChecker.cpp:void clang::ento::check::PreCall::_register<(anonymous namespace)::VirtualCallChecker>((anonymous namespace)::VirtualCallChecker*, clang::ento::CheckerManager&) Line | Count | Source | 173 | 73 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 174 | 73 | mgr._registerForPreCall( | 175 | 73 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 176 | 73 | } |
|
177 | | }; |
178 | | |
179 | | class PostCall { |
180 | | template <typename CHECKER> |
181 | | static void _checkCall(void *checker, const CallEvent &msg, |
182 | 391k | CheckerContext &C) { |
183 | 391k | ((const CHECKER *)checker)->checkPostCall(msg, C); |
184 | 391k | } AnalysisOrderChecker.cpp:void clang::ento::check::PostCall::_checkCall<(anonymous namespace)::AnalysisOrderChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 182 | 64 | CheckerContext &C) { | 183 | 64 | ((const CHECKER *)checker)->checkPostCall(msg, C); | 184 | 64 | } |
BlockInCriticalSectionChecker.cpp:void clang::ento::check::PostCall::_checkCall<(anonymous namespace)::BlockInCriticalSectionChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 182 | 109 | CheckerContext &C) { | 183 | 109 | ((const CHECKER *)checker)->checkPostCall(msg, C); | 184 | 109 | } |
ContainerModeling.cpp:void clang::ento::check::PostCall::_checkCall<(anonymous namespace)::ContainerModeling>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 182 | 17.4k | CheckerContext &C) { | 183 | 17.4k | ((const CHECKER *)checker)->checkPostCall(msg, C); | 184 | 17.4k | } |
DynamicTypePropagation.cpp:void clang::ento::check::PostCall::_checkCall<(anonymous namespace)::DynamicTypePropagation>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 182 | 105k | CheckerContext &C) { | 183 | 105k | ((const CHECKER *)checker)->checkPostCall(msg, C); | 184 | 105k | } |
FuchsiaHandleChecker.cpp:void clang::ento::check::PostCall::_checkCall<(anonymous namespace)::FuchsiaHandleChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 182 | 152 | CheckerContext &C) { | 183 | 152 | ((const CHECKER *)checker)->checkPostCall(msg, C); | 184 | 152 | } |
GenericTaintChecker.cpp:void clang::ento::check::PostCall::_checkCall<(anonymous namespace)::GenericTaintChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 182 | 2.56k | CheckerContext &C) { | 183 | 2.56k | ((const CHECKER *)checker)->checkPostCall(msg, C); | 184 | 2.56k | } |
GTestChecker.cpp:void clang::ento::check::PostCall::_checkCall<(anonymous namespace)::GTestChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 182 | 224 | CheckerContext &C) { | 183 | 224 | ((const CHECKER *)checker)->checkPostCall(msg, C); | 184 | 224 | } |
InnerPointerChecker.cpp:void clang::ento::check::PostCall::_checkCall<(anonymous namespace)::InnerPointerChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 182 | 32.7k | CheckerContext &C) { | 183 | 32.7k | ((const CHECKER *)checker)->checkPostCall(msg, C); | 184 | 32.7k | } |
InvalidPtrChecker.cpp:void clang::ento::check::PostCall::_checkCall<(anonymous namespace)::InvalidPtrChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 182 | 97 | CheckerContext &C) { | 183 | 97 | ((const CHECKER *)checker)->checkPostCall(msg, C); | 184 | 97 | } |
IteratorModeling.cpp:void clang::ento::check::PostCall::_checkCall<(anonymous namespace)::IteratorModeling>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 182 | 17.4k | CheckerContext &C) { | 183 | 17.4k | ((const CHECKER *)checker)->checkPostCall(msg, C); | 184 | 17.4k | } |
LocalizationChecker.cpp:void clang::ento::check::PostCall::_checkCall<(anonymous namespace)::NonLocalizedStringChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 182 | 196 | CheckerContext &C) { | 183 | 196 | ((const CHECKER *)checker)->checkPostCall(msg, C); | 184 | 196 | } |
MallocChecker.cpp:void clang::ento::check::PostCall::_checkCall<(anonymous namespace)::MallocChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 182 | 45.1k | CheckerContext &C) { | 183 | 45.1k | ((const CHECKER *)checker)->checkPostCall(msg, C); | 184 | 45.1k | } |
MIGChecker.cpp:void clang::ento::check::PostCall::_checkCall<(anonymous namespace)::MIGChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 182 | 453 | CheckerContext &C) { | 183 | 453 | ((const CHECKER *)checker)->checkPostCall(msg, C); | 184 | 453 | } |
MoveChecker.cpp:void clang::ento::check::PostCall::_checkCall<(anonymous namespace)::MoveChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 182 | 50.4k | CheckerContext &C) { | 183 | 50.4k | ((const CHECKER *)checker)->checkPostCall(msg, C); | 184 | 50.4k | } |
NoReturnFunctionChecker.cpp:void clang::ento::check::PostCall::_checkCall<(anonymous namespace)::NoReturnFunctionChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 182 | 107k | CheckerContext &C) { | 183 | 107k | ((const CHECKER *)checker)->checkPostCall(msg, C); | 184 | 107k | } |
NullabilityChecker.cpp:void clang::ento::check::PostCall::_checkCall<(anonymous namespace)::NullabilityChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 182 | 675 | CheckerContext &C) { | 183 | 675 | ((const CHECKER *)checker)->checkPostCall(msg, C); | 184 | 675 | } |
ObjCSelfInitChecker.cpp:void clang::ento::check::PostCall::_checkCall<(anonymous namespace)::ObjCSelfInitChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 182 | 572 | CheckerContext &C) { | 183 | 572 | ((const CHECKER *)checker)->checkPostCall(msg, C); | 184 | 572 | } |
PthreadLockChecker.cpp:void clang::ento::check::PostCall::_checkCall<(anonymous namespace)::PthreadLockChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 182 | 2.54k | CheckerContext &C) { | 183 | 2.54k | ((const CHECKER *)checker)->checkPostCall(msg, C); | 184 | 2.54k | } |
PutenvWithAutoChecker.cpp:void clang::ento::check::PostCall::_checkCall<(anonymous namespace)::PutenvWithAutoChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 182 | 22 | CheckerContext &C) { | 183 | 22 | ((const CHECKER *)checker)->checkPostCall(msg, C); | 184 | 22 | } |
void clang::ento::check::PostCall::_checkCall<clang::ento::retaincountchecker::RetainCountChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 182 | 4.42k | CheckerContext &C) { | 183 | 4.42k | ((const CHECKER *)checker)->checkPostCall(msg, C); | 184 | 4.42k | } |
ReturnValueChecker.cpp:void clang::ento::check::PostCall::_checkCall<(anonymous namespace)::ReturnValueChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 182 | 226 | CheckerContext &C) { | 183 | 226 | ((const CHECKER *)checker)->checkPostCall(msg, C); | 184 | 226 | } |
SimpleStreamChecker.cpp:void clang::ento::check::PostCall::_checkCall<(anonymous namespace)::SimpleStreamChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 182 | 48 | CheckerContext &C) { | 183 | 48 | ((const CHECKER *)checker)->checkPostCall(msg, C); | 184 | 48 | } |
StdLibraryFunctionsChecker.cpp:void clang::ento::check::PostCall::_checkCall<(anonymous namespace)::StdLibraryFunctionsChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 182 | 998 | CheckerContext &C) { | 183 | 998 | ((const CHECKER *)checker)->checkPostCall(msg, C); | 184 | 998 | } |
Unexecuted instantiation: TraversalChecker.cpp:void clang::ento::check::PostCall::_checkCall<(anonymous namespace)::CallDumper>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) TrustNonnullChecker.cpp:void clang::ento::check::PostCall::_checkCall<(anonymous namespace)::TrustNonnullChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 182 | 213 | CheckerContext &C) { | 183 | 213 | ((const CHECKER *)checker)->checkPostCall(msg, C); | 184 | 213 | } |
TrustReturnsNonnullChecker.cpp:void clang::ento::check::PostCall::_checkCall<(anonymous namespace)::TrustReturnsNonnullChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 182 | 216 | CheckerContext &C) { | 183 | 216 | ((const CHECKER *)checker)->checkPostCall(msg, C); | 184 | 216 | } |
VforkChecker.cpp:void clang::ento::check::PostCall::_checkCall<(anonymous namespace)::VforkChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 182 | 1.28k | CheckerContext &C) { | 183 | 1.28k | ((const CHECKER *)checker)->checkPostCall(msg, C); | 184 | 1.28k | } |
|
185 | | |
186 | | public: |
187 | | template <typename CHECKER> |
188 | 3.58k | static void _register(CHECKER *checker, CheckerManager &mgr) { |
189 | 3.58k | mgr._registerForPostCall( |
190 | 3.58k | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); |
191 | 3.58k | } AnalysisOrderChecker.cpp:void clang::ento::check::PostCall::_register<(anonymous namespace)::AnalysisOrderChecker>((anonymous namespace)::AnalysisOrderChecker*, clang::ento::CheckerManager&) Line | Count | Source | 188 | 12 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 189 | 12 | mgr._registerForPostCall( | 190 | 12 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 191 | 12 | } |
BlockInCriticalSectionChecker.cpp:void clang::ento::check::PostCall::_register<(anonymous namespace)::BlockInCriticalSectionChecker>((anonymous namespace)::BlockInCriticalSectionChecker*, clang::ento::CheckerManager&) Line | Count | Source | 188 | 5 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 189 | 5 | mgr._registerForPostCall( | 190 | 5 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 191 | 5 | } |
ContainerModeling.cpp:void clang::ento::check::PostCall::_register<(anonymous namespace)::ContainerModeling>((anonymous namespace)::ContainerModeling*, clang::ento::CheckerManager&) Line | Count | Source | 188 | 21 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 189 | 21 | mgr._registerForPostCall( | 190 | 21 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 191 | 21 | } |
DynamicTypePropagation.cpp:void clang::ento::check::PostCall::_register<(anonymous namespace)::DynamicTypePropagation>((anonymous namespace)::DynamicTypePropagation*, clang::ento::CheckerManager&) Line | Count | Source | 188 | 1.23k | static void _register(CHECKER *checker, CheckerManager &mgr) { | 189 | 1.23k | mgr._registerForPostCall( | 190 | 1.23k | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 191 | 1.23k | } |
FuchsiaHandleChecker.cpp:void clang::ento::check::PostCall::_register<(anonymous namespace)::FuchsiaHandleChecker>((anonymous namespace)::FuchsiaHandleChecker*, clang::ento::CheckerManager&) Line | Count | Source | 188 | 1 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 189 | 1 | mgr._registerForPostCall( | 190 | 1 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 191 | 1 | } |
GenericTaintChecker.cpp:void clang::ento::check::PostCall::_register<(anonymous namespace)::GenericTaintChecker>((anonymous namespace)::GenericTaintChecker*, clang::ento::CheckerManager&) Line | Count | Source | 188 | 26 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 189 | 26 | mgr._registerForPostCall( | 190 | 26 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 191 | 26 | } |
GTestChecker.cpp:void clang::ento::check::PostCall::_register<(anonymous namespace)::GTestChecker>((anonymous namespace)::GTestChecker*, clang::ento::CheckerManager&) Line | Count | Source | 188 | 17 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 189 | 17 | mgr._registerForPostCall( | 190 | 17 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 191 | 17 | } |
InnerPointerChecker.cpp:void clang::ento::check::PostCall::_register<(anonymous namespace)::InnerPointerChecker>((anonymous namespace)::InnerPointerChecker*, clang::ento::CheckerManager&) Line | Count | Source | 188 | 66 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 189 | 66 | mgr._registerForPostCall( | 190 | 66 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 191 | 66 | } |
InvalidPtrChecker.cpp:void clang::ento::check::PostCall::_register<(anonymous namespace)::InvalidPtrChecker>((anonymous namespace)::InvalidPtrChecker*, clang::ento::CheckerManager&) Line | Count | Source | 188 | 7 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 189 | 7 | mgr._registerForPostCall( | 190 | 7 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 191 | 7 | } |
IteratorModeling.cpp:void clang::ento::check::PostCall::_register<(anonymous namespace)::IteratorModeling>((anonymous namespace)::IteratorModeling*, clang::ento::CheckerManager&) Line | Count | Source | 188 | 19 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 189 | 19 | mgr._registerForPostCall( | 190 | 19 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 191 | 19 | } |
LocalizationChecker.cpp:void clang::ento::check::PostCall::_register<(anonymous namespace)::NonLocalizedStringChecker>((anonymous namespace)::NonLocalizedStringChecker*, clang::ento::CheckerManager&) Line | Count | Source | 188 | 2 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 189 | 2 | mgr._registerForPostCall( | 190 | 2 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 191 | 2 | } |
MallocChecker.cpp:void clang::ento::check::PostCall::_register<(anonymous namespace)::MallocChecker>((anonymous namespace)::MallocChecker*, clang::ento::CheckerManager&) Line | Count | Source | 188 | 241 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 189 | 241 | mgr._registerForPostCall( | 190 | 241 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 191 | 241 | } |
MIGChecker.cpp:void clang::ento::check::PostCall::_register<(anonymous namespace)::MIGChecker>((anonymous namespace)::MIGChecker*, clang::ento::CheckerManager&) Line | Count | Source | 188 | 47 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 189 | 47 | mgr._registerForPostCall( | 190 | 47 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 191 | 47 | } |
MoveChecker.cpp:void clang::ento::check::PostCall::_register<(anonymous namespace)::MoveChecker>((anonymous namespace)::MoveChecker*, clang::ento::CheckerManager&) Line | Count | Source | 188 | 78 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 189 | 78 | mgr._registerForPostCall( | 190 | 78 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 191 | 78 | } |
NoReturnFunctionChecker.cpp:void clang::ento::check::PostCall::_register<(anonymous namespace)::NoReturnFunctionChecker>((anonymous namespace)::NoReturnFunctionChecker*, clang::ento::CheckerManager&) Line | Count | Source | 188 | 1.24k | static void _register(CHECKER *checker, CheckerManager &mgr) { | 189 | 1.24k | mgr._registerForPostCall( | 190 | 1.24k | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 191 | 1.24k | } |
NullabilityChecker.cpp:void clang::ento::check::PostCall::_register<(anonymous namespace)::NullabilityChecker>((anonymous namespace)::NullabilityChecker*, clang::ento::CheckerManager&) Line | Count | Source | 188 | 51 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 189 | 51 | mgr._registerForPostCall( | 190 | 51 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 191 | 51 | } |
ObjCSelfInitChecker.cpp:void clang::ento::check::PostCall::_register<(anonymous namespace)::ObjCSelfInitChecker>((anonymous namespace)::ObjCSelfInitChecker*, clang::ento::CheckerManager&) Line | Count | Source | 188 | 49 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 189 | 49 | mgr._registerForPostCall( | 190 | 49 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 191 | 49 | } |
PthreadLockChecker.cpp:void clang::ento::check::PostCall::_register<(anonymous namespace)::PthreadLockChecker>((anonymous namespace)::PthreadLockChecker*, clang::ento::CheckerManager&) Line | Count | Source | 188 | 77 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 189 | 77 | mgr._registerForPostCall( | 190 | 77 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 191 | 77 | } |
PutenvWithAutoChecker.cpp:void clang::ento::check::PostCall::_register<(anonymous namespace)::PutenvWithAutoChecker>((anonymous namespace)::PutenvWithAutoChecker*, clang::ento::CheckerManager&) Line | Count | Source | 188 | 2 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 189 | 2 | mgr._registerForPostCall( | 190 | 2 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 191 | 2 | } |
void clang::ento::check::PostCall::_register<clang::ento::retaincountchecker::RetainCountChecker>(clang::ento::retaincountchecker::RetainCountChecker*, clang::ento::CheckerManager&) Line | Count | Source | 188 | 94 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 189 | 94 | mgr._registerForPostCall( | 190 | 94 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 191 | 94 | } |
ReturnValueChecker.cpp:void clang::ento::check::PostCall::_register<(anonymous namespace)::ReturnValueChecker>((anonymous namespace)::ReturnValueChecker*, clang::ento::CheckerManager&) Line | Count | Source | 188 | 43 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 189 | 43 | mgr._registerForPostCall( | 190 | 43 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 191 | 43 | } |
SimpleStreamChecker.cpp:void clang::ento::check::PostCall::_register<(anonymous namespace)::SimpleStreamChecker>((anonymous namespace)::SimpleStreamChecker*, clang::ento::CheckerManager&) Line | Count | Source | 188 | 4 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 189 | 4 | mgr._registerForPostCall( | 190 | 4 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 191 | 4 | } |
StdLibraryFunctionsChecker.cpp:void clang::ento::check::PostCall::_register<(anonymous namespace)::StdLibraryFunctionsChecker>((anonymous namespace)::StdLibraryFunctionsChecker*, clang::ento::CheckerManager&) Line | Count | Source | 188 | 83 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 189 | 83 | mgr._registerForPostCall( | 190 | 83 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 191 | 83 | } |
Unexecuted instantiation: TraversalChecker.cpp:void clang::ento::check::PostCall::_register<(anonymous namespace)::CallDumper>((anonymous namespace)::CallDumper*, clang::ento::CheckerManager&) TrustNonnullChecker.cpp:void clang::ento::check::PostCall::_register<(anonymous namespace)::TrustNonnullChecker>((anonymous namespace)::TrustNonnullChecker*, clang::ento::CheckerManager&) Line | Count | Source | 188 | 42 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 189 | 42 | mgr._registerForPostCall( | 190 | 42 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 191 | 42 | } |
TrustReturnsNonnullChecker.cpp:void clang::ento::check::PostCall::_register<(anonymous namespace)::TrustReturnsNonnullChecker>((anonymous namespace)::TrustReturnsNonnullChecker*, clang::ento::CheckerManager&) Line | Count | Source | 188 | 43 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 189 | 43 | mgr._registerForPostCall( | 190 | 43 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 191 | 43 | } |
VforkChecker.cpp:void clang::ento::check::PostCall::_register<(anonymous namespace)::VforkChecker>((anonymous namespace)::VforkChecker*, clang::ento::CheckerManager&) Line | Count | Source | 188 | 67 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 189 | 67 | mgr._registerForPostCall( | 190 | 67 | CheckerManager::CheckCallFunc(checker, _checkCall<CHECKER>)); | 191 | 67 | } |
|
192 | | }; |
193 | | |
194 | | class Location { |
195 | | template <typename CHECKER> |
196 | | static void _checkLocation(void *checker, |
197 | | const SVal &location, bool isLoad, const Stmt *S, |
198 | 652k | CheckerContext &C) { |
199 | 652k | ((const CHECKER *)checker)->checkLocation(location, isLoad, S, C); |
200 | 652k | } ArrayBoundChecker.cpp:void clang::ento::check::Location::_checkLocation<(anonymous namespace)::ArrayBoundChecker>(void*, clang::ento::SVal const&, bool, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 198 | 3.48k | CheckerContext &C) { | 199 | 3.48k | ((const CHECKER *)checker)->checkLocation(location, isLoad, S, C); | 200 | 3.48k | } |
ArrayBoundCheckerV2.cpp:void clang::ento::check::Location::_checkLocation<(anonymous namespace)::ArrayBoundCheckerV2>(void*, clang::ento::SVal const&, bool, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 198 | 71.6k | CheckerContext &C) { | 199 | 71.6k | ((const CHECKER *)checker)->checkLocation(location, isLoad, S, C); | 200 | 71.6k | } |
DereferenceChecker.cpp:void clang::ento::check::Location::_checkLocation<(anonymous namespace)::DereferenceChecker>(void*, clang::ento::SVal const&, bool, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 198 | 248k | CheckerContext &C) { | 199 | 248k | ((const CHECKER *)checker)->checkLocation(location, isLoad, S, C); | 200 | 248k | } |
ErrnoChecker.cpp:void clang::ento::check::Location::_checkLocation<(anonymous namespace)::ErrnoChecker>(void*, clang::ento::SVal const&, bool, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 198 | 491 | CheckerContext &C) { | 199 | 491 | ((const CHECKER *)checker)->checkLocation(location, isLoad, S, C); | 200 | 491 | } |
InvalidPtrChecker.cpp:void clang::ento::check::Location::_checkLocation<(anonymous namespace)::InvalidPtrChecker>(void*, clang::ento::SVal const&, bool, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 198 | 245 | CheckerContext &C) { | 199 | 245 | ((const CHECKER *)checker)->checkLocation(location, isLoad, S, C); | 200 | 245 | } |
MallocChecker.cpp:void clang::ento::check::Location::_checkLocation<(anonymous namespace)::MallocChecker>(void*, clang::ento::SVal const&, bool, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 198 | 75.8k | CheckerContext &C) { | 199 | 75.8k | ((const CHECKER *)checker)->checkLocation(location, isLoad, S, C); | 200 | 75.8k | } |
NSErrorChecker.cpp:void clang::ento::check::Location::_checkLocation<(anonymous namespace)::NSOrCFErrorDerefChecker>(void*, clang::ento::SVal const&, bool, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 198 | 550 | CheckerContext &C) { | 199 | 550 | ((const CHECKER *)checker)->checkLocation(location, isLoad, S, C); | 200 | 550 | } |
NonnullGlobalConstantsChecker.cpp:void clang::ento::check::Location::_checkLocation<(anonymous namespace)::NonnullGlobalConstantsChecker>(void*, clang::ento::SVal const&, bool, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 198 | 248k | CheckerContext &C) { | 199 | 248k | ((const CHECKER *)checker)->checkLocation(location, isLoad, S, C); | 200 | 248k | } |
NullabilityChecker.cpp:void clang::ento::check::Location::_checkLocation<(anonymous namespace)::NullabilityChecker>(void*, clang::ento::SVal const&, bool, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 198 | 1.38k | CheckerContext &C) { | 199 | 1.38k | ((const CHECKER *)checker)->checkLocation(location, isLoad, S, C); | 200 | 1.38k | } |
ObjCSelfInitChecker.cpp:void clang::ento::check::Location::_checkLocation<(anonymous namespace)::ObjCSelfInitChecker>(void*, clang::ento::SVal const&, bool, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 198 | 857 | CheckerContext &C) { | 199 | 857 | ((const CHECKER *)checker)->checkLocation(location, isLoad, S, C); | 200 | 857 | } |
ObjCSuperDeallocChecker.cpp:void clang::ento::check::Location::_checkLocation<(anonymous namespace)::ObjCSuperDeallocChecker>(void*, clang::ento::SVal const&, bool, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 198 | 609 | CheckerContext &C) { | 199 | 609 | ((const CHECKER *)checker)->checkLocation(location, isLoad, S, C); | 200 | 609 | } |
|
201 | | |
202 | | public: |
203 | | template <typename CHECKER> |
204 | 2.94k | static void _register(CHECKER *checker, CheckerManager &mgr) { |
205 | 2.94k | mgr._registerForLocation( |
206 | 2.94k | CheckerManager::CheckLocationFunc(checker, _checkLocation<CHECKER>)); |
207 | 2.94k | } ArrayBoundChecker.cpp:void clang::ento::check::Location::_register<(anonymous namespace)::ArrayBoundChecker>((anonymous namespace)::ArrayBoundChecker*, clang::ento::CheckerManager&) Line | Count | Source | 204 | 6 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 205 | 6 | mgr._registerForLocation( | 206 | 6 | CheckerManager::CheckLocationFunc(checker, _checkLocation<CHECKER>)); | 207 | 6 | } |
ArrayBoundCheckerV2.cpp:void clang::ento::check::Location::_register<(anonymous namespace)::ArrayBoundCheckerV2>((anonymous namespace)::ArrayBoundCheckerV2*, clang::ento::CheckerManager&) Line | Count | Source | 204 | 10 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 205 | 10 | mgr._registerForLocation( | 206 | 10 | CheckerManager::CheckLocationFunc(checker, _checkLocation<CHECKER>)); | 207 | 10 | } |
DereferenceChecker.cpp:void clang::ento::check::Location::_register<(anonymous namespace)::DereferenceChecker>((anonymous namespace)::DereferenceChecker*, clang::ento::CheckerManager&) Line | Count | Source | 204 | 1.24k | static void _register(CHECKER *checker, CheckerManager &mgr) { | 205 | 1.24k | mgr._registerForLocation( | 206 | 1.24k | CheckerManager::CheckLocationFunc(checker, _checkLocation<CHECKER>)); | 207 | 1.24k | } |
ErrnoChecker.cpp:void clang::ento::check::Location::_register<(anonymous namespace)::ErrnoChecker>((anonymous namespace)::ErrnoChecker*, clang::ento::CheckerManager&) Line | Count | Source | 204 | 11 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 205 | 11 | mgr._registerForLocation( | 206 | 11 | CheckerManager::CheckLocationFunc(checker, _checkLocation<CHECKER>)); | 207 | 11 | } |
InvalidPtrChecker.cpp:void clang::ento::check::Location::_register<(anonymous namespace)::InvalidPtrChecker>((anonymous namespace)::InvalidPtrChecker*, clang::ento::CheckerManager&) Line | Count | Source | 204 | 7 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 205 | 7 | mgr._registerForLocation( | 206 | 7 | CheckerManager::CheckLocationFunc(checker, _checkLocation<CHECKER>)); | 207 | 7 | } |
MallocChecker.cpp:void clang::ento::check::Location::_register<(anonymous namespace)::MallocChecker>((anonymous namespace)::MallocChecker*, clang::ento::CheckerManager&) Line | Count | Source | 204 | 241 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 205 | 241 | mgr._registerForLocation( | 206 | 241 | CheckerManager::CheckLocationFunc(checker, _checkLocation<CHECKER>)); | 207 | 241 | } |
NSErrorChecker.cpp:void clang::ento::check::Location::_register<(anonymous namespace)::NSOrCFErrorDerefChecker>((anonymous namespace)::NSOrCFErrorDerefChecker*, clang::ento::CheckerManager&) Line | Count | Source | 204 | 48 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 205 | 48 | mgr._registerForLocation( | 206 | 48 | CheckerManager::CheckLocationFunc(checker, _checkLocation<CHECKER>)); | 207 | 48 | } |
NonnullGlobalConstantsChecker.cpp:void clang::ento::check::Location::_register<(anonymous namespace)::NonnullGlobalConstantsChecker>((anonymous namespace)::NonnullGlobalConstantsChecker*, clang::ento::CheckerManager&) Line | Count | Source | 204 | 1.23k | static void _register(CHECKER *checker, CheckerManager &mgr) { | 205 | 1.23k | mgr._registerForLocation( | 206 | 1.23k | CheckerManager::CheckLocationFunc(checker, _checkLocation<CHECKER>)); | 207 | 1.23k | } |
NullabilityChecker.cpp:void clang::ento::check::Location::_register<(anonymous namespace)::NullabilityChecker>((anonymous namespace)::NullabilityChecker*, clang::ento::CheckerManager&) Line | Count | Source | 204 | 51 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 205 | 51 | mgr._registerForLocation( | 206 | 51 | CheckerManager::CheckLocationFunc(checker, _checkLocation<CHECKER>)); | 207 | 51 | } |
ObjCSelfInitChecker.cpp:void clang::ento::check::Location::_register<(anonymous namespace)::ObjCSelfInitChecker>((anonymous namespace)::ObjCSelfInitChecker*, clang::ento::CheckerManager&) Line | Count | Source | 204 | 49 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 205 | 49 | mgr._registerForLocation( | 206 | 49 | CheckerManager::CheckLocationFunc(checker, _checkLocation<CHECKER>)); | 207 | 49 | } |
ObjCSuperDeallocChecker.cpp:void clang::ento::check::Location::_register<(anonymous namespace)::ObjCSuperDeallocChecker>((anonymous namespace)::ObjCSuperDeallocChecker*, clang::ento::CheckerManager&) Line | Count | Source | 204 | 47 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 205 | 47 | mgr._registerForLocation( | 206 | 47 | CheckerManager::CheckLocationFunc(checker, _checkLocation<CHECKER>)); | 207 | 47 | } |
|
208 | | }; |
209 | | |
210 | | class Bind { |
211 | | template <typename CHECKER> |
212 | | static void _checkBind(void *checker, |
213 | | const SVal &location, const SVal &val, const Stmt *S, |
214 | 170k | CheckerContext &C) { |
215 | 170k | ((const CHECKER *)checker)->checkBind(location, val, S, C); |
216 | 170k | } AnalysisOrderChecker.cpp:void clang::ento::check::Bind::_checkBind<(anonymous namespace)::AnalysisOrderChecker>(void*, clang::ento::SVal const&, clang::ento::SVal const&, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 214 | 19 | CheckerContext &C) { | 215 | 19 | ((const CHECKER *)checker)->checkBind(location, val, S, C); | 216 | 19 | } |
BoolAssignmentChecker.cpp:void clang::ento::check::Bind::_checkBind<(anonymous namespace)::BoolAssignmentChecker>(void*, clang::ento::SVal const&, clang::ento::SVal const&, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 214 | 1.96k | CheckerContext &C) { | 215 | 1.96k | ((const CHECKER *)checker)->checkBind(location, val, S, C); | 216 | 1.96k | } |
DereferenceChecker.cpp:void clang::ento::check::Bind::_checkBind<(anonymous namespace)::DereferenceChecker>(void*, clang::ento::SVal const&, clang::ento::SVal const&, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 214 | 80.7k | CheckerContext &C) { | 215 | 80.7k | ((const CHECKER *)checker)->checkBind(location, val, S, C); | 216 | 80.7k | } |
IteratorModeling.cpp:void clang::ento::check::Bind::_checkBind<(anonymous namespace)::IteratorModeling>(void*, clang::ento::SVal const&, clang::ento::SVal const&, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 214 | 3.53k | CheckerContext &C) { | 215 | 3.53k | ((const CHECKER *)checker)->checkBind(location, val, S, C); | 216 | 3.53k | } |
NullabilityChecker.cpp:void clang::ento::check::Bind::_checkBind<(anonymous namespace)::NullabilityChecker>(void*, clang::ento::SVal const&, clang::ento::SVal const&, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 214 | 553 | CheckerContext &C) { | 215 | 553 | ((const CHECKER *)checker)->checkBind(location, val, S, C); | 216 | 553 | } |
ObjCSelfInitChecker.cpp:void clang::ento::check::Bind::_checkBind<(anonymous namespace)::ObjCSelfInitChecker>(void*, clang::ento::SVal const&, clang::ento::SVal const&, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 214 | 306 | CheckerContext &C) { | 215 | 306 | ((const CHECKER *)checker)->checkBind(location, val, S, C); | 216 | 306 | } |
void clang::ento::check::Bind::_checkBind<clang::ento::retaincountchecker::RetainCountChecker>(void*, clang::ento::SVal const&, clang::ento::SVal const&, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 214 | 2.10k | CheckerContext &C) { | 215 | 2.10k | ((const CHECKER *)checker)->checkBind(location, val, S, C); | 216 | 2.10k | } |
UndefinedAssignmentChecker.cpp:void clang::ento::check::Bind::_checkBind<(anonymous namespace)::UndefinedAssignmentChecker>(void*, clang::ento::SVal const&, clang::ento::SVal const&, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 214 | 80.6k | CheckerContext &C) { | 215 | 80.6k | ((const CHECKER *)checker)->checkBind(location, val, S, C); | 216 | 80.6k | } |
VforkChecker.cpp:void clang::ento::check::Bind::_checkBind<(anonymous namespace)::VforkChecker>(void*, clang::ento::SVal const&, clang::ento::SVal const&, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 214 | 761 | CheckerContext &C) { | 215 | 761 | ((const CHECKER *)checker)->checkBind(location, val, S, C); | 216 | 761 | } |
|
217 | | |
218 | | public: |
219 | | template <typename CHECKER> |
220 | 2.84k | static void _register(CHECKER *checker, CheckerManager &mgr) { |
221 | 2.84k | mgr._registerForBind( |
222 | 2.84k | CheckerManager::CheckBindFunc(checker, _checkBind<CHECKER>)); |
223 | 2.84k | } AnalysisOrderChecker.cpp:void clang::ento::check::Bind::_register<(anonymous namespace)::AnalysisOrderChecker>((anonymous namespace)::AnalysisOrderChecker*, clang::ento::CheckerManager&) Line | Count | Source | 220 | 12 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 221 | 12 | mgr._registerForBind( | 222 | 12 | CheckerManager::CheckBindFunc(checker, _checkBind<CHECKER>)); | 223 | 12 | } |
BoolAssignmentChecker.cpp:void clang::ento::check::Bind::_register<(anonymous namespace)::BoolAssignmentChecker>((anonymous namespace)::BoolAssignmentChecker*, clang::ento::CheckerManager&) Line | Count | Source | 220 | 72 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 221 | 72 | mgr._registerForBind( | 222 | 72 | CheckerManager::CheckBindFunc(checker, _checkBind<CHECKER>)); | 223 | 72 | } |
DereferenceChecker.cpp:void clang::ento::check::Bind::_register<(anonymous namespace)::DereferenceChecker>((anonymous namespace)::DereferenceChecker*, clang::ento::CheckerManager&) Line | Count | Source | 220 | 1.24k | static void _register(CHECKER *checker, CheckerManager &mgr) { | 221 | 1.24k | mgr._registerForBind( | 222 | 1.24k | CheckerManager::CheckBindFunc(checker, _checkBind<CHECKER>)); | 223 | 1.24k | } |
IteratorModeling.cpp:void clang::ento::check::Bind::_register<(anonymous namespace)::IteratorModeling>((anonymous namespace)::IteratorModeling*, clang::ento::CheckerManager&) Line | Count | Source | 220 | 19 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 221 | 19 | mgr._registerForBind( | 222 | 19 | CheckerManager::CheckBindFunc(checker, _checkBind<CHECKER>)); | 223 | 19 | } |
NullabilityChecker.cpp:void clang::ento::check::Bind::_register<(anonymous namespace)::NullabilityChecker>((anonymous namespace)::NullabilityChecker*, clang::ento::CheckerManager&) Line | Count | Source | 220 | 51 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 221 | 51 | mgr._registerForBind( | 222 | 51 | CheckerManager::CheckBindFunc(checker, _checkBind<CHECKER>)); | 223 | 51 | } |
ObjCSelfInitChecker.cpp:void clang::ento::check::Bind::_register<(anonymous namespace)::ObjCSelfInitChecker>((anonymous namespace)::ObjCSelfInitChecker*, clang::ento::CheckerManager&) Line | Count | Source | 220 | 49 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 221 | 49 | mgr._registerForBind( | 222 | 49 | CheckerManager::CheckBindFunc(checker, _checkBind<CHECKER>)); | 223 | 49 | } |
void clang::ento::check::Bind::_register<clang::ento::retaincountchecker::RetainCountChecker>(clang::ento::retaincountchecker::RetainCountChecker*, clang::ento::CheckerManager&) Line | Count | Source | 220 | 94 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 221 | 94 | mgr._registerForBind( | 222 | 94 | CheckerManager::CheckBindFunc(checker, _checkBind<CHECKER>)); | 223 | 94 | } |
UndefinedAssignmentChecker.cpp:void clang::ento::check::Bind::_register<(anonymous namespace)::UndefinedAssignmentChecker>((anonymous namespace)::UndefinedAssignmentChecker*, clang::ento::CheckerManager&) Line | Count | Source | 220 | 1.23k | static void _register(CHECKER *checker, CheckerManager &mgr) { | 221 | 1.23k | mgr._registerForBind( | 222 | 1.23k | CheckerManager::CheckBindFunc(checker, _checkBind<CHECKER>)); | 223 | 1.23k | } |
VforkChecker.cpp:void clang::ento::check::Bind::_register<(anonymous namespace)::VforkChecker>((anonymous namespace)::VforkChecker*, clang::ento::CheckerManager&) Line | Count | Source | 220 | 67 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 221 | 67 | mgr._registerForBind( | 222 | 67 | CheckerManager::CheckBindFunc(checker, _checkBind<CHECKER>)); | 223 | 67 | } |
|
224 | | }; |
225 | | |
226 | | class EndAnalysis { |
227 | | template <typename CHECKER> |
228 | | static void _checkEndAnalysis(void *checker, ExplodedGraph &G, |
229 | 8.71k | BugReporter &BR, ExprEngine &Eng) { |
230 | 8.71k | ((const CHECKER *)checker)->checkEndAnalysis(G, BR, Eng); |
231 | 8.71k | } AnalysisOrderChecker.cpp:void clang::ento::check::EndAnalysis::_checkEndAnalysis<(anonymous namespace)::AnalysisOrderChecker>(void*, clang::ento::ExplodedGraph&, clang::ento::BugReporter&, clang::ento::ExprEngine&) Line | Count | Source | 229 | 22 | BugReporter &BR, ExprEngine &Eng) { | 230 | 22 | ((const CHECKER *)checker)->checkEndAnalysis(G, BR, Eng); | 231 | 22 | } |
AnalyzerStatsChecker.cpp:void clang::ento::check::EndAnalysis::_checkEndAnalysis<(anonymous namespace)::AnalyzerStatsChecker>(void*, clang::ento::ExplodedGraph&, clang::ento::BugReporter&, clang::ento::ExprEngine&) Line | Count | Source | 229 | 4 | BugReporter &BR, ExprEngine &Eng) { | 230 | 4 | ((const CHECKER *)checker)->checkEndAnalysis(G, BR, Eng); | 231 | 4 | } |
Unexecuted instantiation: DebugCheckers.cpp:void clang::ento::check::EndAnalysis::_checkEndAnalysis<(anonymous namespace)::ExplodedGraphViewer>(void*, clang::ento::ExplodedGraph&, clang::ento::BugReporter&, clang::ento::ExprEngine&) ExprInspectionChecker.cpp:void clang::ento::check::EndAnalysis::_checkEndAnalysis<(anonymous namespace)::ExprInspectionChecker>(void*, clang::ento::ExplodedGraph&, clang::ento::BugReporter&, clang::ento::ExprEngine&) Line | Count | Source | 229 | 8.29k | BugReporter &BR, ExprEngine &Eng) { | 230 | 8.29k | ((const CHECKER *)checker)->checkEndAnalysis(G, BR, Eng); | 231 | 8.29k | } |
UnreachableCodeChecker.cpp:void clang::ento::check::EndAnalysis::_checkEndAnalysis<(anonymous namespace)::UnreachableCodeChecker>(void*, clang::ento::ExplodedGraph&, clang::ento::BugReporter&, clang::ento::ExprEngine&) Line | Count | Source | 229 | 394 | BugReporter &BR, ExprEngine &Eng) { | 230 | 394 | ((const CHECKER *)checker)->checkEndAnalysis(G, BR, Eng); | 231 | 394 | } |
|
232 | | |
233 | | public: |
234 | | template <typename CHECKER> |
235 | 431 | static void _register(CHECKER *checker, CheckerManager &mgr) { |
236 | 431 | mgr._registerForEndAnalysis( |
237 | 431 | CheckerManager::CheckEndAnalysisFunc(checker, _checkEndAnalysis<CHECKER>)); |
238 | 431 | } AnalysisOrderChecker.cpp:void clang::ento::check::EndAnalysis::_register<(anonymous namespace)::AnalysisOrderChecker>((anonymous namespace)::AnalysisOrderChecker*, clang::ento::CheckerManager&) Line | Count | Source | 235 | 12 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 236 | 12 | mgr._registerForEndAnalysis( | 237 | 12 | CheckerManager::CheckEndAnalysisFunc(checker, _checkEndAnalysis<CHECKER>)); | 238 | 12 | } |
AnalyzerStatsChecker.cpp:void clang::ento::check::EndAnalysis::_register<(anonymous namespace)::AnalyzerStatsChecker>((anonymous namespace)::AnalyzerStatsChecker*, clang::ento::CheckerManager&) Line | Count | Source | 235 | 2 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 236 | 2 | mgr._registerForEndAnalysis( | 237 | 2 | CheckerManager::CheckEndAnalysisFunc(checker, _checkEndAnalysis<CHECKER>)); | 238 | 2 | } |
Unexecuted instantiation: DebugCheckers.cpp:void clang::ento::check::EndAnalysis::_register<(anonymous namespace)::ExplodedGraphViewer>((anonymous namespace)::ExplodedGraphViewer*, clang::ento::CheckerManager&) ExprInspectionChecker.cpp:void clang::ento::check::EndAnalysis::_register<(anonymous namespace)::ExprInspectionChecker>((anonymous namespace)::ExprInspectionChecker*, clang::ento::CheckerManager&) Line | Count | Source | 235 | 408 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 236 | 408 | mgr._registerForEndAnalysis( | 237 | 408 | CheckerManager::CheckEndAnalysisFunc(checker, _checkEndAnalysis<CHECKER>)); | 238 | 408 | } |
UnreachableCodeChecker.cpp:void clang::ento::check::EndAnalysis::_register<(anonymous namespace)::UnreachableCodeChecker>((anonymous namespace)::UnreachableCodeChecker*, clang::ento::CheckerManager&) Line | Count | Source | 235 | 9 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 236 | 9 | mgr._registerForEndAnalysis( | 237 | 9 | CheckerManager::CheckEndAnalysisFunc(checker, _checkEndAnalysis<CHECKER>)); | 238 | 9 | } |
|
239 | | }; |
240 | | |
241 | | class BeginFunction { |
242 | | template <typename CHECKER> |
243 | 70.2k | static void _checkBeginFunction(void *checker, CheckerContext &C) { |
244 | 70.2k | ((const CHECKER *)checker)->checkBeginFunction(C); |
245 | 70.2k | } CheckObjCDealloc.cpp:void clang::ento::check::BeginFunction::_checkBeginFunction<(anonymous namespace)::ObjCDeallocChecker>(void*, clang::ento::CheckerContext&) Line | Count | Source | 243 | 625 | static void _checkBeginFunction(void *checker, CheckerContext &C) { | 244 | 625 | ((const CHECKER *)checker)->checkBeginFunction(C); | 245 | 625 | } |
CXXSelfAssignmentChecker.cpp:void clang::ento::check::BeginFunction::_checkBeginFunction<(anonymous namespace)::CXXSelfAssignmentChecker>(void*, clang::ento::CheckerContext&) Line | Count | Source | 243 | 9.25k | static void _checkBeginFunction(void *checker, CheckerContext &C) { | 244 | 9.25k | ((const CHECKER *)checker)->checkBeginFunction(C); | 245 | 9.25k | } |
ErrnoModeling.cpp:void clang::ento::check::BeginFunction::_checkBeginFunction<(anonymous namespace)::ErrnoModeling>(void*, clang::ento::CheckerContext&) Line | Count | Source | 243 | 204 | static void _checkBeginFunction(void *checker, CheckerContext &C) { | 244 | 204 | ((const CHECKER *)checker)->checkBeginFunction(C); | 245 | 204 | } |
InvalidPtrChecker.cpp:void clang::ento::check::BeginFunction::_checkBeginFunction<(anonymous namespace)::InvalidPtrChecker>(void*, clang::ento::CheckerContext&) Line | Count | Source | 243 | 38 | static void _checkBeginFunction(void *checker, CheckerContext &C) { | 244 | 38 | ((const CHECKER *)checker)->checkBeginFunction(C); | 245 | 38 | } |
NonNullParamChecker.cpp:void clang::ento::check::BeginFunction::_checkBeginFunction<(anonymous namespace)::NonNullParamChecker>(void*, clang::ento::CheckerContext&) Line | Count | Source | 243 | 48.4k | static void _checkBeginFunction(void *checker, CheckerContext &C) { | 244 | 48.4k | ((const CHECKER *)checker)->checkBeginFunction(C); | 245 | 48.4k | } |
void clang::ento::check::BeginFunction::_checkBeginFunction<clang::ento::retaincountchecker::RetainCountChecker>(void*, clang::ento::CheckerContext&) Line | Count | Source | 243 | 2.10k | static void _checkBeginFunction(void *checker, CheckerContext &C) { | 244 | 2.10k | ((const CHECKER *)checker)->checkBeginFunction(C); | 245 | 2.10k | } |
TraversalChecker.cpp:void clang::ento::check::BeginFunction::_checkBeginFunction<(anonymous namespace)::TraversalDumper>(void*, clang::ento::CheckerContext&) Line | Count | Source | 243 | 8 | static void _checkBeginFunction(void *checker, CheckerContext &C) { | 244 | 8 | ((const CHECKER *)checker)->checkBeginFunction(C); | 245 | 8 | } |
VirtualCallChecker.cpp:void clang::ento::check::BeginFunction::_checkBeginFunction<(anonymous namespace)::VirtualCallChecker>(void*, clang::ento::CheckerContext&) Line | Count | Source | 243 | 9.50k | static void _checkBeginFunction(void *checker, CheckerContext &C) { | 244 | 9.50k | ((const CHECKER *)checker)->checkBeginFunction(C); | 245 | 9.50k | } |
Unexecuted instantiation: CheckerDependencyHandling.cpp:void clang::ento::check::BeginFunction::_checkBeginFunction<(anonymous namespace)::Dependency>(void*, clang::ento::CheckerContext&) Unexecuted instantiation: CheckerDependencyHandling.cpp:void clang::ento::check::BeginFunction::_checkBeginFunction<(anonymous namespace)::DependendentChecker>(void*, clang::ento::CheckerContext&) Unexecuted instantiation: CheckerOptionHandling.cpp:void clang::ento::check::BeginFunction::_checkBeginFunction<(anonymous namespace)::MyChecker>(void*, clang::ento::CheckerContext&) |
246 | | |
247 | | public: |
248 | | template <typename CHECKER> |
249 | 1.58k | static void _register(CHECKER *checker, CheckerManager &mgr) { |
250 | 1.58k | mgr._registerForBeginFunction(CheckerManager::CheckBeginFunctionFunc( |
251 | 1.58k | checker, _checkBeginFunction<CHECKER>)); |
252 | 1.58k | } CheckObjCDealloc.cpp:void clang::ento::check::BeginFunction::_register<(anonymous namespace)::ObjCDeallocChecker>((anonymous namespace)::ObjCDeallocChecker*, clang::ento::CheckerManager&) Line | Count | Source | 249 | 50 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 250 | 50 | mgr._registerForBeginFunction(CheckerManager::CheckBeginFunctionFunc( | 251 | 50 | checker, _checkBeginFunction<CHECKER>)); | 252 | 50 | } |
CXXSelfAssignmentChecker.cpp:void clang::ento::check::BeginFunction::_register<(anonymous namespace)::CXXSelfAssignmentChecker>((anonymous namespace)::CXXSelfAssignmentChecker*, clang::ento::CheckerManager&) Line | Count | Source | 249 | 65 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 250 | 65 | mgr._registerForBeginFunction(CheckerManager::CheckBeginFunctionFunc( | 251 | 65 | checker, _checkBeginFunction<CHECKER>)); | 252 | 65 | } |
ErrnoModeling.cpp:void clang::ento::check::BeginFunction::_register<(anonymous namespace)::ErrnoModeling>((anonymous namespace)::ErrnoModeling*, clang::ento::CheckerManager&) Line | Count | Source | 249 | 53 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 250 | 53 | mgr._registerForBeginFunction(CheckerManager::CheckBeginFunctionFunc( | 251 | 53 | checker, _checkBeginFunction<CHECKER>)); | 252 | 53 | } |
InvalidPtrChecker.cpp:void clang::ento::check::BeginFunction::_register<(anonymous namespace)::InvalidPtrChecker>((anonymous namespace)::InvalidPtrChecker*, clang::ento::CheckerManager&) Line | Count | Source | 249 | 7 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 250 | 7 | mgr._registerForBeginFunction(CheckerManager::CheckBeginFunctionFunc( | 251 | 7 | checker, _checkBeginFunction<CHECKER>)); | 252 | 7 | } |
NonNullParamChecker.cpp:void clang::ento::check::BeginFunction::_register<(anonymous namespace)::NonNullParamChecker>((anonymous namespace)::NonNullParamChecker*, clang::ento::CheckerManager&) Line | Count | Source | 249 | 1.23k | static void _register(CHECKER *checker, CheckerManager &mgr) { | 250 | 1.23k | mgr._registerForBeginFunction(CheckerManager::CheckBeginFunctionFunc( | 251 | 1.23k | checker, _checkBeginFunction<CHECKER>)); | 252 | 1.23k | } |
void clang::ento::check::BeginFunction::_register<clang::ento::retaincountchecker::RetainCountChecker>(clang::ento::retaincountchecker::RetainCountChecker*, clang::ento::CheckerManager&) Line | Count | Source | 249 | 94 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 250 | 94 | mgr._registerForBeginFunction(CheckerManager::CheckBeginFunctionFunc( | 251 | 94 | checker, _checkBeginFunction<CHECKER>)); | 252 | 94 | } |
TraversalChecker.cpp:void clang::ento::check::BeginFunction::_register<(anonymous namespace)::TraversalDumper>((anonymous namespace)::TraversalDumper*, clang::ento::CheckerManager&) Line | Count | Source | 249 | 4 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 250 | 4 | mgr._registerForBeginFunction(CheckerManager::CheckBeginFunctionFunc( | 251 | 4 | checker, _checkBeginFunction<CHECKER>)); | 252 | 4 | } |
VirtualCallChecker.cpp:void clang::ento::check::BeginFunction::_register<(anonymous namespace)::VirtualCallChecker>((anonymous namespace)::VirtualCallChecker*, clang::ento::CheckerManager&) Line | Count | Source | 249 | 73 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 250 | 73 | mgr._registerForBeginFunction(CheckerManager::CheckBeginFunctionFunc( | 251 | 73 | checker, _checkBeginFunction<CHECKER>)); | 252 | 73 | } |
Unexecuted instantiation: CheckerDependencyHandling.cpp:void clang::ento::check::BeginFunction::_register<(anonymous namespace)::Dependency>((anonymous namespace)::Dependency*, clang::ento::CheckerManager&) Unexecuted instantiation: CheckerDependencyHandling.cpp:void clang::ento::check::BeginFunction::_register<(anonymous namespace)::DependendentChecker>((anonymous namespace)::DependendentChecker*, clang::ento::CheckerManager&) Unexecuted instantiation: CheckerOptionHandling.cpp:void clang::ento::check::BeginFunction::_register<(anonymous namespace)::MyChecker>((anonymous namespace)::MyChecker*, clang::ento::CheckerManager&) |
253 | | }; |
254 | | |
255 | | class EndFunction { |
256 | | template <typename CHECKER> |
257 | | static void _checkEndFunction(void *checker, const ReturnStmt *RS, |
258 | 107k | CheckerContext &C) { |
259 | 107k | ((const CHECKER *)checker)->checkEndFunction(RS, C); |
260 | 107k | } AnalysisOrderChecker.cpp:void clang::ento::check::EndFunction::_checkEndFunction<(anonymous namespace)::AnalysisOrderChecker>(void*, clang::ReturnStmt const*, clang::ento::CheckerContext&) Line | Count | Source | 258 | 44 | CheckerContext &C) { | 259 | 44 | ((const CHECKER *)checker)->checkEndFunction(RS, C); | 260 | 44 | } |
CheckObjCDealloc.cpp:void clang::ento::check::EndFunction::_checkEndFunction<(anonymous namespace)::ObjCDeallocChecker>(void*, clang::ReturnStmt const*, clang::ento::CheckerContext&) Line | Count | Source | 258 | 632 | CheckerContext &C) { | 259 | 632 | ((const CHECKER *)checker)->checkEndFunction(RS, C); | 260 | 632 | } |
MallocChecker.cpp:void clang::ento::check::EndFunction::_checkEndFunction<(anonymous namespace)::MallocChecker>(void*, clang::ReturnStmt const*, clang::ento::CheckerContext&) Line | Count | Source | 258 | 22.3k | CheckerContext &C) { | 259 | 22.3k | ((const CHECKER *)checker)->checkEndFunction(RS, C); | 260 | 22.3k | } |
MIGChecker.cpp:void clang::ento::check::EndFunction::_checkEndFunction<(anonymous namespace)::MIGChecker>(void*, clang::ReturnStmt const*, clang::ento::CheckerContext&) Line | Count | Source | 258 | 318 | CheckerContext &C) { | 259 | 318 | ((const CHECKER *)checker)->checkEndFunction(RS, C); | 260 | 318 | } |
void clang::ento::check::EndFunction::_checkEndFunction<clang::ento::retaincountchecker::RetainCountChecker>(void*, clang::ReturnStmt const*, clang::ento::CheckerContext&) Line | Count | Source | 258 | 2.12k | CheckerContext &C) { | 259 | 2.12k | ((const CHECKER *)checker)->checkEndFunction(RS, C); | 260 | 2.12k | } |
ReturnValueChecker.cpp:void clang::ento::check::EndFunction::_checkEndFunction<(anonymous namespace)::ReturnValueChecker>(void*, clang::ReturnStmt const*, clang::ento::CheckerContext&) Line | Count | Source | 258 | 128 | CheckerContext &C) { | 259 | 128 | ((const CHECKER *)checker)->checkEndFunction(RS, C); | 260 | 128 | } |
StackAddrEscapeChecker.cpp:void clang::ento::check::EndFunction::_checkEndFunction<(anonymous namespace)::StackAddrEscapeChecker>(void*, clang::ReturnStmt const*, clang::ento::CheckerContext&) Line | Count | Source | 258 | 63.2k | CheckerContext &C) { | 259 | 63.2k | ((const CHECKER *)checker)->checkEndFunction(RS, C); | 260 | 63.2k | } |
TestAfterDivZeroChecker.cpp:void clang::ento::check::EndFunction::_checkEndFunction<(anonymous namespace)::TestAfterDivZeroChecker>(void*, clang::ReturnStmt const*, clang::ento::CheckerContext&) Line | Count | Source | 258 | 1.67k | CheckerContext &C) { | 259 | 1.67k | ((const CHECKER *)checker)->checkEndFunction(RS, C); | 260 | 1.67k | } |
TraversalChecker.cpp:void clang::ento::check::EndFunction::_checkEndFunction<(anonymous namespace)::TraversalDumper>(void*, clang::ReturnStmt const*, clang::ento::CheckerContext&) Line | Count | Source | 258 | 9 | CheckerContext &C) { | 259 | 9 | ((const CHECKER *)checker)->checkEndFunction(RS, C); | 260 | 9 | } |
UninitializedObjectChecker.cpp:void clang::ento::check::EndFunction::_checkEndFunction<(anonymous namespace)::UninitializedObjectChecker>(void*, clang::ReturnStmt const*, clang::ento::CheckerContext&) Line | Count | Source | 258 | 863 | CheckerContext &C) { | 259 | 863 | ((const CHECKER *)checker)->checkEndFunction(RS, C); | 260 | 863 | } |
VirtualCallChecker.cpp:void clang::ento::check::EndFunction::_checkEndFunction<(anonymous namespace)::VirtualCallChecker>(void*, clang::ReturnStmt const*, clang::ento::CheckerContext&) Line | Count | Source | 258 | 15.7k | CheckerContext &C) { | 259 | 15.7k | ((const CHECKER *)checker)->checkEndFunction(RS, C); | 260 | 15.7k | } |
|
261 | | |
262 | | public: |
263 | | template <typename CHECKER> |
264 | 1.88k | static void _register(CHECKER *checker, CheckerManager &mgr) { |
265 | 1.88k | mgr._registerForEndFunction( |
266 | 1.88k | CheckerManager::CheckEndFunctionFunc(checker, _checkEndFunction<CHECKER>)); |
267 | 1.88k | } AnalysisOrderChecker.cpp:void clang::ento::check::EndFunction::_register<(anonymous namespace)::AnalysisOrderChecker>((anonymous namespace)::AnalysisOrderChecker*, clang::ento::CheckerManager&) Line | Count | Source | 264 | 12 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 265 | 12 | mgr._registerForEndFunction( | 266 | 12 | CheckerManager::CheckEndFunctionFunc(checker, _checkEndFunction<CHECKER>)); | 267 | 12 | } |
CheckObjCDealloc.cpp:void clang::ento::check::EndFunction::_register<(anonymous namespace)::ObjCDeallocChecker>((anonymous namespace)::ObjCDeallocChecker*, clang::ento::CheckerManager&) Line | Count | Source | 264 | 50 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 265 | 50 | mgr._registerForEndFunction( | 266 | 50 | CheckerManager::CheckEndFunctionFunc(checker, _checkEndFunction<CHECKER>)); | 267 | 50 | } |
MallocChecker.cpp:void clang::ento::check::EndFunction::_register<(anonymous namespace)::MallocChecker>((anonymous namespace)::MallocChecker*, clang::ento::CheckerManager&) Line | Count | Source | 264 | 241 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 265 | 241 | mgr._registerForEndFunction( | 266 | 241 | CheckerManager::CheckEndFunctionFunc(checker, _checkEndFunction<CHECKER>)); | 267 | 241 | } |
MIGChecker.cpp:void clang::ento::check::EndFunction::_register<(anonymous namespace)::MIGChecker>((anonymous namespace)::MIGChecker*, clang::ento::CheckerManager&) Line | Count | Source | 264 | 47 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 265 | 47 | mgr._registerForEndFunction( | 266 | 47 | CheckerManager::CheckEndFunctionFunc(checker, _checkEndFunction<CHECKER>)); | 267 | 47 | } |
void clang::ento::check::EndFunction::_register<clang::ento::retaincountchecker::RetainCountChecker>(clang::ento::retaincountchecker::RetainCountChecker*, clang::ento::CheckerManager&) Line | Count | Source | 264 | 94 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 265 | 94 | mgr._registerForEndFunction( | 266 | 94 | CheckerManager::CheckEndFunctionFunc(checker, _checkEndFunction<CHECKER>)); | 267 | 94 | } |
ReturnValueChecker.cpp:void clang::ento::check::EndFunction::_register<(anonymous namespace)::ReturnValueChecker>((anonymous namespace)::ReturnValueChecker*, clang::ento::CheckerManager&) Line | Count | Source | 264 | 43 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 265 | 43 | mgr._registerForEndFunction( | 266 | 43 | CheckerManager::CheckEndFunctionFunc(checker, _checkEndFunction<CHECKER>)); | 267 | 43 | } |
StackAddrEscapeChecker.cpp:void clang::ento::check::EndFunction::_register<(anonymous namespace)::StackAddrEscapeChecker>((anonymous namespace)::StackAddrEscapeChecker*, clang::ento::CheckerManager&) Line | Count | Source | 264 | 1.23k | static void _register(CHECKER *checker, CheckerManager &mgr) { | 265 | 1.23k | mgr._registerForEndFunction( | 266 | 1.23k | CheckerManager::CheckEndFunctionFunc(checker, _checkEndFunction<CHECKER>)); | 267 | 1.23k | } |
TestAfterDivZeroChecker.cpp:void clang::ento::check::EndFunction::_register<(anonymous namespace)::TestAfterDivZeroChecker>((anonymous namespace)::TestAfterDivZeroChecker*, clang::ento::CheckerManager&) Line | Count | Source | 264 | 72 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 265 | 72 | mgr._registerForEndFunction( | 266 | 72 | CheckerManager::CheckEndFunctionFunc(checker, _checkEndFunction<CHECKER>)); | 267 | 72 | } |
TraversalChecker.cpp:void clang::ento::check::EndFunction::_register<(anonymous namespace)::TraversalDumper>((anonymous namespace)::TraversalDumper*, clang::ento::CheckerManager&) Line | Count | Source | 264 | 4 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 265 | 4 | mgr._registerForEndFunction( | 266 | 4 | CheckerManager::CheckEndFunctionFunc(checker, _checkEndFunction<CHECKER>)); | 267 | 4 | } |
UninitializedObjectChecker.cpp:void clang::ento::check::EndFunction::_register<(anonymous namespace)::UninitializedObjectChecker>((anonymous namespace)::UninitializedObjectChecker*, clang::ento::CheckerManager&) Line | Count | Source | 264 | 13 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 265 | 13 | mgr._registerForEndFunction( | 266 | 13 | CheckerManager::CheckEndFunctionFunc(checker, _checkEndFunction<CHECKER>)); | 267 | 13 | } |
VirtualCallChecker.cpp:void clang::ento::check::EndFunction::_register<(anonymous namespace)::VirtualCallChecker>((anonymous namespace)::VirtualCallChecker*, clang::ento::CheckerManager&) Line | Count | Source | 264 | 73 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 265 | 73 | mgr._registerForEndFunction( | 266 | 73 | CheckerManager::CheckEndFunctionFunc(checker, _checkEndFunction<CHECKER>)); | 267 | 73 | } |
|
268 | | }; |
269 | | |
270 | | class BranchCondition { |
271 | | template <typename CHECKER> |
272 | | static void _checkBranchCondition(void *checker, const Stmt *Condition, |
273 | 50.0k | CheckerContext & C) { |
274 | 50.0k | ((const CHECKER *)checker)->checkBranchCondition(Condition, C); |
275 | 50.0k | } TestAfterDivZeroChecker.cpp:void clang::ento::check::BranchCondition::_checkBranchCondition<(anonymous namespace)::TestAfterDivZeroChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 273 | 1.44k | CheckerContext & C) { | 274 | 1.44k | ((const CHECKER *)checker)->checkBranchCondition(Condition, C); | 275 | 1.44k | } |
TraversalChecker.cpp:void clang::ento::check::BranchCondition::_checkBranchCondition<(anonymous namespace)::TraversalDumper>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 273 | 45 | CheckerContext & C) { | 274 | 45 | ((const CHECKER *)checker)->checkBranchCondition(Condition, C); | 275 | 45 | } |
UndefBranchChecker.cpp:void clang::ento::check::BranchCondition::_checkBranchCondition<(anonymous namespace)::UndefBranchChecker>(void*, clang::Stmt const*, clang::ento::CheckerContext&) Line | Count | Source | 273 | 48.5k | CheckerContext & C) { | 274 | 48.5k | ((const CHECKER *)checker)->checkBranchCondition(Condition, C); | 275 | 48.5k | } |
|
276 | | |
277 | | public: |
278 | | template <typename CHECKER> |
279 | 1.31k | static void _register(CHECKER *checker, CheckerManager &mgr) { |
280 | 1.31k | mgr._registerForBranchCondition( |
281 | 1.31k | CheckerManager::CheckBranchConditionFunc(checker, |
282 | 1.31k | _checkBranchCondition<CHECKER>)); |
283 | 1.31k | } TestAfterDivZeroChecker.cpp:void clang::ento::check::BranchCondition::_register<(anonymous namespace)::TestAfterDivZeroChecker>((anonymous namespace)::TestAfterDivZeroChecker*, clang::ento::CheckerManager&) Line | Count | Source | 279 | 72 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 280 | 72 | mgr._registerForBranchCondition( | 281 | 72 | CheckerManager::CheckBranchConditionFunc(checker, | 282 | 72 | _checkBranchCondition<CHECKER>)); | 283 | 72 | } |
TraversalChecker.cpp:void clang::ento::check::BranchCondition::_register<(anonymous namespace)::TraversalDumper>((anonymous namespace)::TraversalDumper*, clang::ento::CheckerManager&) Line | Count | Source | 279 | 4 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 280 | 4 | mgr._registerForBranchCondition( | 281 | 4 | CheckerManager::CheckBranchConditionFunc(checker, | 282 | 4 | _checkBranchCondition<CHECKER>)); | 283 | 4 | } |
UndefBranchChecker.cpp:void clang::ento::check::BranchCondition::_register<(anonymous namespace)::UndefBranchChecker>((anonymous namespace)::UndefBranchChecker*, clang::ento::CheckerManager&) Line | Count | Source | 279 | 1.23k | static void _register(CHECKER *checker, CheckerManager &mgr) { | 280 | 1.23k | mgr._registerForBranchCondition( | 281 | 1.23k | CheckerManager::CheckBranchConditionFunc(checker, | 282 | 1.23k | _checkBranchCondition<CHECKER>)); | 283 | 1.23k | } |
|
284 | | }; |
285 | | |
286 | | class NewAllocator { |
287 | | template <typename CHECKER> |
288 | | static void _checkNewAllocator(void *checker, const CXXAllocatorCall &Call, |
289 | 624 | CheckerContext &C) { |
290 | 624 | ((const CHECKER *)checker)->checkNewAllocator(Call, C); |
291 | 624 | } AnalysisOrderChecker.cpp:void clang::ento::check::NewAllocator::_checkNewAllocator<(anonymous namespace)::AnalysisOrderChecker>(void*, clang::ento::CXXAllocatorCall const&, clang::ento::CheckerContext&) Line | Count | Source | 289 | 9 | CheckerContext &C) { | 290 | 9 | ((const CHECKER *)checker)->checkNewAllocator(Call, C); | 291 | 9 | } |
MallocChecker.cpp:void clang::ento::check::NewAllocator::_checkNewAllocator<(anonymous namespace)::MallocChecker>(void*, clang::ento::CXXAllocatorCall const&, clang::ento::CheckerContext&) Line | Count | Source | 289 | 615 | CheckerContext &C) { | 290 | 615 | ((const CHECKER *)checker)->checkNewAllocator(Call, C); | 291 | 615 | } |
|
292 | | |
293 | | public: |
294 | | template <typename CHECKER> |
295 | 253 | static void _register(CHECKER *checker, CheckerManager &mgr) { |
296 | 253 | mgr._registerForNewAllocator( |
297 | 253 | CheckerManager::CheckNewAllocatorFunc(checker, |
298 | 253 | _checkNewAllocator<CHECKER>)); |
299 | 253 | } AnalysisOrderChecker.cpp:void clang::ento::check::NewAllocator::_register<(anonymous namespace)::AnalysisOrderChecker>((anonymous namespace)::AnalysisOrderChecker*, clang::ento::CheckerManager&) Line | Count | Source | 295 | 12 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 296 | 12 | mgr._registerForNewAllocator( | 297 | 12 | CheckerManager::CheckNewAllocatorFunc(checker, | 298 | 12 | _checkNewAllocator<CHECKER>)); | 299 | 12 | } |
MallocChecker.cpp:void clang::ento::check::NewAllocator::_register<(anonymous namespace)::MallocChecker>((anonymous namespace)::MallocChecker*, clang::ento::CheckerManager&) Line | Count | Source | 295 | 241 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 296 | 241 | mgr._registerForNewAllocator( | 297 | 241 | CheckerManager::CheckNewAllocatorFunc(checker, | 298 | 241 | _checkNewAllocator<CHECKER>)); | 299 | 241 | } |
|
300 | | }; |
301 | | |
302 | | class LiveSymbols { |
303 | | template <typename CHECKER> |
304 | | static void _checkLiveSymbols(void *checker, ProgramStateRef state, |
305 | 386k | SymbolReaper &SR) { |
306 | 386k | ((const CHECKER *)checker)->checkLiveSymbols(state, SR); |
307 | 386k | } AnalysisOrderChecker.cpp:void clang::ento::check::LiveSymbols::_checkLiveSymbols<(anonymous namespace)::AnalysisOrderChecker>(void*, llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, clang::ento::SymbolReaper&) Line | Count | Source | 305 | 124 | SymbolReaper &SR) { | 306 | 124 | ((const CHECKER *)checker)->checkLiveSymbols(state, SR); | 307 | 124 | } |
CStringChecker.cpp:void clang::ento::check::LiveSymbols::_checkLiveSymbols<(anonymous namespace)::CStringChecker>(void*, llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, clang::ento::SymbolReaper&) Line | Count | Source | 305 | 135k | SymbolReaper &SR) { | 306 | 135k | ((const CHECKER *)checker)->checkLiveSymbols(state, SR); | 307 | 135k | } |
ContainerModeling.cpp:void clang::ento::check::LiveSymbols::_checkLiveSymbols<(anonymous namespace)::ContainerModeling>(void*, llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, clang::ento::SymbolReaper&) Line | Count | Source | 305 | 40.0k | SymbolReaper &SR) { | 306 | 40.0k | ((const CHECKER *)checker)->checkLiveSymbols(state, SR); | 307 | 40.0k | } |
ErrnoModeling.cpp:void clang::ento::check::LiveSymbols::_checkLiveSymbols<(anonymous namespace)::ErrnoModeling>(void*, llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, clang::ento::SymbolReaper&) Line | Count | Source | 305 | 3.79k | SymbolReaper &SR) { | 306 | 3.79k | ((const CHECKER *)checker)->checkLiveSymbols(state, SR); | 307 | 3.79k | } |
IteratorModeling.cpp:void clang::ento::check::LiveSymbols::_checkLiveSymbols<(anonymous namespace)::IteratorModeling>(void*, llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, clang::ento::SymbolReaper&) Line | Count | Source | 305 | 40.0k | SymbolReaper &SR) { | 306 | 40.0k | ((const CHECKER *)checker)->checkLiveSymbols(state, SR); | 307 | 40.0k | } |
SmartPtrModeling.cpp:void clang::ento::check::LiveSymbols::_checkLiveSymbols<(anonymous namespace)::SmartPtrModeling>(void*, llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, clang::ento::SymbolReaper&) Line | Count | Source | 305 | 167k | SymbolReaper &SR) { | 306 | 167k | ((const CHECKER *)checker)->checkLiveSymbols(state, SR); | 307 | 167k | } |
|
308 | | |
309 | | public: |
310 | | template <typename CHECKER> |
311 | 446 | static void _register(CHECKER *checker, CheckerManager &mgr) { |
312 | 446 | mgr._registerForLiveSymbols( |
313 | 446 | CheckerManager::CheckLiveSymbolsFunc(checker, _checkLiveSymbols<CHECKER>)); |
314 | 446 | } AnalysisOrderChecker.cpp:void clang::ento::check::LiveSymbols::_register<(anonymous namespace)::AnalysisOrderChecker>((anonymous namespace)::AnalysisOrderChecker*, clang::ento::CheckerManager&) Line | Count | Source | 311 | 12 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 312 | 12 | mgr._registerForLiveSymbols( | 313 | 12 | CheckerManager::CheckLiveSymbolsFunc(checker, _checkLiveSymbols<CHECKER>)); | 314 | 12 | } |
CStringChecker.cpp:void clang::ento::check::LiveSymbols::_register<(anonymous namespace)::CStringChecker>((anonymous namespace)::CStringChecker*, clang::ento::CheckerManager&) Line | Count | Source | 311 | 264 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 312 | 264 | mgr._registerForLiveSymbols( | 313 | 264 | CheckerManager::CheckLiveSymbolsFunc(checker, _checkLiveSymbols<CHECKER>)); | 314 | 264 | } |
ContainerModeling.cpp:void clang::ento::check::LiveSymbols::_register<(anonymous namespace)::ContainerModeling>((anonymous namespace)::ContainerModeling*, clang::ento::CheckerManager&) Line | Count | Source | 311 | 21 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 312 | 21 | mgr._registerForLiveSymbols( | 313 | 21 | CheckerManager::CheckLiveSymbolsFunc(checker, _checkLiveSymbols<CHECKER>)); | 314 | 21 | } |
ErrnoModeling.cpp:void clang::ento::check::LiveSymbols::_register<(anonymous namespace)::ErrnoModeling>((anonymous namespace)::ErrnoModeling*, clang::ento::CheckerManager&) Line | Count | Source | 311 | 53 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 312 | 53 | mgr._registerForLiveSymbols( | 313 | 53 | CheckerManager::CheckLiveSymbolsFunc(checker, _checkLiveSymbols<CHECKER>)); | 314 | 53 | } |
IteratorModeling.cpp:void clang::ento::check::LiveSymbols::_register<(anonymous namespace)::IteratorModeling>((anonymous namespace)::IteratorModeling*, clang::ento::CheckerManager&) Line | Count | Source | 311 | 19 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 312 | 19 | mgr._registerForLiveSymbols( | 313 | 19 | CheckerManager::CheckLiveSymbolsFunc(checker, _checkLiveSymbols<CHECKER>)); | 314 | 19 | } |
SmartPtrModeling.cpp:void clang::ento::check::LiveSymbols::_register<(anonymous namespace)::SmartPtrModeling>((anonymous namespace)::SmartPtrModeling*, clang::ento::CheckerManager&) Line | Count | Source | 311 | 77 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 312 | 77 | mgr._registerForLiveSymbols( | 313 | 77 | CheckerManager::CheckLiveSymbolsFunc(checker, _checkLiveSymbols<CHECKER>)); | 314 | 77 | } |
|
315 | | }; |
316 | | |
317 | | class DeadSymbols { |
318 | | template <typename CHECKER> |
319 | | static void _checkDeadSymbols(void *checker, |
320 | 1.53M | SymbolReaper &SR, CheckerContext &C) { |
321 | 1.53M | ((const CHECKER *)checker)->checkDeadSymbols(SR, C); |
322 | 1.53M | } BasicObjCFoundationChecks.cpp:void clang::ento::check::DeadSymbols::_checkDeadSymbols<(anonymous namespace)::ObjCLoopChecker>(void*, clang::ento::SymbolReaper&, clang::ento::CheckerContext&) Line | Count | Source | 320 | 2.88k | SymbolReaper &SR, CheckerContext &C) { | 321 | 2.88k | ((const CHECKER *)checker)->checkDeadSymbols(SR, C); | 322 | 2.88k | } |
CStringChecker.cpp:void clang::ento::check::DeadSymbols::_checkDeadSymbols<(anonymous namespace)::CStringChecker>(void*, clang::ento::SymbolReaper&, clang::ento::CheckerContext&) Line | Count | Source | 320 | 135k | SymbolReaper &SR, CheckerContext &C) { | 321 | 135k | ((const CHECKER *)checker)->checkDeadSymbols(SR, C); | 322 | 135k | } |
CastValueChecker.cpp:void clang::ento::check::DeadSymbols::_checkDeadSymbols<(anonymous namespace)::CastValueChecker>(void*, clang::ento::SymbolReaper&, clang::ento::CheckerContext&) Line | Count | Source | 320 | 4.29k | SymbolReaper &SR, CheckerContext &C) { | 321 | 4.29k | ((const CHECKER *)checker)->checkDeadSymbols(SR, C); | 322 | 4.29k | } |
ContainerModeling.cpp:void clang::ento::check::DeadSymbols::_checkDeadSymbols<(anonymous namespace)::ContainerModeling>(void*, clang::ento::SymbolReaper&, clang::ento::CheckerContext&) Line | Count | Source | 320 | 40.0k | SymbolReaper &SR, CheckerContext &C) { | 321 | 40.0k | ((const CHECKER *)checker)->checkDeadSymbols(SR, C); | 322 | 40.0k | } |
DynamicTypePropagation.cpp:void clang::ento::check::DeadSymbols::_checkDeadSymbols<(anonymous namespace)::DynamicTypePropagation>(void*, clang::ento::SymbolReaper&, clang::ento::CheckerContext&) Line | Count | Source | 320 | 387k | SymbolReaper &SR, CheckerContext &C) { | 321 | 387k | ((const CHECKER *)checker)->checkDeadSymbols(SR, C); | 322 | 387k | } |
ExprInspectionChecker.cpp:void clang::ento::check::DeadSymbols::_checkDeadSymbols<(anonymous namespace)::ExprInspectionChecker>(void*, clang::ento::SymbolReaper&, clang::ento::CheckerContext&) Line | Count | Source | 320 | 212k | SymbolReaper &SR, CheckerContext &C) { | 321 | 212k | ((const CHECKER *)checker)->checkDeadSymbols(SR, C); | 322 | 212k | } |
FuchsiaHandleChecker.cpp:void clang::ento::check::DeadSymbols::_checkDeadSymbols<(anonymous namespace)::FuchsiaHandleChecker>(void*, clang::ento::SymbolReaper&, clang::ento::CheckerContext&) Line | Count | Source | 320 | 413 | SymbolReaper &SR, CheckerContext &C) { | 321 | 413 | ((const CHECKER *)checker)->checkDeadSymbols(SR, C); | 322 | 413 | } |
InnerPointerChecker.cpp:void clang::ento::check::DeadSymbols::_checkDeadSymbols<(anonymous namespace)::InnerPointerChecker>(void*, clang::ento::SymbolReaper&, clang::ento::CheckerContext&) Line | Count | Source | 320 | 97.0k | SymbolReaper &SR, CheckerContext &C) { | 321 | 97.0k | ((const CHECKER *)checker)->checkDeadSymbols(SR, C); | 322 | 97.0k | } |
IteratorModeling.cpp:void clang::ento::check::DeadSymbols::_checkDeadSymbols<(anonymous namespace)::IteratorModeling>(void*, clang::ento::SymbolReaper&, clang::ento::CheckerContext&) Line | Count | Source | 320 | 40.0k | SymbolReaper &SR, CheckerContext &C) { | 321 | 40.0k | ((const CHECKER *)checker)->checkDeadSymbols(SR, C); | 322 | 40.0k | } |
MacOSKeychainAPIChecker.cpp:void clang::ento::check::DeadSymbols::_checkDeadSymbols<(anonymous namespace)::MacOSKeychainAPIChecker>(void*, clang::ento::SymbolReaper&, clang::ento::CheckerContext&) Line | Count | Source | 320 | 1.85k | SymbolReaper &SR, CheckerContext &C) { | 321 | 1.85k | ((const CHECKER *)checker)->checkDeadSymbols(SR, C); | 322 | 1.85k | } |
MallocChecker.cpp:void clang::ento::check::DeadSymbols::_checkDeadSymbols<(anonymous namespace)::MallocChecker>(void*, clang::ento::SymbolReaper&, clang::ento::CheckerContext&) Line | Count | Source | 320 | 133k | SymbolReaper &SR, CheckerContext &C) { | 321 | 133k | ((const CHECKER *)checker)->checkDeadSymbols(SR, C); | 322 | 133k | } |
MoveChecker.cpp:void clang::ento::check::DeadSymbols::_checkDeadSymbols<(anonymous namespace)::MoveChecker>(void*, clang::ento::SymbolReaper&, clang::ento::CheckerContext&) Line | Count | Source | 320 | 167k | SymbolReaper &SR, CheckerContext &C) { | 321 | 167k | ((const CHECKER *)checker)->checkDeadSymbols(SR, C); | 322 | 167k | } |
void clang::ento::check::DeadSymbols::_checkDeadSymbols<clang::ento::mpi::MPIChecker>(void*, clang::ento::SymbolReaper&, clang::ento::CheckerContext&) Line | Count | Source | 320 | 326 | SymbolReaper &SR, CheckerContext &C) { | 321 | 326 | ((const CHECKER *)checker)->checkDeadSymbols(SR, C); | 322 | 326 | } |
NullabilityChecker.cpp:void clang::ento::check::DeadSymbols::_checkDeadSymbols<(anonymous namespace)::NullabilityChecker>(void*, clang::ento::SymbolReaper&, clang::ento::CheckerContext&) Line | Count | Source | 320 | 3.16k | SymbolReaper &SR, CheckerContext &C) { | 321 | 3.16k | ((const CHECKER *)checker)->checkDeadSymbols(SR, C); | 322 | 3.16k | } |
PointerArithChecker.cpp:void clang::ento::check::DeadSymbols::_checkDeadSymbols<(anonymous namespace)::PointerArithChecker>(void*, clang::ento::SymbolReaper&, clang::ento::CheckerContext&) Line | Count | Source | 320 | 110k | SymbolReaper &SR, CheckerContext &C) { | 321 | 110k | ((const CHECKER *)checker)->checkDeadSymbols(SR, C); | 322 | 110k | } |
PthreadLockChecker.cpp:void clang::ento::check::DeadSymbols::_checkDeadSymbols<(anonymous namespace)::PthreadLockChecker>(void*, clang::ento::SymbolReaper&, clang::ento::CheckerContext&) Line | Count | Source | 320 | 10.3k | SymbolReaper &SR, CheckerContext &C) { | 321 | 10.3k | ((const CHECKER *)checker)->checkDeadSymbols(SR, C); | 322 | 10.3k | } |
void clang::ento::check::DeadSymbols::_checkDeadSymbols<clang::ento::retaincountchecker::RetainCountChecker>(void*, clang::ento::SymbolReaper&, clang::ento::CheckerContext&) Line | Count | Source | 320 | 13.0k | SymbolReaper &SR, CheckerContext &C) { | 321 | 13.0k | ((const CHECKER *)checker)->checkDeadSymbols(SR, C); | 322 | 13.0k | } |
SimpleStreamChecker.cpp:void clang::ento::check::DeadSymbols::_checkDeadSymbols<(anonymous namespace)::SimpleStreamChecker>(void*, clang::ento::SymbolReaper&, clang::ento::CheckerContext&) Line | Count | Source | 320 | 172 | SymbolReaper &SR, CheckerContext &C) { | 321 | 172 | ((const CHECKER *)checker)->checkDeadSymbols(SR, C); | 322 | 172 | } |
SmartPtrModeling.cpp:void clang::ento::check::DeadSymbols::_checkDeadSymbols<(anonymous namespace)::SmartPtrModeling>(void*, clang::ento::SymbolReaper&, clang::ento::CheckerContext&) Line | Count | Source | 320 | 167k | SymbolReaper &SR, CheckerContext &C) { | 321 | 167k | ((const CHECKER *)checker)->checkDeadSymbols(SR, C); | 322 | 167k | } |
StreamChecker.cpp:void clang::ento::check::DeadSymbols::_checkDeadSymbols<(anonymous namespace)::StreamChecker>(void*, clang::ento::SymbolReaper&, clang::ento::CheckerContext&) Line | Count | Source | 320 | 974 | SymbolReaper &SR, CheckerContext &C) { | 321 | 974 | ((const CHECKER *)checker)->checkDeadSymbols(SR, C); | 322 | 974 | } |
TrustNonnullChecker.cpp:void clang::ento::check::DeadSymbols::_checkDeadSymbols<(anonymous namespace)::TrustNonnullChecker>(void*, clang::ento::SymbolReaper&, clang::ento::CheckerContext&) Line | Count | Source | 320 | 2.79k | SymbolReaper &SR, CheckerContext &C) { | 321 | 2.79k | ((const CHECKER *)checker)->checkDeadSymbols(SR, C); | 322 | 2.79k | } |
UninitializedObjectChecker.cpp:void clang::ento::check::DeadSymbols::_checkDeadSymbols<(anonymous namespace)::UninitializedObjectChecker>(void*, clang::ento::SymbolReaper&, clang::ento::CheckerContext&) Line | Count | Source | 320 | 2.50k | SymbolReaper &SR, CheckerContext &C) { | 321 | 2.50k | ((const CHECKER *)checker)->checkDeadSymbols(SR, C); | 322 | 2.50k | } |
ValistChecker.cpp:void clang::ento::check::DeadSymbols::_checkDeadSymbols<(anonymous namespace)::ValistChecker>(void*, clang::ento::SymbolReaper&, clang::ento::CheckerContext&) Line | Count | Source | 320 | 593 | SymbolReaper &SR, CheckerContext &C) { | 321 | 593 | ((const CHECKER *)checker)->checkDeadSymbols(SR, C); | 322 | 593 | } |
|
323 | | |
324 | | public: |
325 | | template <typename CHECKER> |
326 | 2.93k | static void _register(CHECKER *checker, CheckerManager &mgr) { |
327 | 2.93k | mgr._registerForDeadSymbols( |
328 | 2.93k | CheckerManager::CheckDeadSymbolsFunc(checker, _checkDeadSymbols<CHECKER>)); |
329 | 2.93k | } BasicObjCFoundationChecks.cpp:void clang::ento::check::DeadSymbols::_register<(anonymous namespace)::ObjCLoopChecker>((anonymous namespace)::ObjCLoopChecker*, clang::ento::CheckerManager&) Line | Count | Source | 326 | 48 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 327 | 48 | mgr._registerForDeadSymbols( | 328 | 48 | CheckerManager::CheckDeadSymbolsFunc(checker, _checkDeadSymbols<CHECKER>)); | 329 | 48 | } |
CStringChecker.cpp:void clang::ento::check::DeadSymbols::_register<(anonymous namespace)::CStringChecker>((anonymous namespace)::CStringChecker*, clang::ento::CheckerManager&) Line | Count | Source | 326 | 264 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 327 | 264 | mgr._registerForDeadSymbols( | 328 | 264 | CheckerManager::CheckDeadSymbolsFunc(checker, _checkDeadSymbols<CHECKER>)); | 329 | 264 | } |
CastValueChecker.cpp:void clang::ento::check::DeadSymbols::_register<(anonymous namespace)::CastValueChecker>((anonymous namespace)::CastValueChecker*, clang::ento::CheckerManager&) Line | Count | Source | 326 | 53 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 327 | 53 | mgr._registerForDeadSymbols( | 328 | 53 | CheckerManager::CheckDeadSymbolsFunc(checker, _checkDeadSymbols<CHECKER>)); | 329 | 53 | } |
ContainerModeling.cpp:void clang::ento::check::DeadSymbols::_register<(anonymous namespace)::ContainerModeling>((anonymous namespace)::ContainerModeling*, clang::ento::CheckerManager&) Line | Count | Source | 326 | 21 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 327 | 21 | mgr._registerForDeadSymbols( | 328 | 21 | CheckerManager::CheckDeadSymbolsFunc(checker, _checkDeadSymbols<CHECKER>)); | 329 | 21 | } |
DynamicTypePropagation.cpp:void clang::ento::check::DeadSymbols::_register<(anonymous namespace)::DynamicTypePropagation>((anonymous namespace)::DynamicTypePropagation*, clang::ento::CheckerManager&) Line | Count | Source | 326 | 1.23k | static void _register(CHECKER *checker, CheckerManager &mgr) { | 327 | 1.23k | mgr._registerForDeadSymbols( | 328 | 1.23k | CheckerManager::CheckDeadSymbolsFunc(checker, _checkDeadSymbols<CHECKER>)); | 329 | 1.23k | } |
ExprInspectionChecker.cpp:void clang::ento::check::DeadSymbols::_register<(anonymous namespace)::ExprInspectionChecker>((anonymous namespace)::ExprInspectionChecker*, clang::ento::CheckerManager&) Line | Count | Source | 326 | 408 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 327 | 408 | mgr._registerForDeadSymbols( | 328 | 408 | CheckerManager::CheckDeadSymbolsFunc(checker, _checkDeadSymbols<CHECKER>)); | 329 | 408 | } |
FuchsiaHandleChecker.cpp:void clang::ento::check::DeadSymbols::_register<(anonymous namespace)::FuchsiaHandleChecker>((anonymous namespace)::FuchsiaHandleChecker*, clang::ento::CheckerManager&) Line | Count | Source | 326 | 1 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 327 | 1 | mgr._registerForDeadSymbols( | 328 | 1 | CheckerManager::CheckDeadSymbolsFunc(checker, _checkDeadSymbols<CHECKER>)); | 329 | 1 | } |
InnerPointerChecker.cpp:void clang::ento::check::DeadSymbols::_register<(anonymous namespace)::InnerPointerChecker>((anonymous namespace)::InnerPointerChecker*, clang::ento::CheckerManager&) Line | Count | Source | 326 | 66 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 327 | 66 | mgr._registerForDeadSymbols( | 328 | 66 | CheckerManager::CheckDeadSymbolsFunc(checker, _checkDeadSymbols<CHECKER>)); | 329 | 66 | } |
IteratorModeling.cpp:void clang::ento::check::DeadSymbols::_register<(anonymous namespace)::IteratorModeling>((anonymous namespace)::IteratorModeling*, clang::ento::CheckerManager&) Line | Count | Source | 326 | 19 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 327 | 19 | mgr._registerForDeadSymbols( | 328 | 19 | CheckerManager::CheckDeadSymbolsFunc(checker, _checkDeadSymbols<CHECKER>)); | 329 | 19 | } |
MacOSKeychainAPIChecker.cpp:void clang::ento::check::DeadSymbols::_register<(anonymous namespace)::MacOSKeychainAPIChecker>((anonymous namespace)::MacOSKeychainAPIChecker*, clang::ento::CheckerManager&) Line | Count | Source | 326 | 48 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 327 | 48 | mgr._registerForDeadSymbols( | 328 | 48 | CheckerManager::CheckDeadSymbolsFunc(checker, _checkDeadSymbols<CHECKER>)); | 329 | 48 | } |
MallocChecker.cpp:void clang::ento::check::DeadSymbols::_register<(anonymous namespace)::MallocChecker>((anonymous namespace)::MallocChecker*, clang::ento::CheckerManager&) Line | Count | Source | 326 | 241 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 327 | 241 | mgr._registerForDeadSymbols( | 328 | 241 | CheckerManager::CheckDeadSymbolsFunc(checker, _checkDeadSymbols<CHECKER>)); | 329 | 241 | } |
MoveChecker.cpp:void clang::ento::check::DeadSymbols::_register<(anonymous namespace)::MoveChecker>((anonymous namespace)::MoveChecker*, clang::ento::CheckerManager&) Line | Count | Source | 326 | 78 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 327 | 78 | mgr._registerForDeadSymbols( | 328 | 78 | CheckerManager::CheckDeadSymbolsFunc(checker, _checkDeadSymbols<CHECKER>)); | 329 | 78 | } |
void clang::ento::check::DeadSymbols::_register<clang::ento::mpi::MPIChecker>(clang::ento::mpi::MPIChecker*, clang::ento::CheckerManager&) Line | Count | Source | 326 | 3 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 327 | 3 | mgr._registerForDeadSymbols( | 328 | 3 | CheckerManager::CheckDeadSymbolsFunc(checker, _checkDeadSymbols<CHECKER>)); | 329 | 3 | } |
NullabilityChecker.cpp:void clang::ento::check::DeadSymbols::_register<(anonymous namespace)::NullabilityChecker>((anonymous namespace)::NullabilityChecker*, clang::ento::CheckerManager&) Line | Count | Source | 326 | 51 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 327 | 51 | mgr._registerForDeadSymbols( | 328 | 51 | CheckerManager::CheckDeadSymbolsFunc(checker, _checkDeadSymbols<CHECKER>)); | 329 | 51 | } |
PointerArithChecker.cpp:void clang::ento::check::DeadSymbols::_register<(anonymous namespace)::PointerArithChecker>((anonymous namespace)::PointerArithChecker*, clang::ento::CheckerManager&) Line | Count | Source | 326 | 74 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 327 | 74 | mgr._registerForDeadSymbols( | 328 | 74 | CheckerManager::CheckDeadSymbolsFunc(checker, _checkDeadSymbols<CHECKER>)); | 329 | 74 | } |
PthreadLockChecker.cpp:void clang::ento::check::DeadSymbols::_register<(anonymous namespace)::PthreadLockChecker>((anonymous namespace)::PthreadLockChecker*, clang::ento::CheckerManager&) Line | Count | Source | 326 | 77 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 327 | 77 | mgr._registerForDeadSymbols( | 328 | 77 | CheckerManager::CheckDeadSymbolsFunc(checker, _checkDeadSymbols<CHECKER>)); | 329 | 77 | } |
void clang::ento::check::DeadSymbols::_register<clang::ento::retaincountchecker::RetainCountChecker>(clang::ento::retaincountchecker::RetainCountChecker*, clang::ento::CheckerManager&) Line | Count | Source | 326 | 94 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 327 | 94 | mgr._registerForDeadSymbols( | 328 | 94 | CheckerManager::CheckDeadSymbolsFunc(checker, _checkDeadSymbols<CHECKER>)); | 329 | 94 | } |
SimpleStreamChecker.cpp:void clang::ento::check::DeadSymbols::_register<(anonymous namespace)::SimpleStreamChecker>((anonymous namespace)::SimpleStreamChecker*, clang::ento::CheckerManager&) Line | Count | Source | 326 | 4 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 327 | 4 | mgr._registerForDeadSymbols( | 328 | 4 | CheckerManager::CheckDeadSymbolsFunc(checker, _checkDeadSymbols<CHECKER>)); | 329 | 4 | } |
SmartPtrModeling.cpp:void clang::ento::check::DeadSymbols::_register<(anonymous namespace)::SmartPtrModeling>((anonymous namespace)::SmartPtrModeling*, clang::ento::CheckerManager&) Line | Count | Source | 326 | 77 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 327 | 77 | mgr._registerForDeadSymbols( | 328 | 77 | CheckerManager::CheckDeadSymbolsFunc(checker, _checkDeadSymbols<CHECKER>)); | 329 | 77 | } |
StreamChecker.cpp:void clang::ento::check::DeadSymbols::_register<(anonymous namespace)::StreamChecker>((anonymous namespace)::StreamChecker*, clang::ento::CheckerManager&) Line | Count | Source | 326 | 11 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 327 | 11 | mgr._registerForDeadSymbols( | 328 | 11 | CheckerManager::CheckDeadSymbolsFunc(checker, _checkDeadSymbols<CHECKER>)); | 329 | 11 | } |
TrustNonnullChecker.cpp:void clang::ento::check::DeadSymbols::_register<(anonymous namespace)::TrustNonnullChecker>((anonymous namespace)::TrustNonnullChecker*, clang::ento::CheckerManager&) Line | Count | Source | 326 | 42 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 327 | 42 | mgr._registerForDeadSymbols( | 328 | 42 | CheckerManager::CheckDeadSymbolsFunc(checker, _checkDeadSymbols<CHECKER>)); | 329 | 42 | } |
UninitializedObjectChecker.cpp:void clang::ento::check::DeadSymbols::_register<(anonymous namespace)::UninitializedObjectChecker>((anonymous namespace)::UninitializedObjectChecker*, clang::ento::CheckerManager&) Line | Count | Source | 326 | 13 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 327 | 13 | mgr._registerForDeadSymbols( | 328 | 13 | CheckerManager::CheckDeadSymbolsFunc(checker, _checkDeadSymbols<CHECKER>)); | 329 | 13 | } |
ValistChecker.cpp:void clang::ento::check::DeadSymbols::_register<(anonymous namespace)::ValistChecker>((anonymous namespace)::ValistChecker*, clang::ento::CheckerManager&) Line | Count | Source | 326 | 7 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 327 | 7 | mgr._registerForDeadSymbols( | 328 | 7 | CheckerManager::CheckDeadSymbolsFunc(checker, _checkDeadSymbols<CHECKER>)); | 329 | 7 | } |
|
330 | | }; |
331 | | |
332 | | class RegionChanges { |
333 | | template <typename CHECKER> |
334 | | static ProgramStateRef |
335 | | _checkRegionChanges(void *checker, |
336 | | ProgramStateRef state, |
337 | | const InvalidatedSymbols *invalidated, |
338 | | ArrayRef<const MemRegion *> Explicits, |
339 | | ArrayRef<const MemRegion *> Regions, |
340 | | const LocationContext *LCtx, |
341 | 160k | const CallEvent *Call) { |
342 | 160k | return ((const CHECKER *) checker)->checkRegionChanges(state, invalidated, |
343 | 160k | Explicits, Regions, |
344 | 160k | LCtx, Call); |
345 | 160k | } AnalysisOrderChecker.cpp:llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const> clang::ento::check::RegionChanges::_checkRegionChanges<(anonymous namespace)::AnalysisOrderChecker>(void*, llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, llvm::DenseSet<clang::ento::SymExpr const*, llvm::DenseMapInfo<clang::ento::SymExpr const*, void> > const*, llvm::ArrayRef<clang::ento::MemRegion const*>, llvm::ArrayRef<clang::ento::MemRegion const*>, clang::LocationContext const*, clang::ento::CallEvent const*) Line | Count | Source | 341 | 68 | const CallEvent *Call) { | 342 | 68 | return ((const CHECKER *) checker)->checkRegionChanges(state, invalidated, | 343 | 68 | Explicits, Regions, | 344 | 68 | LCtx, Call); | 345 | 68 | } |
CStringChecker.cpp:llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const> clang::ento::check::RegionChanges::_checkRegionChanges<(anonymous namespace)::CStringChecker>(void*, llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, llvm::DenseSet<clang::ento::SymExpr const*, llvm::DenseMapInfo<clang::ento::SymExpr const*, void> > const*, llvm::ArrayRef<clang::ento::MemRegion const*>, llvm::ArrayRef<clang::ento::MemRegion const*>, clang::LocationContext const*, clang::ento::CallEvent const*) Line | Count | Source | 341 | 54.7k | const CallEvent *Call) { | 342 | 54.7k | return ((const CHECKER *) checker)->checkRegionChanges(state, invalidated, | 343 | 54.7k | Explicits, Regions, | 344 | 54.7k | LCtx, Call); | 345 | 54.7k | } |
ErrnoChecker.cpp:llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const> clang::ento::check::RegionChanges::_checkRegionChanges<(anonymous namespace)::ErrnoChecker>(void*, llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, llvm::DenseSet<clang::ento::SymExpr const*, llvm::DenseMapInfo<clang::ento::SymExpr const*, void> > const*, llvm::ArrayRef<clang::ento::MemRegion const*>, llvm::ArrayRef<clang::ento::MemRegion const*>, clang::LocationContext const*, clang::ento::CallEvent const*) Line | Count | Source | 341 | 799 | const CallEvent *Call) { | 342 | 799 | return ((const CHECKER *) checker)->checkRegionChanges(state, invalidated, | 343 | 799 | Explicits, Regions, | 344 | 799 | LCtx, Call); | 345 | 799 | } |
MoveChecker.cpp:llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const> clang::ento::check::RegionChanges::_checkRegionChanges<(anonymous namespace)::MoveChecker>(void*, llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, llvm::DenseSet<clang::ento::SymExpr const*, llvm::DenseMapInfo<clang::ento::SymExpr const*, void> > const*, llvm::ArrayRef<clang::ento::MemRegion const*>, llvm::ArrayRef<clang::ento::MemRegion const*>, clang::LocationContext const*, clang::ento::CallEvent const*) Line | Count | Source | 341 | 47.1k | const CallEvent *Call) { | 342 | 47.1k | return ((const CHECKER *) checker)->checkRegionChanges(state, invalidated, | 343 | 47.1k | Explicits, Regions, | 344 | 47.1k | LCtx, Call); | 345 | 47.1k | } |
PthreadLockChecker.cpp:llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const> clang::ento::check::RegionChanges::_checkRegionChanges<(anonymous namespace)::PthreadLockChecker>(void*, llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, llvm::DenseSet<clang::ento::SymExpr const*, llvm::DenseMapInfo<clang::ento::SymExpr const*, void> > const*, llvm::ArrayRef<clang::ento::MemRegion const*>, llvm::ArrayRef<clang::ento::MemRegion const*>, clang::LocationContext const*, clang::ento::CallEvent const*) Line | Count | Source | 341 | 4.13k | const CallEvent *Call) { | 342 | 4.13k | return ((const CHECKER *) checker)->checkRegionChanges(state, invalidated, | 343 | 4.13k | Explicits, Regions, | 344 | 4.13k | LCtx, Call); | 345 | 4.13k | } |
llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const> clang::ento::check::RegionChanges::_checkRegionChanges<clang::ento::retaincountchecker::RetainCountChecker>(void*, llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, llvm::DenseSet<clang::ento::SymExpr const*, llvm::DenseMapInfo<clang::ento::SymExpr const*, void> > const*, llvm::ArrayRef<clang::ento::MemRegion const*>, llvm::ArrayRef<clang::ento::MemRegion const*>, clang::LocationContext const*, clang::ento::CallEvent const*) Line | Count | Source | 341 | 5.93k | const CallEvent *Call) { | 342 | 5.93k | return ((const CHECKER *) checker)->checkRegionChanges(state, invalidated, | 343 | 5.93k | Explicits, Regions, | 344 | 5.93k | LCtx, Call); | 345 | 5.93k | } |
SmartPtrModeling.cpp:llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const> clang::ento::check::RegionChanges::_checkRegionChanges<(anonymous namespace)::SmartPtrModeling>(void*, llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, llvm::DenseSet<clang::ento::SymExpr const*, llvm::DenseMapInfo<clang::ento::SymExpr const*, void> > const*, llvm::ArrayRef<clang::ento::MemRegion const*>, llvm::ArrayRef<clang::ento::MemRegion const*>, clang::LocationContext const*, clang::ento::CallEvent const*) Line | Count | Source | 341 | 47.1k | const CallEvent *Call) { | 342 | 47.1k | return ((const CHECKER *) checker)->checkRegionChanges(state, invalidated, | 343 | 47.1k | Explicits, Regions, | 344 | 47.1k | LCtx, Call); | 345 | 47.1k | } |
|
346 | | |
347 | | public: |
348 | | template <typename CHECKER> |
349 | 613 | static void _register(CHECKER *checker, CheckerManager &mgr) { |
350 | 613 | mgr._registerForRegionChanges( |
351 | 613 | CheckerManager::CheckRegionChangesFunc(checker, |
352 | 613 | _checkRegionChanges<CHECKER>)); |
353 | 613 | } AnalysisOrderChecker.cpp:void clang::ento::check::RegionChanges::_register<(anonymous namespace)::AnalysisOrderChecker>((anonymous namespace)::AnalysisOrderChecker*, clang::ento::CheckerManager&) Line | Count | Source | 349 | 12 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 350 | 12 | mgr._registerForRegionChanges( | 351 | 12 | CheckerManager::CheckRegionChangesFunc(checker, | 352 | 12 | _checkRegionChanges<CHECKER>)); | 353 | 12 | } |
CStringChecker.cpp:void clang::ento::check::RegionChanges::_register<(anonymous namespace)::CStringChecker>((anonymous namespace)::CStringChecker*, clang::ento::CheckerManager&) Line | Count | Source | 349 | 264 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 350 | 264 | mgr._registerForRegionChanges( | 351 | 264 | CheckerManager::CheckRegionChangesFunc(checker, | 352 | 264 | _checkRegionChanges<CHECKER>)); | 353 | 264 | } |
ErrnoChecker.cpp:void clang::ento::check::RegionChanges::_register<(anonymous namespace)::ErrnoChecker>((anonymous namespace)::ErrnoChecker*, clang::ento::CheckerManager&) Line | Count | Source | 349 | 11 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 350 | 11 | mgr._registerForRegionChanges( | 351 | 11 | CheckerManager::CheckRegionChangesFunc(checker, | 352 | 11 | _checkRegionChanges<CHECKER>)); | 353 | 11 | } |
MoveChecker.cpp:void clang::ento::check::RegionChanges::_register<(anonymous namespace)::MoveChecker>((anonymous namespace)::MoveChecker*, clang::ento::CheckerManager&) Line | Count | Source | 349 | 78 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 350 | 78 | mgr._registerForRegionChanges( | 351 | 78 | CheckerManager::CheckRegionChangesFunc(checker, | 352 | 78 | _checkRegionChanges<CHECKER>)); | 353 | 78 | } |
PthreadLockChecker.cpp:void clang::ento::check::RegionChanges::_register<(anonymous namespace)::PthreadLockChecker>((anonymous namespace)::PthreadLockChecker*, clang::ento::CheckerManager&) Line | Count | Source | 349 | 77 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 350 | 77 | mgr._registerForRegionChanges( | 351 | 77 | CheckerManager::CheckRegionChangesFunc(checker, | 352 | 77 | _checkRegionChanges<CHECKER>)); | 353 | 77 | } |
void clang::ento::check::RegionChanges::_register<clang::ento::retaincountchecker::RetainCountChecker>(clang::ento::retaincountchecker::RetainCountChecker*, clang::ento::CheckerManager&) Line | Count | Source | 349 | 94 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 350 | 94 | mgr._registerForRegionChanges( | 351 | 94 | CheckerManager::CheckRegionChangesFunc(checker, | 352 | 94 | _checkRegionChanges<CHECKER>)); | 353 | 94 | } |
SmartPtrModeling.cpp:void clang::ento::check::RegionChanges::_register<(anonymous namespace)::SmartPtrModeling>((anonymous namespace)::SmartPtrModeling*, clang::ento::CheckerManager&) Line | Count | Source | 349 | 77 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 350 | 77 | mgr._registerForRegionChanges( | 351 | 77 | CheckerManager::CheckRegionChangesFunc(checker, | 352 | 77 | _checkRegionChanges<CHECKER>)); | 353 | 77 | } |
|
354 | | }; |
355 | | |
356 | | class PointerEscape { |
357 | | template <typename CHECKER> |
358 | | static ProgramStateRef |
359 | | _checkPointerEscape(void *Checker, |
360 | | ProgramStateRef State, |
361 | | const InvalidatedSymbols &Escaped, |
362 | | const CallEvent *Call, |
363 | | PointerEscapeKind Kind, |
364 | 18.4k | RegionAndSymbolInvalidationTraits *ETraits) { |
365 | | |
366 | 18.4k | if (!ETraits) |
367 | 2.30k | return ((const CHECKER *)Checker)->checkPointerEscape(State, |
368 | 2.30k | Escaped, |
369 | 2.30k | Call, |
370 | 2.30k | Kind); |
371 | | |
372 | 16.1k | InvalidatedSymbols RegularEscape; |
373 | 16.1k | for (InvalidatedSymbols::const_iterator I = Escaped.begin(), |
374 | 51.3k | E = Escaped.end(); I != E; ++I35.2k ) |
375 | 35.2k | if (!ETraits->hasTrait(*I, |
376 | 35.2k | RegionAndSymbolInvalidationTraits::TK_PreserveContents) && |
377 | 35.2k | !ETraits->hasTrait(*I, |
378 | 33.6k | RegionAndSymbolInvalidationTraits::TK_SuppressEscape)) |
379 | 33.5k | RegularEscape.insert(*I); |
380 | | |
381 | 16.1k | if (RegularEscape.empty()) |
382 | 1.55k | return State; |
383 | | |
384 | 14.5k | return ((const CHECKER *)Checker)->checkPointerEscape(State, |
385 | 14.5k | RegularEscape, |
386 | 14.5k | Call, |
387 | 14.5k | Kind); |
388 | 16.1k | } AnalysisOrderChecker.cpp:llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const> clang::ento::check::PointerEscape::_checkPointerEscape<(anonymous namespace)::AnalysisOrderChecker>(void*, llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, llvm::DenseSet<clang::ento::SymExpr const*, llvm::DenseMapInfo<clang::ento::SymExpr const*, void> > const&, clang::ento::CallEvent const*, clang::ento::PointerEscapeKind, clang::ento::RegionAndSymbolInvalidationTraits*) Line | Count | Source | 364 | 46 | RegionAndSymbolInvalidationTraits *ETraits) { | 365 | | | 366 | 46 | if (!ETraits) | 367 | 1 | return ((const CHECKER *)Checker)->checkPointerEscape(State, | 368 | 1 | Escaped, | 369 | 1 | Call, | 370 | 1 | Kind); | 371 | | | 372 | 45 | InvalidatedSymbols RegularEscape; | 373 | 45 | for (InvalidatedSymbols::const_iterator I = Escaped.begin(), | 374 | 103 | E = Escaped.end(); I != E; ++I58 ) | 375 | 58 | if (!ETraits->hasTrait(*I, | 376 | 58 | RegionAndSymbolInvalidationTraits::TK_PreserveContents) && | 377 | 58 | !ETraits->hasTrait(*I, | 378 | 58 | RegionAndSymbolInvalidationTraits::TK_SuppressEscape)) | 379 | 57 | RegularEscape.insert(*I); | 380 | | | 381 | 45 | if (RegularEscape.empty()) | 382 | 1 | return State; | 383 | | | 384 | 44 | return ((const CHECKER *)Checker)->checkPointerEscape(State, | 385 | 44 | RegularEscape, | 386 | 44 | Call, | 387 | 44 | Kind); | 388 | 45 | } |
BasicObjCFoundationChecks.cpp:llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const> clang::ento::check::PointerEscape::_checkPointerEscape<(anonymous namespace)::ObjCLoopChecker>(void*, llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, llvm::DenseSet<clang::ento::SymExpr const*, llvm::DenseMapInfo<clang::ento::SymExpr const*, void> > const&, clang::ento::CallEvent const*, clang::ento::PointerEscapeKind, clang::ento::RegionAndSymbolInvalidationTraits*) Line | Count | Source | 364 | 418 | RegionAndSymbolInvalidationTraits *ETraits) { | 365 | | | 366 | 418 | if (!ETraits) | 367 | 85 | return ((const CHECKER *)Checker)->checkPointerEscape(State, | 368 | 85 | Escaped, | 369 | 85 | Call, | 370 | 85 | Kind); | 371 | | | 372 | 333 | InvalidatedSymbols RegularEscape; | 373 | 333 | for (InvalidatedSymbols::const_iterator I = Escaped.begin(), | 374 | 898 | E = Escaped.end(); I != E; ++I565 ) | 375 | 565 | if (!ETraits->hasTrait(*I, | 376 | 565 | RegionAndSymbolInvalidationTraits::TK_PreserveContents) && | 377 | 565 | !ETraits->hasTrait(*I, | 378 | 544 | RegionAndSymbolInvalidationTraits::TK_SuppressEscape)) | 379 | 544 | RegularEscape.insert(*I); | 380 | | | 381 | 333 | if (RegularEscape.empty()) | 382 | 21 | return State; | 383 | | | 384 | 312 | return ((const CHECKER *)Checker)->checkPointerEscape(State, | 385 | 312 | RegularEscape, | 386 | 312 | Call, | 387 | 312 | Kind); | 388 | 333 | } |
CheckObjCDealloc.cpp:llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const> clang::ento::check::PointerEscape::_checkPointerEscape<(anonymous namespace)::ObjCDeallocChecker>(void*, llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, llvm::DenseSet<clang::ento::SymExpr const*, llvm::DenseMapInfo<clang::ento::SymExpr const*, void> > const&, clang::ento::CallEvent const*, clang::ento::PointerEscapeKind, clang::ento::RegionAndSymbolInvalidationTraits*) Line | Count | Source | 364 | 950 | RegionAndSymbolInvalidationTraits *ETraits) { | 365 | | | 366 | 950 | if (!ETraits) | 367 | 86 | return ((const CHECKER *)Checker)->checkPointerEscape(State, | 368 | 86 | Escaped, | 369 | 86 | Call, | 370 | 86 | Kind); | 371 | | | 372 | 864 | InvalidatedSymbols RegularEscape; | 373 | 864 | for (InvalidatedSymbols::const_iterator I = Escaped.begin(), | 374 | 2.15k | E = Escaped.end(); I != E; ++I1.28k ) | 375 | 1.28k | if (!ETraits->hasTrait(*I, | 376 | 1.28k | RegionAndSymbolInvalidationTraits::TK_PreserveContents) && | 377 | 1.28k | !ETraits->hasTrait(*I, | 378 | 1.25k | RegionAndSymbolInvalidationTraits::TK_SuppressEscape)) | 379 | 1.25k | RegularEscape.insert(*I); | 380 | | | 381 | 864 | if (RegularEscape.empty()) | 382 | 35 | return State; | 383 | | | 384 | 829 | return ((const CHECKER *)Checker)->checkPointerEscape(State, | 385 | 829 | RegularEscape, | 386 | 829 | Call, | 387 | 829 | Kind); | 388 | 864 | } |
FuchsiaHandleChecker.cpp:llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const> clang::ento::check::PointerEscape::_checkPointerEscape<(anonymous namespace)::FuchsiaHandleChecker>(void*, llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, llvm::DenseSet<clang::ento::SymExpr const*, llvm::DenseMapInfo<clang::ento::SymExpr const*, void> > const&, clang::ento::CallEvent const*, clang::ento::PointerEscapeKind, clang::ento::RegionAndSymbolInvalidationTraits*) Line | Count | Source | 364 | 106 | RegionAndSymbolInvalidationTraits *ETraits) { | 365 | | | 366 | 106 | if (!ETraits) | 367 | 13 | return ((const CHECKER *)Checker)->checkPointerEscape(State, | 368 | 13 | Escaped, | 369 | 13 | Call, | 370 | 13 | Kind); | 371 | | | 372 | 93 | InvalidatedSymbols RegularEscape; | 373 | 93 | for (InvalidatedSymbols::const_iterator I = Escaped.begin(), | 374 | 282 | E = Escaped.end(); I != E; ++I189 ) | 375 | 189 | if (!ETraits->hasTrait(*I, | 376 | 189 | RegionAndSymbolInvalidationTraits::TK_PreserveContents) && | 377 | 189 | !ETraits->hasTrait(*I, | 378 | 189 | RegionAndSymbolInvalidationTraits::TK_SuppressEscape)) | 379 | 189 | RegularEscape.insert(*I); | 380 | | | 381 | 93 | if (RegularEscape.empty()) | 382 | 0 | return State; | 383 | | | 384 | 93 | return ((const CHECKER *)Checker)->checkPointerEscape(State, | 385 | 93 | RegularEscape, | 386 | 93 | Call, | 387 | 93 | Kind); | 388 | 93 | } |
MacOSKeychainAPIChecker.cpp:llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const> clang::ento::check::PointerEscape::_checkPointerEscape<(anonymous namespace)::MacOSKeychainAPIChecker>(void*, llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, llvm::DenseSet<clang::ento::SymExpr const*, llvm::DenseMapInfo<clang::ento::SymExpr const*, void> > const&, clang::ento::CallEvent const*, clang::ento::PointerEscapeKind, clang::ento::RegionAndSymbolInvalidationTraits*) Line | Count | Source | 364 | 328 | RegionAndSymbolInvalidationTraits *ETraits) { | 365 | | | 366 | 328 | if (!ETraits) | 367 | 63 | return ((const CHECKER *)Checker)->checkPointerEscape(State, | 368 | 63 | Escaped, | 369 | 63 | Call, | 370 | 63 | Kind); | 371 | | | 372 | 265 | InvalidatedSymbols RegularEscape; | 373 | 265 | for (InvalidatedSymbols::const_iterator I = Escaped.begin(), | 374 | 711 | E = Escaped.end(); I != E; ++I446 ) | 375 | 446 | if (!ETraits->hasTrait(*I, | 376 | 446 | RegionAndSymbolInvalidationTraits::TK_PreserveContents) && | 377 | 446 | !ETraits->hasTrait(*I, | 378 | 418 | RegionAndSymbolInvalidationTraits::TK_SuppressEscape)) | 379 | 418 | RegularEscape.insert(*I); | 380 | | | 381 | 265 | if (RegularEscape.empty()) | 382 | 25 | return State; | 383 | | | 384 | 240 | return ((const CHECKER *)Checker)->checkPointerEscape(State, | 385 | 240 | RegularEscape, | 386 | 240 | Call, | 387 | 240 | Kind); | 388 | 265 | } |
MallocChecker.cpp:llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const> clang::ento::check::PointerEscape::_checkPointerEscape<(anonymous namespace)::MallocChecker>(void*, llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, llvm::DenseSet<clang::ento::SymExpr const*, llvm::DenseMapInfo<clang::ento::SymExpr const*, void> > const&, clang::ento::CallEvent const*, clang::ento::PointerEscapeKind, clang::ento::RegionAndSymbolInvalidationTraits*) Line | Count | Source | 364 | 15.8k | RegionAndSymbolInvalidationTraits *ETraits) { | 365 | | | 366 | 15.8k | if (!ETraits) | 367 | 1.72k | return ((const CHECKER *)Checker)->checkPointerEscape(State, | 368 | 1.72k | Escaped, | 369 | 1.72k | Call, | 370 | 1.72k | Kind); | 371 | | | 372 | 14.1k | InvalidatedSymbols RegularEscape; | 373 | 14.1k | for (InvalidatedSymbols::const_iterator I = Escaped.begin(), | 374 | 46.2k | E = Escaped.end(); I != E; ++I32.0k ) | 375 | 32.0k | if (!ETraits->hasTrait(*I, | 376 | 32.0k | RegionAndSymbolInvalidationTraits::TK_PreserveContents) && | 377 | 32.0k | !ETraits->hasTrait(*I, | 378 | 30.6k | RegionAndSymbolInvalidationTraits::TK_SuppressEscape)) | 379 | 30.5k | RegularEscape.insert(*I); | 380 | | | 381 | 14.1k | if (RegularEscape.empty()) | 382 | 1.42k | return State; | 383 | | | 384 | 12.7k | return ((const CHECKER *)Checker)->checkPointerEscape(State, | 385 | 12.7k | RegularEscape, | 386 | 12.7k | Call, | 387 | 12.7k | Kind); | 388 | 14.1k | } |
ObjCContainersChecker.cpp:llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const> clang::ento::check::PointerEscape::_checkPointerEscape<(anonymous namespace)::ObjCContainersChecker>(void*, llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, llvm::DenseSet<clang::ento::SymExpr const*, llvm::DenseMapInfo<clang::ento::SymExpr const*, void> > const&, clang::ento::CallEvent const*, clang::ento::PointerEscapeKind, clang::ento::RegionAndSymbolInvalidationTraits*) Line | Count | Source | 364 | 324 | RegionAndSymbolInvalidationTraits *ETraits) { | 365 | | | 366 | 324 | if (!ETraits) | 367 | 62 | return ((const CHECKER *)Checker)->checkPointerEscape(State, | 368 | 62 | Escaped, | 369 | 62 | Call, | 370 | 62 | Kind); | 371 | | | 372 | 262 | InvalidatedSymbols RegularEscape; | 373 | 262 | for (InvalidatedSymbols::const_iterator I = Escaped.begin(), | 374 | 715 | E = Escaped.end(); I != E; ++I453 ) | 375 | 453 | if (!ETraits->hasTrait(*I, | 376 | 453 | RegionAndSymbolInvalidationTraits::TK_PreserveContents) && | 377 | 453 | !ETraits->hasTrait(*I, | 378 | 406 | RegionAndSymbolInvalidationTraits::TK_SuppressEscape)) | 379 | 406 | RegularEscape.insert(*I); | 380 | | | 381 | 262 | if (RegularEscape.empty()) | 382 | 44 | return State; | 383 | | | 384 | 218 | return ((const CHECKER *)Checker)->checkPointerEscape(State, | 385 | 218 | RegularEscape, | 386 | 218 | Call, | 387 | 218 | Kind); | 388 | 262 | } |
SimpleStreamChecker.cpp:llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const> clang::ento::check::PointerEscape::_checkPointerEscape<(anonymous namespace)::SimpleStreamChecker>(void*, llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, llvm::DenseSet<clang::ento::SymExpr const*, llvm::DenseMapInfo<clang::ento::SymExpr const*, void> > const&, clang::ento::CallEvent const*, clang::ento::PointerEscapeKind, clang::ento::RegionAndSymbolInvalidationTraits*) Line | Count | Source | 364 | 63 | RegionAndSymbolInvalidationTraits *ETraits) { | 365 | | | 366 | 63 | if (!ETraits) | 367 | 20 | return ((const CHECKER *)Checker)->checkPointerEscape(State, | 368 | 20 | Escaped, | 369 | 20 | Call, | 370 | 20 | Kind); | 371 | | | 372 | 43 | InvalidatedSymbols RegularEscape; | 373 | 43 | for (InvalidatedSymbols::const_iterator I = Escaped.begin(), | 374 | 107 | E = Escaped.end(); I != E; ++I64 ) | 375 | 64 | if (!ETraits->hasTrait(*I, | 376 | 64 | RegionAndSymbolInvalidationTraits::TK_PreserveContents) && | 377 | 64 | !ETraits->hasTrait(*I, | 378 | 63 | RegionAndSymbolInvalidationTraits::TK_SuppressEscape)) | 379 | 63 | RegularEscape.insert(*I); | 380 | | | 381 | 43 | if (RegularEscape.empty()) | 382 | 1 | return State; | 383 | | | 384 | 42 | return ((const CHECKER *)Checker)->checkPointerEscape(State, | 385 | 42 | RegularEscape, | 386 | 42 | Call, | 387 | 42 | Kind); | 388 | 43 | } |
StreamChecker.cpp:llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const> clang::ento::check::PointerEscape::_checkPointerEscape<(anonymous namespace)::StreamChecker>(void*, llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, llvm::DenseSet<clang::ento::SymExpr const*, llvm::DenseMapInfo<clang::ento::SymExpr const*, void> > const&, clang::ento::CallEvent const*, clang::ento::PointerEscapeKind, clang::ento::RegionAndSymbolInvalidationTraits*) Line | Count | Source | 364 | 303 | RegionAndSymbolInvalidationTraits *ETraits) { | 365 | | | 366 | 303 | if (!ETraits) | 367 | 257 | return ((const CHECKER *)Checker)->checkPointerEscape(State, | 368 | 257 | Escaped, | 369 | 257 | Call, | 370 | 257 | Kind); | 371 | | | 372 | 46 | InvalidatedSymbols RegularEscape; | 373 | 46 | for (InvalidatedSymbols::const_iterator I = Escaped.begin(), | 374 | 111 | E = Escaped.end(); I != E; ++I65 ) | 375 | 65 | if (!ETraits->hasTrait(*I, | 376 | 65 | RegionAndSymbolInvalidationTraits::TK_PreserveContents) && | 377 | 65 | !ETraits->hasTrait(*I, | 378 | 65 | RegionAndSymbolInvalidationTraits::TK_SuppressEscape)) | 379 | 65 | RegularEscape.insert(*I); | 380 | | | 381 | 46 | if (RegularEscape.empty()) | 382 | 0 | return State; | 383 | | | 384 | 46 | return ((const CHECKER *)Checker)->checkPointerEscape(State, | 385 | 46 | RegularEscape, | 386 | 46 | Call, | 387 | 46 | Kind); | 388 | 46 | } |
|
389 | | |
390 | | public: |
391 | | template <typename CHECKER> |
392 | 462 | static void _register(CHECKER *checker, CheckerManager &mgr) { |
393 | 462 | mgr._registerForPointerEscape( |
394 | 462 | CheckerManager::CheckPointerEscapeFunc(checker, |
395 | 462 | _checkPointerEscape<CHECKER>)); |
396 | 462 | } AnalysisOrderChecker.cpp:void clang::ento::check::PointerEscape::_register<(anonymous namespace)::AnalysisOrderChecker>((anonymous namespace)::AnalysisOrderChecker*, clang::ento::CheckerManager&) Line | Count | Source | 392 | 12 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 393 | 12 | mgr._registerForPointerEscape( | 394 | 12 | CheckerManager::CheckPointerEscapeFunc(checker, | 395 | 12 | _checkPointerEscape<CHECKER>)); | 396 | 12 | } |
BasicObjCFoundationChecks.cpp:void clang::ento::check::PointerEscape::_register<(anonymous namespace)::ObjCLoopChecker>((anonymous namespace)::ObjCLoopChecker*, clang::ento::CheckerManager&) Line | Count | Source | 392 | 48 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 393 | 48 | mgr._registerForPointerEscape( | 394 | 48 | CheckerManager::CheckPointerEscapeFunc(checker, | 395 | 48 | _checkPointerEscape<CHECKER>)); | 396 | 48 | } |
CheckObjCDealloc.cpp:void clang::ento::check::PointerEscape::_register<(anonymous namespace)::ObjCDeallocChecker>((anonymous namespace)::ObjCDeallocChecker*, clang::ento::CheckerManager&) Line | Count | Source | 392 | 50 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 393 | 50 | mgr._registerForPointerEscape( | 394 | 50 | CheckerManager::CheckPointerEscapeFunc(checker, | 395 | 50 | _checkPointerEscape<CHECKER>)); | 396 | 50 | } |
FuchsiaHandleChecker.cpp:void clang::ento::check::PointerEscape::_register<(anonymous namespace)::FuchsiaHandleChecker>((anonymous namespace)::FuchsiaHandleChecker*, clang::ento::CheckerManager&) Line | Count | Source | 392 | 1 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 393 | 1 | mgr._registerForPointerEscape( | 394 | 1 | CheckerManager::CheckPointerEscapeFunc(checker, | 395 | 1 | _checkPointerEscape<CHECKER>)); | 396 | 1 | } |
MacOSKeychainAPIChecker.cpp:void clang::ento::check::PointerEscape::_register<(anonymous namespace)::MacOSKeychainAPIChecker>((anonymous namespace)::MacOSKeychainAPIChecker*, clang::ento::CheckerManager&) Line | Count | Source | 392 | 48 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 393 | 48 | mgr._registerForPointerEscape( | 394 | 48 | CheckerManager::CheckPointerEscapeFunc(checker, | 395 | 48 | _checkPointerEscape<CHECKER>)); | 396 | 48 | } |
MallocChecker.cpp:void clang::ento::check::PointerEscape::_register<(anonymous namespace)::MallocChecker>((anonymous namespace)::MallocChecker*, clang::ento::CheckerManager&) Line | Count | Source | 392 | 241 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 393 | 241 | mgr._registerForPointerEscape( | 394 | 241 | CheckerManager::CheckPointerEscapeFunc(checker, | 395 | 241 | _checkPointerEscape<CHECKER>)); | 396 | 241 | } |
ObjCContainersChecker.cpp:void clang::ento::check::PointerEscape::_register<(anonymous namespace)::ObjCContainersChecker>((anonymous namespace)::ObjCContainersChecker*, clang::ento::CheckerManager&) Line | Count | Source | 392 | 47 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 393 | 47 | mgr._registerForPointerEscape( | 394 | 47 | CheckerManager::CheckPointerEscapeFunc(checker, | 395 | 47 | _checkPointerEscape<CHECKER>)); | 396 | 47 | } |
SimpleStreamChecker.cpp:void clang::ento::check::PointerEscape::_register<(anonymous namespace)::SimpleStreamChecker>((anonymous namespace)::SimpleStreamChecker*, clang::ento::CheckerManager&) Line | Count | Source | 392 | 4 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 393 | 4 | mgr._registerForPointerEscape( | 394 | 4 | CheckerManager::CheckPointerEscapeFunc(checker, | 395 | 4 | _checkPointerEscape<CHECKER>)); | 396 | 4 | } |
StreamChecker.cpp:void clang::ento::check::PointerEscape::_register<(anonymous namespace)::StreamChecker>((anonymous namespace)::StreamChecker*, clang::ento::CheckerManager&) Line | Count | Source | 392 | 11 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 393 | 11 | mgr._registerForPointerEscape( | 394 | 11 | CheckerManager::CheckPointerEscapeFunc(checker, | 395 | 11 | _checkPointerEscape<CHECKER>)); | 396 | 11 | } |
|
397 | | }; |
398 | | |
399 | | class ConstPointerEscape { |
400 | | template <typename CHECKER> |
401 | | static ProgramStateRef |
402 | | _checkConstPointerEscape(void *Checker, |
403 | | ProgramStateRef State, |
404 | | const InvalidatedSymbols &Escaped, |
405 | | const CallEvent *Call, |
406 | | PointerEscapeKind Kind, |
407 | 15.8k | RegionAndSymbolInvalidationTraits *ETraits) { |
408 | | |
409 | 15.8k | if (!ETraits) |
410 | 1.72k | return State; |
411 | | |
412 | 14.1k | InvalidatedSymbols ConstEscape; |
413 | 14.1k | for (InvalidatedSymbols::const_iterator I = Escaped.begin(), |
414 | 46.2k | E = Escaped.end(); I != E; ++I32.0k ) |
415 | 32.0k | if (ETraits->hasTrait(*I, |
416 | 32.0k | RegionAndSymbolInvalidationTraits::TK_PreserveContents) && |
417 | 32.0k | !ETraits->hasTrait(*I, |
418 | 1.43k | RegionAndSymbolInvalidationTraits::TK_SuppressEscape)) |
419 | 1.33k | ConstEscape.insert(*I); |
420 | | |
421 | 14.1k | if (ConstEscape.empty()) |
422 | 12.8k | return State; |
423 | | |
424 | 1.33k | return ((const CHECKER *)Checker)->checkConstPointerEscape(State, |
425 | 1.33k | ConstEscape, |
426 | 1.33k | Call, |
427 | 1.33k | Kind); |
428 | 14.1k | } |
429 | | |
430 | | public: |
431 | | template <typename CHECKER> |
432 | 241 | static void _register(CHECKER *checker, CheckerManager &mgr) { |
433 | 241 | mgr._registerForPointerEscape( |
434 | 241 | CheckerManager::CheckPointerEscapeFunc(checker, |
435 | 241 | _checkConstPointerEscape<CHECKER>)); |
436 | 241 | } |
437 | | }; |
438 | | |
439 | | |
440 | | template <typename EVENT> |
441 | | class Event { |
442 | | template <typename CHECKER> |
443 | 50 | static void _checkEvent(void *checker, const void *event) { |
444 | 50 | ((const CHECKER *)checker)->checkEvent(*(const EVENT *)event); |
445 | 50 | } NSErrorChecker.cpp:void clang::ento::check::Event<clang::ento::ImplicitNullDerefEvent>::_checkEvent<(anonymous namespace)::NSOrCFErrorDerefChecker>(void*, void const*) Line | Count | Source | 443 | 11 | static void _checkEvent(void *checker, const void *event) { | 444 | 11 | ((const CHECKER *)checker)->checkEvent(*(const EVENT *)event); | 445 | 11 | } |
NullabilityChecker.cpp:void clang::ento::check::Event<clang::ento::ImplicitNullDerefEvent>::_checkEvent<(anonymous namespace)::NullabilityChecker>(void*, void const*) Line | Count | Source | 443 | 39 | static void _checkEvent(void *checker, const void *event) { | 444 | 39 | ((const CHECKER *)checker)->checkEvent(*(const EVENT *)event); | 445 | 39 | } |
|
446 | | public: |
447 | | template <typename CHECKER> |
448 | 99 | static void _register(CHECKER *checker, CheckerManager &mgr) { |
449 | 99 | mgr._registerListenerForEvent<EVENT>( |
450 | 99 | CheckerManager::CheckEventFunc(checker, _checkEvent<CHECKER>)); |
451 | 99 | } NSErrorChecker.cpp:void clang::ento::check::Event<clang::ento::ImplicitNullDerefEvent>::_register<(anonymous namespace)::NSOrCFErrorDerefChecker>((anonymous namespace)::NSOrCFErrorDerefChecker*, clang::ento::CheckerManager&) Line | Count | Source | 448 | 48 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 449 | 48 | mgr._registerListenerForEvent<EVENT>( | 450 | 48 | CheckerManager::CheckEventFunc(checker, _checkEvent<CHECKER>)); | 451 | 48 | } |
NullabilityChecker.cpp:void clang::ento::check::Event<clang::ento::ImplicitNullDerefEvent>::_register<(anonymous namespace)::NullabilityChecker>((anonymous namespace)::NullabilityChecker*, clang::ento::CheckerManager&) Line | Count | Source | 448 | 51 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 449 | 51 | mgr._registerListenerForEvent<EVENT>( | 450 | 51 | CheckerManager::CheckEventFunc(checker, _checkEvent<CHECKER>)); | 451 | 51 | } |
|
452 | | }; |
453 | | |
454 | | } // end check namespace |
455 | | |
456 | | namespace eval { |
457 | | |
458 | | class Assume { |
459 | | template <typename CHECKER> |
460 | | static ProgramStateRef _evalAssume(void *checker, |
461 | | ProgramStateRef state, |
462 | | const SVal &cond, |
463 | 226k | bool assumption) { |
464 | 226k | return ((const CHECKER *)checker)->evalAssume(state, cond, assumption); |
465 | 226k | } CheckObjCDealloc.cpp:llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const> clang::ento::eval::Assume::_evalAssume<(anonymous namespace)::ObjCDeallocChecker>(void*, llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, clang::ento::SVal const&, bool) Line | Count | Source | 463 | 3.66k | bool assumption) { | 464 | 3.66k | return ((const CHECKER *)checker)->evalAssume(state, cond, assumption); | 465 | 3.66k | } |
FuchsiaHandleChecker.cpp:llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const> clang::ento::eval::Assume::_evalAssume<(anonymous namespace)::FuchsiaHandleChecker>(void*, llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, clang::ento::SVal const&, bool) Line | Count | Source | 463 | 367 | bool assumption) { | 464 | 367 | return ((const CHECKER *)checker)->evalAssume(state, cond, assumption); | 465 | 367 | } |
MacOSKeychainAPIChecker.cpp:llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const> clang::ento::eval::Assume::_evalAssume<(anonymous namespace)::MacOSKeychainAPIChecker>(void*, llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, clang::ento::SVal const&, bool) Line | Count | Source | 463 | 1.64k | bool assumption) { | 464 | 1.64k | return ((const CHECKER *)checker)->evalAssume(state, cond, assumption); | 465 | 1.64k | } |
MallocChecker.cpp:llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const> clang::ento::eval::Assume::_evalAssume<(anonymous namespace)::MallocChecker>(void*, llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, clang::ento::SVal const&, bool) Line | Count | Source | 463 | 200k | bool assumption) { | 464 | 200k | return ((const CHECKER *)checker)->evalAssume(state, cond, assumption); | 465 | 200k | } |
llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const> clang::ento::eval::Assume::_evalAssume<clang::ento::retaincountchecker::RetainCountChecker>(void*, llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, clang::ento::SVal const&, bool) Line | Count | Source | 463 | 14.8k | bool assumption) { | 464 | 14.8k | return ((const CHECKER *)checker)->evalAssume(state, cond, assumption); | 465 | 14.8k | } |
TrustNonnullChecker.cpp:llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const> clang::ento::eval::Assume::_evalAssume<(anonymous namespace)::TrustNonnullChecker>(void*, llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, clang::ento::SVal const&, bool) Line | Count | Source | 463 | 6.23k | bool assumption) { | 464 | 6.23k | return ((const CHECKER *)checker)->evalAssume(state, cond, assumption); | 465 | 6.23k | } |
|
466 | | |
467 | | public: |
468 | | template <typename CHECKER> |
469 | 476 | static void _register(CHECKER *checker, CheckerManager &mgr) { |
470 | 476 | mgr._registerForEvalAssume( |
471 | 476 | CheckerManager::EvalAssumeFunc(checker, _evalAssume<CHECKER>)); |
472 | 476 | } CheckObjCDealloc.cpp:void clang::ento::eval::Assume::_register<(anonymous namespace)::ObjCDeallocChecker>((anonymous namespace)::ObjCDeallocChecker*, clang::ento::CheckerManager&) Line | Count | Source | 469 | 50 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 470 | 50 | mgr._registerForEvalAssume( | 471 | 50 | CheckerManager::EvalAssumeFunc(checker, _evalAssume<CHECKER>)); | 472 | 50 | } |
FuchsiaHandleChecker.cpp:void clang::ento::eval::Assume::_register<(anonymous namespace)::FuchsiaHandleChecker>((anonymous namespace)::FuchsiaHandleChecker*, clang::ento::CheckerManager&) Line | Count | Source | 469 | 1 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 470 | 1 | mgr._registerForEvalAssume( | 471 | 1 | CheckerManager::EvalAssumeFunc(checker, _evalAssume<CHECKER>)); | 472 | 1 | } |
MacOSKeychainAPIChecker.cpp:void clang::ento::eval::Assume::_register<(anonymous namespace)::MacOSKeychainAPIChecker>((anonymous namespace)::MacOSKeychainAPIChecker*, clang::ento::CheckerManager&) Line | Count | Source | 469 | 48 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 470 | 48 | mgr._registerForEvalAssume( | 471 | 48 | CheckerManager::EvalAssumeFunc(checker, _evalAssume<CHECKER>)); | 472 | 48 | } |
MallocChecker.cpp:void clang::ento::eval::Assume::_register<(anonymous namespace)::MallocChecker>((anonymous namespace)::MallocChecker*, clang::ento::CheckerManager&) Line | Count | Source | 469 | 241 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 470 | 241 | mgr._registerForEvalAssume( | 471 | 241 | CheckerManager::EvalAssumeFunc(checker, _evalAssume<CHECKER>)); | 472 | 241 | } |
void clang::ento::eval::Assume::_register<clang::ento::retaincountchecker::RetainCountChecker>(clang::ento::retaincountchecker::RetainCountChecker*, clang::ento::CheckerManager&) Line | Count | Source | 469 | 94 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 470 | 94 | mgr._registerForEvalAssume( | 471 | 94 | CheckerManager::EvalAssumeFunc(checker, _evalAssume<CHECKER>)); | 472 | 94 | } |
TrustNonnullChecker.cpp:void clang::ento::eval::Assume::_register<(anonymous namespace)::TrustNonnullChecker>((anonymous namespace)::TrustNonnullChecker*, clang::ento::CheckerManager&) Line | Count | Source | 469 | 42 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 470 | 42 | mgr._registerForEvalAssume( | 471 | 42 | CheckerManager::EvalAssumeFunc(checker, _evalAssume<CHECKER>)); | 472 | 42 | } |
|
473 | | }; |
474 | | |
475 | | class Call { |
476 | | template <typename CHECKER> |
477 | | static bool _evalCall(void *checker, const CallEvent &Call, |
478 | 247k | CheckerContext &C) { |
479 | 247k | return ((const CHECKER *)checker)->evalCall(Call, C); |
480 | 247k | } AnalysisOrderChecker.cpp:bool clang::ento::eval::Call::_evalCall<(anonymous namespace)::AnalysisOrderChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 478 | 48 | CheckerContext &C) { | 479 | 48 | return ((const CHECKER *)checker)->evalCall(Call, C); | 480 | 48 | } |
BuiltinFunctionChecker.cpp:bool clang::ento::eval::Call::_evalCall<(anonymous namespace)::BuiltinFunctionChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 478 | 82.2k | CheckerContext &C) { | 479 | 82.2k | return ((const CHECKER *)checker)->evalCall(Call, C); | 480 | 82.2k | } |
CStringChecker.cpp:bool clang::ento::eval::Call::_evalCall<(anonymous namespace)::CStringChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 478 | 35.0k | CheckerContext &C) { | 479 | 35.0k | return ((const CHECKER *)checker)->evalCall(Call, C); | 480 | 35.0k | } |
CastValueChecker.cpp:bool clang::ento::eval::Call::_evalCall<(anonymous namespace)::CastValueChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 478 | 590 | CheckerContext &C) { | 479 | 590 | return ((const CHECKER *)checker)->evalCall(Call, C); | 480 | 590 | } |
ChrootChecker.cpp:bool clang::ento::eval::Call::_evalCall<(anonymous namespace)::ChrootChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 478 | 33 | CheckerContext &C) { | 479 | 33 | return ((const CHECKER *)checker)->evalCall(Call, C); | 480 | 33 | } |
DebugContainerModeling.cpp:bool clang::ento::eval::Call::_evalCall<(anonymous namespace)::DebugContainerModeling>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 478 | 12.1k | CheckerContext &C) { | 479 | 12.1k | return ((const CHECKER *)checker)->evalCall(Call, C); | 480 | 12.1k | } |
DebugIteratorModeling.cpp:bool clang::ento::eval::Call::_evalCall<(anonymous namespace)::DebugIteratorModeling>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 478 | 12.0k | CheckerContext &C) { | 479 | 12.0k | return ((const CHECKER *)checker)->evalCall(Call, C); | 480 | 12.0k | } |
ErrnoModeling.cpp:bool clang::ento::eval::Call::_evalCall<(anonymous namespace)::ErrnoModeling>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 478 | 506 | CheckerContext &C) { | 479 | 506 | return ((const CHECKER *)checker)->evalCall(Call, C); | 480 | 506 | } |
ErrnoTesterChecker.cpp:bool clang::ento::eval::Call::_evalCall<(anonymous namespace)::ErrnoTesterChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 478 | 258 | CheckerContext &C) { | 479 | 258 | return ((const CHECKER *)checker)->evalCall(Call, C); | 480 | 258 | } |
ExprInspectionChecker.cpp:bool clang::ento::eval::Call::_evalCall<(anonymous namespace)::ExprInspectionChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 478 | 58.7k | CheckerContext &C) { | 479 | 58.7k | return ((const CHECKER *)checker)->evalCall(Call, C); | 480 | 58.7k | } |
bool clang::ento::eval::Call::_evalCall<clang::ento::retaincountchecker::RetainCountChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 478 | 2.02k | CheckerContext &C) { | 479 | 2.02k | return ((const CHECKER *)checker)->evalCall(Call, C); | 480 | 2.02k | } |
SmartPtrModeling.cpp:bool clang::ento::eval::Call::_evalCall<(anonymous namespace)::SmartPtrModeling>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 478 | 41.1k | CheckerContext &C) { | 479 | 41.1k | return ((const CHECKER *)checker)->evalCall(Call, C); | 480 | 41.1k | } |
StdLibraryFunctionsChecker.cpp:bool clang::ento::eval::Call::_evalCall<(anonymous namespace)::StdLibraryFunctionsChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 478 | 1.01k | CheckerContext &C) { | 479 | 1.01k | return ((const CHECKER *)checker)->evalCall(Call, C); | 480 | 1.01k | } |
STLAlgorithmModeling.cpp:bool clang::ento::eval::Call::_evalCall<(anonymous namespace)::STLAlgorithmModeling>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 478 | 1.42k | CheckerContext &C) { | 479 | 1.42k | return ((const CHECKER *)checker)->evalCall(Call, C); | 480 | 1.42k | } |
StreamChecker.cpp:bool clang::ento::eval::Call::_evalCall<(anonymous namespace)::StreamChecker>(void*, clang::ento::CallEvent const&, clang::ento::CheckerContext&) Line | Count | Source | 478 | 364 | CheckerContext &C) { | 479 | 364 | return ((const CHECKER *)checker)->evalCall(Call, C); | 480 | 364 | } |
|
481 | | |
482 | | public: |
483 | | template <typename CHECKER> |
484 | 2.33k | static void _register(CHECKER *checker, CheckerManager &mgr) { |
485 | 2.33k | mgr._registerForEvalCall( |
486 | 2.33k | CheckerManager::EvalCallFunc(checker, _evalCall<CHECKER>)); |
487 | 2.33k | } AnalysisOrderChecker.cpp:void clang::ento::eval::Call::_register<(anonymous namespace)::AnalysisOrderChecker>((anonymous namespace)::AnalysisOrderChecker*, clang::ento::CheckerManager&) Line | Count | Source | 484 | 12 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 485 | 12 | mgr._registerForEvalCall( | 486 | 12 | CheckerManager::EvalCallFunc(checker, _evalCall<CHECKER>)); | 487 | 12 | } |
BuiltinFunctionChecker.cpp:void clang::ento::eval::Call::_register<(anonymous namespace)::BuiltinFunctionChecker>((anonymous namespace)::BuiltinFunctionChecker*, clang::ento::CheckerManager&) Line | Count | Source | 484 | 1.24k | static void _register(CHECKER *checker, CheckerManager &mgr) { | 485 | 1.24k | mgr._registerForEvalCall( | 486 | 1.24k | CheckerManager::EvalCallFunc(checker, _evalCall<CHECKER>)); | 487 | 1.24k | } |
CStringChecker.cpp:void clang::ento::eval::Call::_register<(anonymous namespace)::CStringChecker>((anonymous namespace)::CStringChecker*, clang::ento::CheckerManager&) Line | Count | Source | 484 | 264 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 485 | 264 | mgr._registerForEvalCall( | 486 | 264 | CheckerManager::EvalCallFunc(checker, _evalCall<CHECKER>)); | 487 | 264 | } |
CastValueChecker.cpp:void clang::ento::eval::Call::_register<(anonymous namespace)::CastValueChecker>((anonymous namespace)::CastValueChecker*, clang::ento::CheckerManager&) Line | Count | Source | 484 | 53 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 485 | 53 | mgr._registerForEvalCall( | 486 | 53 | CheckerManager::EvalCallFunc(checker, _evalCall<CHECKER>)); | 487 | 53 | } |
ChrootChecker.cpp:void clang::ento::eval::Call::_register<(anonymous namespace)::ChrootChecker>((anonymous namespace)::ChrootChecker*, clang::ento::CheckerManager&) Line | Count | Source | 484 | 4 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 485 | 4 | mgr._registerForEvalCall( | 486 | 4 | CheckerManager::EvalCallFunc(checker, _evalCall<CHECKER>)); | 487 | 4 | } |
DebugContainerModeling.cpp:void clang::ento::eval::Call::_register<(anonymous namespace)::DebugContainerModeling>((anonymous namespace)::DebugContainerModeling*, clang::ento::CheckerManager&) Line | Count | Source | 484 | 13 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 485 | 13 | mgr._registerForEvalCall( | 486 | 13 | CheckerManager::EvalCallFunc(checker, _evalCall<CHECKER>)); | 487 | 13 | } |
DebugIteratorModeling.cpp:void clang::ento::eval::Call::_register<(anonymous namespace)::DebugIteratorModeling>((anonymous namespace)::DebugIteratorModeling*, clang::ento::CheckerManager&) Line | Count | Source | 484 | 11 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 485 | 11 | mgr._registerForEvalCall( | 486 | 11 | CheckerManager::EvalCallFunc(checker, _evalCall<CHECKER>)); | 487 | 11 | } |
ErrnoModeling.cpp:void clang::ento::eval::Call::_register<(anonymous namespace)::ErrnoModeling>((anonymous namespace)::ErrnoModeling*, clang::ento::CheckerManager&) Line | Count | Source | 484 | 53 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 485 | 53 | mgr._registerForEvalCall( | 486 | 53 | CheckerManager::EvalCallFunc(checker, _evalCall<CHECKER>)); | 487 | 53 | } |
ErrnoTesterChecker.cpp:void clang::ento::eval::Call::_register<(anonymous namespace)::ErrnoTesterChecker>((anonymous namespace)::ErrnoTesterChecker*, clang::ento::CheckerManager&) Line | Count | Source | 484 | 6 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 485 | 6 | mgr._registerForEvalCall( | 486 | 6 | CheckerManager::EvalCallFunc(checker, _evalCall<CHECKER>)); | 487 | 6 | } |
ExprInspectionChecker.cpp:void clang::ento::eval::Call::_register<(anonymous namespace)::ExprInspectionChecker>((anonymous namespace)::ExprInspectionChecker*, clang::ento::CheckerManager&) Line | Count | Source | 484 | 408 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 485 | 408 | mgr._registerForEvalCall( | 486 | 408 | CheckerManager::EvalCallFunc(checker, _evalCall<CHECKER>)); | 487 | 408 | } |
void clang::ento::eval::Call::_register<clang::ento::retaincountchecker::RetainCountChecker>(clang::ento::retaincountchecker::RetainCountChecker*, clang::ento::CheckerManager&) Line | Count | Source | 484 | 94 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 485 | 94 | mgr._registerForEvalCall( | 486 | 94 | CheckerManager::EvalCallFunc(checker, _evalCall<CHECKER>)); | 487 | 94 | } |
SmartPtrModeling.cpp:void clang::ento::eval::Call::_register<(anonymous namespace)::SmartPtrModeling>((anonymous namespace)::SmartPtrModeling*, clang::ento::CheckerManager&) Line | Count | Source | 484 | 77 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 485 | 77 | mgr._registerForEvalCall( | 486 | 77 | CheckerManager::EvalCallFunc(checker, _evalCall<CHECKER>)); | 487 | 77 | } |
StdLibraryFunctionsChecker.cpp:void clang::ento::eval::Call::_register<(anonymous namespace)::StdLibraryFunctionsChecker>((anonymous namespace)::StdLibraryFunctionsChecker*, clang::ento::CheckerManager&) Line | Count | Source | 484 | 83 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 485 | 83 | mgr._registerForEvalCall( | 486 | 83 | CheckerManager::EvalCallFunc(checker, _evalCall<CHECKER>)); | 487 | 83 | } |
STLAlgorithmModeling.cpp:void clang::ento::eval::Call::_register<(anonymous namespace)::STLAlgorithmModeling>((anonymous namespace)::STLAlgorithmModeling*, clang::ento::CheckerManager&) Line | Count | Source | 484 | 2 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 485 | 2 | mgr._registerForEvalCall( | 486 | 2 | CheckerManager::EvalCallFunc(checker, _evalCall<CHECKER>)); | 487 | 2 | } |
StreamChecker.cpp:void clang::ento::eval::Call::_register<(anonymous namespace)::StreamChecker>((anonymous namespace)::StreamChecker*, clang::ento::CheckerManager&) Line | Count | Source | 484 | 11 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 485 | 11 | mgr._registerForEvalCall( | 486 | 11 | CheckerManager::EvalCallFunc(checker, _evalCall<CHECKER>)); | 487 | 11 | } |
|
488 | | }; |
489 | | |
490 | | } // end eval namespace |
491 | | |
492 | | class CheckerBase : public ProgramPointTag { |
493 | | CheckerNameRef Name; |
494 | | friend class ::clang::ento::CheckerManager; |
495 | | |
496 | | public: |
497 | | StringRef getTagDescription() const override; |
498 | | CheckerNameRef getCheckerName() const; |
499 | | |
500 | | /// See CheckerManager::runCheckersForPrintState. |
501 | | virtual void printState(raw_ostream &Out, ProgramStateRef State, |
502 | 5.35k | const char *NL, const char *Sep) const { } |
503 | | }; |
504 | | |
505 | | /// Dump checker name to stream. |
506 | | raw_ostream& operator<<(raw_ostream &Out, const CheckerBase &Checker); |
507 | | |
508 | | /// Tag that can use a checker name as a message provider |
509 | | /// (see SimpleProgramPointTag). |
510 | | class CheckerProgramPointTag : public SimpleProgramPointTag { |
511 | | public: |
512 | | CheckerProgramPointTag(StringRef CheckerName, StringRef Msg); |
513 | | CheckerProgramPointTag(const CheckerBase *Checker, StringRef Msg); |
514 | | }; |
515 | | |
516 | | template <typename CHECK1, typename... CHECKs> |
517 | | class Checker : public CHECK1, public CHECKs..., public CheckerBase { |
518 | | public: |
519 | | template <typename CHECKER> |
520 | 30.4k | static void _register(CHECKER *checker, CheckerManager &mgr) { |
521 | 30.4k | CHECK1::_register(checker, mgr); |
522 | 30.4k | Checker<CHECKs...>::_register(checker, mgr); |
523 | 30.4k | } AnalysisOrderChecker.cpp:void clang::ento::Checker<clang::ento::check::PreStmt<clang::CastExpr>, clang::ento::check::PostStmt<clang::CastExpr>, clang::ento::check::PreStmt<clang::ArraySubscriptExpr>, clang::ento::check::PostStmt<clang::ArraySubscriptExpr>, clang::ento::check::PreStmt<clang::CXXNewExpr>, clang::ento::check::PostStmt<clang::CXXNewExpr>, clang::ento::check::PreStmt<clang::CXXDeleteExpr>, clang::ento::check::PostStmt<clang::CXXDeleteExpr>, clang::ento::check::PreStmt<clang::CXXConstructExpr>, clang::ento::check::PostStmt<clang::CXXConstructExpr>, clang::ento::check::PreStmt<clang::OffsetOfExpr>, clang::ento::check::PostStmt<clang::OffsetOfExpr>, clang::ento::check::PreCall, clang::ento::check::PostCall, clang::ento::check::EndFunction, clang::ento::check::EndAnalysis, clang::ento::check::NewAllocator, clang::ento::check::Bind, clang::ento::check::PointerEscape, clang::ento::check::RegionChanges, clang::ento::check::LiveSymbols, clang::ento::eval::Call>::_register<(anonymous namespace)::AnalysisOrderChecker>((anonymous namespace)::AnalysisOrderChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 12 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 12 | CHECK1::_register(checker, mgr); | 522 | 12 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 12 | } |
AnalysisOrderChecker.cpp:void clang::ento::Checker<clang::ento::check::PostStmt<clang::CastExpr>, clang::ento::check::PreStmt<clang::ArraySubscriptExpr>, clang::ento::check::PostStmt<clang::ArraySubscriptExpr>, clang::ento::check::PreStmt<clang::CXXNewExpr>, clang::ento::check::PostStmt<clang::CXXNewExpr>, clang::ento::check::PreStmt<clang::CXXDeleteExpr>, clang::ento::check::PostStmt<clang::CXXDeleteExpr>, clang::ento::check::PreStmt<clang::CXXConstructExpr>, clang::ento::check::PostStmt<clang::CXXConstructExpr>, clang::ento::check::PreStmt<clang::OffsetOfExpr>, clang::ento::check::PostStmt<clang::OffsetOfExpr>, clang::ento::check::PreCall, clang::ento::check::PostCall, clang::ento::check::EndFunction, clang::ento::check::EndAnalysis, clang::ento::check::NewAllocator, clang::ento::check::Bind, clang::ento::check::PointerEscape, clang::ento::check::RegionChanges, clang::ento::check::LiveSymbols, clang::ento::eval::Call>::_register<(anonymous namespace)::AnalysisOrderChecker>((anonymous namespace)::AnalysisOrderChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 12 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 12 | CHECK1::_register(checker, mgr); | 522 | 12 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 12 | } |
AnalysisOrderChecker.cpp:void clang::ento::Checker<clang::ento::check::PreStmt<clang::ArraySubscriptExpr>, clang::ento::check::PostStmt<clang::ArraySubscriptExpr>, clang::ento::check::PreStmt<clang::CXXNewExpr>, clang::ento::check::PostStmt<clang::CXXNewExpr>, clang::ento::check::PreStmt<clang::CXXDeleteExpr>, clang::ento::check::PostStmt<clang::CXXDeleteExpr>, clang::ento::check::PreStmt<clang::CXXConstructExpr>, clang::ento::check::PostStmt<clang::CXXConstructExpr>, clang::ento::check::PreStmt<clang::OffsetOfExpr>, clang::ento::check::PostStmt<clang::OffsetOfExpr>, clang::ento::check::PreCall, clang::ento::check::PostCall, clang::ento::check::EndFunction, clang::ento::check::EndAnalysis, clang::ento::check::NewAllocator, clang::ento::check::Bind, clang::ento::check::PointerEscape, clang::ento::check::RegionChanges, clang::ento::check::LiveSymbols, clang::ento::eval::Call>::_register<(anonymous namespace)::AnalysisOrderChecker>((anonymous namespace)::AnalysisOrderChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 12 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 12 | CHECK1::_register(checker, mgr); | 522 | 12 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 12 | } |
AnalysisOrderChecker.cpp:void clang::ento::Checker<clang::ento::check::PostStmt<clang::ArraySubscriptExpr>, clang::ento::check::PreStmt<clang::CXXNewExpr>, clang::ento::check::PostStmt<clang::CXXNewExpr>, clang::ento::check::PreStmt<clang::CXXDeleteExpr>, clang::ento::check::PostStmt<clang::CXXDeleteExpr>, clang::ento::check::PreStmt<clang::CXXConstructExpr>, clang::ento::check::PostStmt<clang::CXXConstructExpr>, clang::ento::check::PreStmt<clang::OffsetOfExpr>, clang::ento::check::PostStmt<clang::OffsetOfExpr>, clang::ento::check::PreCall, clang::ento::check::PostCall, clang::ento::check::EndFunction, clang::ento::check::EndAnalysis, clang::ento::check::NewAllocator, clang::ento::check::Bind, clang::ento::check::PointerEscape, clang::ento::check::RegionChanges, clang::ento::check::LiveSymbols, clang::ento::eval::Call>::_register<(anonymous namespace)::AnalysisOrderChecker>((anonymous namespace)::AnalysisOrderChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 12 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 12 | CHECK1::_register(checker, mgr); | 522 | 12 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 12 | } |
AnalysisOrderChecker.cpp:void clang::ento::Checker<clang::ento::check::PreStmt<clang::CXXNewExpr>, clang::ento::check::PostStmt<clang::CXXNewExpr>, clang::ento::check::PreStmt<clang::CXXDeleteExpr>, clang::ento::check::PostStmt<clang::CXXDeleteExpr>, clang::ento::check::PreStmt<clang::CXXConstructExpr>, clang::ento::check::PostStmt<clang::CXXConstructExpr>, clang::ento::check::PreStmt<clang::OffsetOfExpr>, clang::ento::check::PostStmt<clang::OffsetOfExpr>, clang::ento::check::PreCall, clang::ento::check::PostCall, clang::ento::check::EndFunction, clang::ento::check::EndAnalysis, clang::ento::check::NewAllocator, clang::ento::check::Bind, clang::ento::check::PointerEscape, clang::ento::check::RegionChanges, clang::ento::check::LiveSymbols, clang::ento::eval::Call>::_register<(anonymous namespace)::AnalysisOrderChecker>((anonymous namespace)::AnalysisOrderChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 12 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 12 | CHECK1::_register(checker, mgr); | 522 | 12 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 12 | } |
AnalysisOrderChecker.cpp:void clang::ento::Checker<clang::ento::check::PostStmt<clang::CXXNewExpr>, clang::ento::check::PreStmt<clang::CXXDeleteExpr>, clang::ento::check::PostStmt<clang::CXXDeleteExpr>, clang::ento::check::PreStmt<clang::CXXConstructExpr>, clang::ento::check::PostStmt<clang::CXXConstructExpr>, clang::ento::check::PreStmt<clang::OffsetOfExpr>, clang::ento::check::PostStmt<clang::OffsetOfExpr>, clang::ento::check::PreCall, clang::ento::check::PostCall, clang::ento::check::EndFunction, clang::ento::check::EndAnalysis, clang::ento::check::NewAllocator, clang::ento::check::Bind, clang::ento::check::PointerEscape, clang::ento::check::RegionChanges, clang::ento::check::LiveSymbols, clang::ento::eval::Call>::_register<(anonymous namespace)::AnalysisOrderChecker>((anonymous namespace)::AnalysisOrderChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 12 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 12 | CHECK1::_register(checker, mgr); | 522 | 12 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 12 | } |
AnalysisOrderChecker.cpp:void clang::ento::Checker<clang::ento::check::PreStmt<clang::CXXDeleteExpr>, clang::ento::check::PostStmt<clang::CXXDeleteExpr>, clang::ento::check::PreStmt<clang::CXXConstructExpr>, clang::ento::check::PostStmt<clang::CXXConstructExpr>, clang::ento::check::PreStmt<clang::OffsetOfExpr>, clang::ento::check::PostStmt<clang::OffsetOfExpr>, clang::ento::check::PreCall, clang::ento::check::PostCall, clang::ento::check::EndFunction, clang::ento::check::EndAnalysis, clang::ento::check::NewAllocator, clang::ento::check::Bind, clang::ento::check::PointerEscape, clang::ento::check::RegionChanges, clang::ento::check::LiveSymbols, clang::ento::eval::Call>::_register<(anonymous namespace)::AnalysisOrderChecker>((anonymous namespace)::AnalysisOrderChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 12 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 12 | CHECK1::_register(checker, mgr); | 522 | 12 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 12 | } |
AnalysisOrderChecker.cpp:void clang::ento::Checker<clang::ento::check::PostStmt<clang::CXXDeleteExpr>, clang::ento::check::PreStmt<clang::CXXConstructExpr>, clang::ento::check::PostStmt<clang::CXXConstructExpr>, clang::ento::check::PreStmt<clang::OffsetOfExpr>, clang::ento::check::PostStmt<clang::OffsetOfExpr>, clang::ento::check::PreCall, clang::ento::check::PostCall, clang::ento::check::EndFunction, clang::ento::check::EndAnalysis, clang::ento::check::NewAllocator, clang::ento::check::Bind, clang::ento::check::PointerEscape, clang::ento::check::RegionChanges, clang::ento::check::LiveSymbols, clang::ento::eval::Call>::_register<(anonymous namespace)::AnalysisOrderChecker>((anonymous namespace)::AnalysisOrderChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 12 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 12 | CHECK1::_register(checker, mgr); | 522 | 12 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 12 | } |
AnalysisOrderChecker.cpp:void clang::ento::Checker<clang::ento::check::PreStmt<clang::CXXConstructExpr>, clang::ento::check::PostStmt<clang::CXXConstructExpr>, clang::ento::check::PreStmt<clang::OffsetOfExpr>, clang::ento::check::PostStmt<clang::OffsetOfExpr>, clang::ento::check::PreCall, clang::ento::check::PostCall, clang::ento::check::EndFunction, clang::ento::check::EndAnalysis, clang::ento::check::NewAllocator, clang::ento::check::Bind, clang::ento::check::PointerEscape, clang::ento::check::RegionChanges, clang::ento::check::LiveSymbols, clang::ento::eval::Call>::_register<(anonymous namespace)::AnalysisOrderChecker>((anonymous namespace)::AnalysisOrderChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 12 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 12 | CHECK1::_register(checker, mgr); | 522 | 12 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 12 | } |
AnalysisOrderChecker.cpp:void clang::ento::Checker<clang::ento::check::PostStmt<clang::CXXConstructExpr>, clang::ento::check::PreStmt<clang::OffsetOfExpr>, clang::ento::check::PostStmt<clang::OffsetOfExpr>, clang::ento::check::PreCall, clang::ento::check::PostCall, clang::ento::check::EndFunction, clang::ento::check::EndAnalysis, clang::ento::check::NewAllocator, clang::ento::check::Bind, clang::ento::check::PointerEscape, clang::ento::check::RegionChanges, clang::ento::check::LiveSymbols, clang::ento::eval::Call>::_register<(anonymous namespace)::AnalysisOrderChecker>((anonymous namespace)::AnalysisOrderChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 12 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 12 | CHECK1::_register(checker, mgr); | 522 | 12 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 12 | } |
AnalysisOrderChecker.cpp:void clang::ento::Checker<clang::ento::check::PreStmt<clang::OffsetOfExpr>, clang::ento::check::PostStmt<clang::OffsetOfExpr>, clang::ento::check::PreCall, clang::ento::check::PostCall, clang::ento::check::EndFunction, clang::ento::check::EndAnalysis, clang::ento::check::NewAllocator, clang::ento::check::Bind, clang::ento::check::PointerEscape, clang::ento::check::RegionChanges, clang::ento::check::LiveSymbols, clang::ento::eval::Call>::_register<(anonymous namespace)::AnalysisOrderChecker>((anonymous namespace)::AnalysisOrderChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 12 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 12 | CHECK1::_register(checker, mgr); | 522 | 12 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 12 | } |
AnalysisOrderChecker.cpp:void clang::ento::Checker<clang::ento::check::PostStmt<clang::OffsetOfExpr>, clang::ento::check::PreCall, clang::ento::check::PostCall, clang::ento::check::EndFunction, clang::ento::check::EndAnalysis, clang::ento::check::NewAllocator, clang::ento::check::Bind, clang::ento::check::PointerEscape, clang::ento::check::RegionChanges, clang::ento::check::LiveSymbols, clang::ento::eval::Call>::_register<(anonymous namespace)::AnalysisOrderChecker>((anonymous namespace)::AnalysisOrderChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 12 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 12 | CHECK1::_register(checker, mgr); | 522 | 12 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 12 | } |
AnalysisOrderChecker.cpp:void clang::ento::Checker<clang::ento::check::PreCall, clang::ento::check::PostCall, clang::ento::check::EndFunction, clang::ento::check::EndAnalysis, clang::ento::check::NewAllocator, clang::ento::check::Bind, clang::ento::check::PointerEscape, clang::ento::check::RegionChanges, clang::ento::check::LiveSymbols, clang::ento::eval::Call>::_register<(anonymous namespace)::AnalysisOrderChecker>((anonymous namespace)::AnalysisOrderChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 12 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 12 | CHECK1::_register(checker, mgr); | 522 | 12 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 12 | } |
AnalysisOrderChecker.cpp:void clang::ento::Checker<clang::ento::check::PostCall, clang::ento::check::EndFunction, clang::ento::check::EndAnalysis, clang::ento::check::NewAllocator, clang::ento::check::Bind, clang::ento::check::PointerEscape, clang::ento::check::RegionChanges, clang::ento::check::LiveSymbols, clang::ento::eval::Call>::_register<(anonymous namespace)::AnalysisOrderChecker>((anonymous namespace)::AnalysisOrderChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 12 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 12 | CHECK1::_register(checker, mgr); | 522 | 12 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 12 | } |
AnalysisOrderChecker.cpp:void clang::ento::Checker<clang::ento::check::EndFunction, clang::ento::check::EndAnalysis, clang::ento::check::NewAllocator, clang::ento::check::Bind, clang::ento::check::PointerEscape, clang::ento::check::RegionChanges, clang::ento::check::LiveSymbols, clang::ento::eval::Call>::_register<(anonymous namespace)::AnalysisOrderChecker>((anonymous namespace)::AnalysisOrderChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 12 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 12 | CHECK1::_register(checker, mgr); | 522 | 12 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 12 | } |
AnalysisOrderChecker.cpp:void clang::ento::Checker<clang::ento::check::EndAnalysis, clang::ento::check::NewAllocator, clang::ento::check::Bind, clang::ento::check::PointerEscape, clang::ento::check::RegionChanges, clang::ento::check::LiveSymbols, clang::ento::eval::Call>::_register<(anonymous namespace)::AnalysisOrderChecker>((anonymous namespace)::AnalysisOrderChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 12 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 12 | CHECK1::_register(checker, mgr); | 522 | 12 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 12 | } |
AnalysisOrderChecker.cpp:void clang::ento::Checker<clang::ento::check::NewAllocator, clang::ento::check::Bind, clang::ento::check::PointerEscape, clang::ento::check::RegionChanges, clang::ento::check::LiveSymbols, clang::ento::eval::Call>::_register<(anonymous namespace)::AnalysisOrderChecker>((anonymous namespace)::AnalysisOrderChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 12 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 12 | CHECK1::_register(checker, mgr); | 522 | 12 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 12 | } |
AnalysisOrderChecker.cpp:void clang::ento::Checker<clang::ento::check::Bind, clang::ento::check::PointerEscape, clang::ento::check::RegionChanges, clang::ento::check::LiveSymbols, clang::ento::eval::Call>::_register<(anonymous namespace)::AnalysisOrderChecker>((anonymous namespace)::AnalysisOrderChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 12 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 12 | CHECK1::_register(checker, mgr); | 522 | 12 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 12 | } |
AnalysisOrderChecker.cpp:void clang::ento::Checker<clang::ento::check::PointerEscape, clang::ento::check::RegionChanges, clang::ento::check::LiveSymbols, clang::ento::eval::Call>::_register<(anonymous namespace)::AnalysisOrderChecker>((anonymous namespace)::AnalysisOrderChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 12 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 12 | CHECK1::_register(checker, mgr); | 522 | 12 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 12 | } |
AnalysisOrderChecker.cpp:void clang::ento::Checker<clang::ento::check::RegionChanges, clang::ento::check::LiveSymbols, clang::ento::eval::Call>::_register<(anonymous namespace)::AnalysisOrderChecker>((anonymous namespace)::AnalysisOrderChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 12 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 12 | CHECK1::_register(checker, mgr); | 522 | 12 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 12 | } |
AnalysisOrderChecker.cpp:void clang::ento::Checker<clang::ento::check::LiveSymbols, clang::ento::eval::Call>::_register<(anonymous namespace)::AnalysisOrderChecker>((anonymous namespace)::AnalysisOrderChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 12 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 12 | CHECK1::_register(checker, mgr); | 522 | 12 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 12 | } |
BasicObjCFoundationChecks.cpp:void clang::ento::Checker<clang::ento::check::PreObjCMessage, clang::ento::check::PostStmt<clang::ObjCDictionaryLiteral>, clang::ento::check::PostStmt<clang::ObjCArrayLiteral> >::_register<(anonymous namespace)::NilArgChecker>((anonymous namespace)::NilArgChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 53 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 53 | CHECK1::_register(checker, mgr); | 522 | 53 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 53 | } |
BasicObjCFoundationChecks.cpp:void clang::ento::Checker<clang::ento::check::PostStmt<clang::ObjCDictionaryLiteral>, clang::ento::check::PostStmt<clang::ObjCArrayLiteral> >::_register<(anonymous namespace)::NilArgChecker>((anonymous namespace)::NilArgChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 53 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 53 | CHECK1::_register(checker, mgr); | 522 | 53 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 53 | } |
BasicObjCFoundationChecks.cpp:void clang::ento::Checker<clang::ento::check::PostStmt<clang::ObjCForCollectionStmt>, clang::ento::check::PostObjCMessage, clang::ento::check::DeadSymbols, clang::ento::check::PointerEscape>::_register<(anonymous namespace)::ObjCLoopChecker>((anonymous namespace)::ObjCLoopChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 48 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 48 | CHECK1::_register(checker, mgr); | 522 | 48 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 48 | } |
BasicObjCFoundationChecks.cpp:void clang::ento::Checker<clang::ento::check::PostObjCMessage, clang::ento::check::DeadSymbols, clang::ento::check::PointerEscape>::_register<(anonymous namespace)::ObjCLoopChecker>((anonymous namespace)::ObjCLoopChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 48 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 48 | CHECK1::_register(checker, mgr); | 522 | 48 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 48 | } |
BasicObjCFoundationChecks.cpp:void clang::ento::Checker<clang::ento::check::DeadSymbols, clang::ento::check::PointerEscape>::_register<(anonymous namespace)::ObjCLoopChecker>((anonymous namespace)::ObjCLoopChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 48 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 48 | CHECK1::_register(checker, mgr); | 522 | 48 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 48 | } |
BasicObjCFoundationChecks.cpp:void clang::ento::Checker<clang::ento::check::PostObjCMessage, clang::ento::check::PostStmt<clang::ObjCArrayLiteral>, clang::ento::check::PostStmt<clang::ObjCDictionaryLiteral>, clang::ento::check::PostStmt<clang::ObjCBoxedExpr> >::_register<(anonymous namespace)::ObjCNonNilReturnValueChecker>((anonymous namespace)::ObjCNonNilReturnValueChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 49 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 49 | CHECK1::_register(checker, mgr); | 522 | 49 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 49 | } |
BasicObjCFoundationChecks.cpp:void clang::ento::Checker<clang::ento::check::PostStmt<clang::ObjCArrayLiteral>, clang::ento::check::PostStmt<clang::ObjCDictionaryLiteral>, clang::ento::check::PostStmt<clang::ObjCBoxedExpr> >::_register<(anonymous namespace)::ObjCNonNilReturnValueChecker>((anonymous namespace)::ObjCNonNilReturnValueChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 49 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 49 | CHECK1::_register(checker, mgr); | 522 | 49 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 49 | } |
BasicObjCFoundationChecks.cpp:void clang::ento::Checker<clang::ento::check::PostStmt<clang::ObjCDictionaryLiteral>, clang::ento::check::PostStmt<clang::ObjCBoxedExpr> >::_register<(anonymous namespace)::ObjCNonNilReturnValueChecker>((anonymous namespace)::ObjCNonNilReturnValueChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 49 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 49 | CHECK1::_register(checker, mgr); | 522 | 49 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 49 | } |
CStringChecker.cpp:void clang::ento::Checker<clang::ento::eval::Call, clang::ento::check::PreStmt<clang::DeclStmt>, clang::ento::check::LiveSymbols, clang::ento::check::DeadSymbols, clang::ento::check::RegionChanges>::_register<(anonymous namespace)::CStringChecker>((anonymous namespace)::CStringChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 264 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 264 | CHECK1::_register(checker, mgr); | 522 | 264 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 264 | } |
CStringChecker.cpp:void clang::ento::Checker<clang::ento::check::PreStmt<clang::DeclStmt>, clang::ento::check::LiveSymbols, clang::ento::check::DeadSymbols, clang::ento::check::RegionChanges>::_register<(anonymous namespace)::CStringChecker>((anonymous namespace)::CStringChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 264 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 264 | CHECK1::_register(checker, mgr); | 522 | 264 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 264 | } |
CStringChecker.cpp:void clang::ento::Checker<clang::ento::check::LiveSymbols, clang::ento::check::DeadSymbols, clang::ento::check::RegionChanges>::_register<(anonymous namespace)::CStringChecker>((anonymous namespace)::CStringChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 264 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 264 | CHECK1::_register(checker, mgr); | 522 | 264 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 264 | } |
CStringChecker.cpp:void clang::ento::Checker<clang::ento::check::DeadSymbols, clang::ento::check::RegionChanges>::_register<(anonymous namespace)::CStringChecker>((anonymous namespace)::CStringChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 264 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 264 | CHECK1::_register(checker, mgr); | 522 | 264 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 264 | } |
CallAndMessageChecker.cpp:void clang::ento::Checker<clang::ento::check::PreObjCMessage, clang::ento::check::ObjCMessageNil, clang::ento::check::PreCall>::_register<(anonymous namespace)::CallAndMessageChecker>((anonymous namespace)::CallAndMessageChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 1.24k | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 1.24k | CHECK1::_register(checker, mgr); | 522 | 1.24k | Checker<CHECKs...>::_register(checker, mgr); | 523 | 1.24k | } |
CallAndMessageChecker.cpp:void clang::ento::Checker<clang::ento::check::ObjCMessageNil, clang::ento::check::PreCall>::_register<(anonymous namespace)::CallAndMessageChecker>((anonymous namespace)::CallAndMessageChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 1.24k | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 1.24k | CHECK1::_register(checker, mgr); | 522 | 1.24k | Checker<CHECKs...>::_register(checker, mgr); | 523 | 1.24k | } |
CastValueChecker.cpp:void clang::ento::Checker<clang::ento::check::DeadSymbols, clang::ento::eval::Call>::_register<(anonymous namespace)::CastValueChecker>((anonymous namespace)::CastValueChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 53 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 53 | CHECK1::_register(checker, mgr); | 522 | 53 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 53 | } |
CheckObjCDealloc.cpp:void clang::ento::Checker<clang::ento::check::ASTDecl<clang::ObjCImplementationDecl>, clang::ento::check::PreObjCMessage, clang::ento::check::PostObjCMessage, clang::ento::check::PreCall, clang::ento::check::BeginFunction, clang::ento::check::EndFunction, clang::ento::eval::Assume, clang::ento::check::PointerEscape, clang::ento::check::PreStmt<clang::ReturnStmt> >::_register<(anonymous namespace)::ObjCDeallocChecker>((anonymous namespace)::ObjCDeallocChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 50 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 50 | CHECK1::_register(checker, mgr); | 522 | 50 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 50 | } |
CheckObjCDealloc.cpp:void clang::ento::Checker<clang::ento::check::PreObjCMessage, clang::ento::check::PostObjCMessage, clang::ento::check::PreCall, clang::ento::check::BeginFunction, clang::ento::check::EndFunction, clang::ento::eval::Assume, clang::ento::check::PointerEscape, clang::ento::check::PreStmt<clang::ReturnStmt> >::_register<(anonymous namespace)::ObjCDeallocChecker>((anonymous namespace)::ObjCDeallocChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 50 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 50 | CHECK1::_register(checker, mgr); | 522 | 50 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 50 | } |
CheckObjCDealloc.cpp:void clang::ento::Checker<clang::ento::check::PostObjCMessage, clang::ento::check::PreCall, clang::ento::check::BeginFunction, clang::ento::check::EndFunction, clang::ento::eval::Assume, clang::ento::check::PointerEscape, clang::ento::check::PreStmt<clang::ReturnStmt> >::_register<(anonymous namespace)::ObjCDeallocChecker>((anonymous namespace)::ObjCDeallocChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 50 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 50 | CHECK1::_register(checker, mgr); | 522 | 50 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 50 | } |
CheckObjCDealloc.cpp:void clang::ento::Checker<clang::ento::check::PreCall, clang::ento::check::BeginFunction, clang::ento::check::EndFunction, clang::ento::eval::Assume, clang::ento::check::PointerEscape, clang::ento::check::PreStmt<clang::ReturnStmt> >::_register<(anonymous namespace)::ObjCDeallocChecker>((anonymous namespace)::ObjCDeallocChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 50 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 50 | CHECK1::_register(checker, mgr); | 522 | 50 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 50 | } |
CheckObjCDealloc.cpp:void clang::ento::Checker<clang::ento::check::BeginFunction, clang::ento::check::EndFunction, clang::ento::eval::Assume, clang::ento::check::PointerEscape, clang::ento::check::PreStmt<clang::ReturnStmt> >::_register<(anonymous namespace)::ObjCDeallocChecker>((anonymous namespace)::ObjCDeallocChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 50 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 50 | CHECK1::_register(checker, mgr); | 522 | 50 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 50 | } |
CheckObjCDealloc.cpp:void clang::ento::Checker<clang::ento::check::EndFunction, clang::ento::eval::Assume, clang::ento::check::PointerEscape, clang::ento::check::PreStmt<clang::ReturnStmt> >::_register<(anonymous namespace)::ObjCDeallocChecker>((anonymous namespace)::ObjCDeallocChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 50 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 50 | CHECK1::_register(checker, mgr); | 522 | 50 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 50 | } |
CheckObjCDealloc.cpp:void clang::ento::Checker<clang::ento::eval::Assume, clang::ento::check::PointerEscape, clang::ento::check::PreStmt<clang::ReturnStmt> >::_register<(anonymous namespace)::ObjCDeallocChecker>((anonymous namespace)::ObjCDeallocChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 50 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 50 | CHECK1::_register(checker, mgr); | 522 | 50 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 50 | } |
CheckObjCDealloc.cpp:void clang::ento::Checker<clang::ento::check::PointerEscape, clang::ento::check::PreStmt<clang::ReturnStmt> >::_register<(anonymous namespace)::ObjCDeallocChecker>((anonymous namespace)::ObjCDeallocChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 50 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 50 | CHECK1::_register(checker, mgr); | 522 | 50 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 50 | } |
ChrootChecker.cpp:void clang::ento::Checker<clang::ento::eval::Call, clang::ento::check::PreCall>::_register<(anonymous namespace)::ChrootChecker>((anonymous namespace)::ChrootChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 4 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 4 | CHECK1::_register(checker, mgr); | 522 | 4 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 4 | } |
CloneChecker.cpp:void clang::ento::Checker<clang::ento::check::ASTCodeBody, clang::ento::check::EndOfTranslationUnit>::_register<(anonymous namespace)::CloneChecker>((anonymous namespace)::CloneChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 28 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 28 | CHECK1::_register(checker, mgr); | 522 | 28 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 28 | } |
ContainerModeling.cpp:void clang::ento::Checker<clang::ento::check::PostCall, clang::ento::check::LiveSymbols, clang::ento::check::DeadSymbols>::_register<(anonymous namespace)::ContainerModeling>((anonymous namespace)::ContainerModeling*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 21 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 21 | CHECK1::_register(checker, mgr); | 522 | 21 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 21 | } |
ContainerModeling.cpp:void clang::ento::Checker<clang::ento::check::LiveSymbols, clang::ento::check::DeadSymbols>::_register<(anonymous namespace)::ContainerModeling>((anonymous namespace)::ContainerModeling*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 21 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 21 | CHECK1::_register(checker, mgr); | 522 | 21 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 21 | } |
DereferenceChecker.cpp:void clang::ento::Checker<clang::ento::check::Location, clang::ento::check::Bind, clang::ento::EventDispatcher<clang::ento::ImplicitNullDerefEvent> >::_register<(anonymous namespace)::DereferenceChecker>((anonymous namespace)::DereferenceChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 1.24k | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 1.24k | CHECK1::_register(checker, mgr); | 522 | 1.24k | Checker<CHECKs...>::_register(checker, mgr); | 523 | 1.24k | } |
DereferenceChecker.cpp:void clang::ento::Checker<clang::ento::check::Bind, clang::ento::EventDispatcher<clang::ento::ImplicitNullDerefEvent> >::_register<(anonymous namespace)::DereferenceChecker>((anonymous namespace)::DereferenceChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 1.24k | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 1.24k | CHECK1::_register(checker, mgr); | 522 | 1.24k | Checker<CHECKs...>::_register(checker, mgr); | 523 | 1.24k | } |
DynamicTypePropagation.cpp:void clang::ento::Checker<clang::ento::check::PreCall, clang::ento::check::PostCall, clang::ento::check::DeadSymbols, clang::ento::check::PostStmt<clang::CastExpr>, clang::ento::check::PostStmt<clang::CXXNewExpr>, clang::ento::check::PreObjCMessage, clang::ento::check::PostObjCMessage>::_register<(anonymous namespace)::DynamicTypePropagation>((anonymous namespace)::DynamicTypePropagation*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 1.23k | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 1.23k | CHECK1::_register(checker, mgr); | 522 | 1.23k | Checker<CHECKs...>::_register(checker, mgr); | 523 | 1.23k | } |
DynamicTypePropagation.cpp:void clang::ento::Checker<clang::ento::check::PostCall, clang::ento::check::DeadSymbols, clang::ento::check::PostStmt<clang::CastExpr>, clang::ento::check::PostStmt<clang::CXXNewExpr>, clang::ento::check::PreObjCMessage, clang::ento::check::PostObjCMessage>::_register<(anonymous namespace)::DynamicTypePropagation>((anonymous namespace)::DynamicTypePropagation*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 1.23k | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 1.23k | CHECK1::_register(checker, mgr); | 522 | 1.23k | Checker<CHECKs...>::_register(checker, mgr); | 523 | 1.23k | } |
DynamicTypePropagation.cpp:void clang::ento::Checker<clang::ento::check::DeadSymbols, clang::ento::check::PostStmt<clang::CastExpr>, clang::ento::check::PostStmt<clang::CXXNewExpr>, clang::ento::check::PreObjCMessage, clang::ento::check::PostObjCMessage>::_register<(anonymous namespace)::DynamicTypePropagation>((anonymous namespace)::DynamicTypePropagation*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 1.23k | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 1.23k | CHECK1::_register(checker, mgr); | 522 | 1.23k | Checker<CHECKs...>::_register(checker, mgr); | 523 | 1.23k | } |
DynamicTypePropagation.cpp:void clang::ento::Checker<clang::ento::check::PostStmt<clang::CastExpr>, clang::ento::check::PostStmt<clang::CXXNewExpr>, clang::ento::check::PreObjCMessage, clang::ento::check::PostObjCMessage>::_register<(anonymous namespace)::DynamicTypePropagation>((anonymous namespace)::DynamicTypePropagation*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 1.23k | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 1.23k | CHECK1::_register(checker, mgr); | 522 | 1.23k | Checker<CHECKs...>::_register(checker, mgr); | 523 | 1.23k | } |
DynamicTypePropagation.cpp:void clang::ento::Checker<clang::ento::check::PostStmt<clang::CXXNewExpr>, clang::ento::check::PreObjCMessage, clang::ento::check::PostObjCMessage>::_register<(anonymous namespace)::DynamicTypePropagation>((anonymous namespace)::DynamicTypePropagation*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 1.23k | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 1.23k | CHECK1::_register(checker, mgr); | 522 | 1.23k | Checker<CHECKs...>::_register(checker, mgr); | 523 | 1.23k | } |
DynamicTypePropagation.cpp:void clang::ento::Checker<clang::ento::check::PreObjCMessage, clang::ento::check::PostObjCMessage>::_register<(anonymous namespace)::DynamicTypePropagation>((anonymous namespace)::DynamicTypePropagation*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 1.23k | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 1.23k | CHECK1::_register(checker, mgr); | 522 | 1.23k | Checker<CHECKs...>::_register(checker, mgr); | 523 | 1.23k | } |
ErrnoChecker.cpp:void clang::ento::Checker<clang::ento::check::Location, clang::ento::check::PreCall, clang::ento::check::RegionChanges>::_register<(anonymous namespace)::ErrnoChecker>((anonymous namespace)::ErrnoChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 11 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 11 | CHECK1::_register(checker, mgr); | 522 | 11 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 11 | } |
ErrnoChecker.cpp:void clang::ento::Checker<clang::ento::check::PreCall, clang::ento::check::RegionChanges>::_register<(anonymous namespace)::ErrnoChecker>((anonymous namespace)::ErrnoChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 11 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 11 | CHECK1::_register(checker, mgr); | 522 | 11 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 11 | } |
ErrnoModeling.cpp:void clang::ento::Checker<clang::ento::check::ASTDecl<clang::TranslationUnitDecl>, clang::ento::check::BeginFunction, clang::ento::check::LiveSymbols, clang::ento::eval::Call>::_register<(anonymous namespace)::ErrnoModeling>((anonymous namespace)::ErrnoModeling*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 53 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 53 | CHECK1::_register(checker, mgr); | 522 | 53 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 53 | } |
ErrnoModeling.cpp:void clang::ento::Checker<clang::ento::check::BeginFunction, clang::ento::check::LiveSymbols, clang::ento::eval::Call>::_register<(anonymous namespace)::ErrnoModeling>((anonymous namespace)::ErrnoModeling*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 53 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 53 | CHECK1::_register(checker, mgr); | 522 | 53 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 53 | } |
ErrnoModeling.cpp:void clang::ento::Checker<clang::ento::check::LiveSymbols, clang::ento::eval::Call>::_register<(anonymous namespace)::ErrnoModeling>((anonymous namespace)::ErrnoModeling*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 53 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 53 | CHECK1::_register(checker, mgr); | 522 | 53 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 53 | } |
ExprInspectionChecker.cpp:void clang::ento::Checker<clang::ento::eval::Call, clang::ento::check::DeadSymbols, clang::ento::check::EndAnalysis>::_register<(anonymous namespace)::ExprInspectionChecker>((anonymous namespace)::ExprInspectionChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 408 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 408 | CHECK1::_register(checker, mgr); | 522 | 408 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 408 | } |
ExprInspectionChecker.cpp:void clang::ento::Checker<clang::ento::check::DeadSymbols, clang::ento::check::EndAnalysis>::_register<(anonymous namespace)::ExprInspectionChecker>((anonymous namespace)::ExprInspectionChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 408 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 408 | CHECK1::_register(checker, mgr); | 522 | 408 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 408 | } |
FuchsiaHandleChecker.cpp:void clang::ento::Checker<clang::ento::check::PostCall, clang::ento::check::PreCall, clang::ento::check::DeadSymbols, clang::ento::check::PointerEscape, clang::ento::eval::Assume>::_register<(anonymous namespace)::FuchsiaHandleChecker>((anonymous namespace)::FuchsiaHandleChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 1 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 1 | CHECK1::_register(checker, mgr); | 522 | 1 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 1 | } |
FuchsiaHandleChecker.cpp:void clang::ento::Checker<clang::ento::check::PreCall, clang::ento::check::DeadSymbols, clang::ento::check::PointerEscape, clang::ento::eval::Assume>::_register<(anonymous namespace)::FuchsiaHandleChecker>((anonymous namespace)::FuchsiaHandleChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 1 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 1 | CHECK1::_register(checker, mgr); | 522 | 1 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 1 | } |
FuchsiaHandleChecker.cpp:void clang::ento::Checker<clang::ento::check::DeadSymbols, clang::ento::check::PointerEscape, clang::ento::eval::Assume>::_register<(anonymous namespace)::FuchsiaHandleChecker>((anonymous namespace)::FuchsiaHandleChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 1 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 1 | CHECK1::_register(checker, mgr); | 522 | 1 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 1 | } |
FuchsiaHandleChecker.cpp:void clang::ento::Checker<clang::ento::check::PointerEscape, clang::ento::eval::Assume>::_register<(anonymous namespace)::FuchsiaHandleChecker>((anonymous namespace)::FuchsiaHandleChecker*, clang::ento::CheckerManager&) Line | Count | Source | 520 | 1 | static void _register(CHECKER *checker, CheckerManager &mgr) { | 521 | 1 | CHECK1::_register(checker, mgr); | 522 | 1 | Checker<CHECKs...>::_register(checker, mgr); | 523 | 1 | } |
|