Coverage Report

Created: 2022-07-16 07:03

/Users/buildslave/jenkins/workspace/coverage/llvm-project/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValVisitor.h
Line
Count
Source (jump to first uncovered line)
1
//===--- SValVisitor.h - Visitor for SVal subclasses ------------*- 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 the SValVisitor, SymExprVisitor, and MemRegionVisitor
10
//  interfaces, and also FullSValVisitor, which visits all three hierarchies.
11
//
12
//===----------------------------------------------------------------------===//
13
14
#ifndef LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_SVALVISITOR_H
15
#define LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_SVALVISITOR_H
16
17
#include "clang/StaticAnalyzer/Core/PathSensitive/SVals.h"
18
#include "clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h"
19
#include "clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h"
20
21
namespace clang {
22
23
namespace ento {
24
25
/// SValVisitor - this class implements a simple visitor for SVal
26
/// subclasses.
27
template <typename ImplClass, typename RetTy = void> class SValVisitor {
28
public:
29
30
#define DISPATCH(NAME, CLASS) \
31
3.22M
  return static_cast<ImplClass *>(this)->Visit ## NAME(V.castAs<CLASS>())
32
33
2.21M
  RetTy Visit(SVal V) {
34
    // Dispatch to VisitFooVal for each FooVal.
35
    // Take namespaces (loc:: and nonloc::) into account.
36
2.21M
    switch (V.getBaseKind()) {
37
62
#define BASIC_SVAL(Id, Parent) case SVal::Id ## Kind: 
DISPATCH0
(Id, Id);
38
0
#include "clang/StaticAnalyzer/Core/PathSensitive/SVals.def"
39
208k
    case SVal::LocKind:
40
208k
      switch (V.getSubKind()) {
41
0
#define LOC_SVAL(Id, Parent) \
42
208k
      case loc::Id ## Kind: 
DISPATCH38.1k
(Loc ## Id, loc :: Id);
43
208k
#include 
"clang/StaticAnalyzer/Core/PathSensitive/SVals.def"0
44
208k
      }
45
0
      llvm_unreachable("Unknown Loc sub-kind!");
46
2.00M
    case SVal::NonLocKind:
47
2.00M
      switch (V.getSubKind()) {
48
0
#define NONLOC_SVAL(Id, Parent) \
49
2.00M
      case nonloc::Id ## Kind: 
DISPATCH550k
(NonLoc ## Id, nonloc :: Id);
50
2.00M
#include 
"clang/StaticAnalyzer/Core/PathSensitive/SVals.def"0
51
2.00M
      }
52
2.21M
      
llvm_unreachable0
("Unknown NonLoc sub-kind!");
53
2.21M
    }
54
0
    llvm_unreachable("Unknown SVal kind!");
55
0
  }
clang::ento::SValVisitor<clang::ento::SValExplainer, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::Visit(clang::ento::SVal)
Line
Count
Source
33
63
  RetTy Visit(SVal V) {
34
    // Dispatch to VisitFooVal for each FooVal.
35
    // Take namespaces (loc:: and nonloc::) into account.
36
63
    switch (V.getBaseKind()) {
37
0
#define BASIC_SVAL(Id, Parent) case SVal::Id ## Kind: DISPATCH(Id, Id);
38
0
#include "clang/StaticAnalyzer/Core/PathSensitive/SVals.def"
39
41
    case SVal::LocKind:
40
41
      switch (V.getSubKind()) {
41
0
#define LOC_SVAL(Id, Parent) \
42
0
      case loc::Id ## Kind: DISPATCH(Loc ## Id, loc :: Id);
43
41
#include 
"clang/StaticAnalyzer/Core/PathSensitive/SVals.def"0
44
41
      }
45
0
      llvm_unreachable("Unknown Loc sub-kind!");
46
21
    case SVal::NonLocKind:
47
21
      switch (V.getSubKind()) {
48
0
#define NONLOC_SVAL(Id, Parent) \
49
0
      case nonloc::Id ## Kind: DISPATCH(NonLoc ## Id, nonloc :: Id);
50
21
#include 
"clang/StaticAnalyzer/Core/PathSensitive/SVals.def"0
51
21
      }
52
63
      
llvm_unreachable0
("Unknown NonLoc sub-kind!");
53
63
    }
54
0
    llvm_unreachable("Unknown SVal kind!");
55
0
  }
SimpleSValBuilder.cpp:clang::ento::SValVisitor<(anonymous namespace)::SimpleSValBuilder::simplifySValOnce(llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, clang::ento::SVal)::Simplifier, clang::ento::SVal>::Visit(clang::ento::SVal)
Line
Count
Source
33
2.11M
  RetTy Visit(SVal V) {
34
    // Dispatch to VisitFooVal for each FooVal.
35
    // Take namespaces (loc:: and nonloc::) into account.
36
2.11M
    switch (V.getBaseKind()) {
37
0
#define BASIC_SVAL(Id, Parent) case SVal::Id ## Kind: DISPATCH(Id, Id);
38
0
#include "clang/StaticAnalyzer/Core/PathSensitive/SVals.def"
39
108k
    case SVal::LocKind:
40
108k
      switch (V.getSubKind()) {
41
0
#define LOC_SVAL(Id, Parent) \
42
0
      case loc::Id ## Kind: DISPATCH(Loc ## Id, loc :: Id);
43
108k
#include 
"clang/StaticAnalyzer/Core/PathSensitive/SVals.def"0
44
108k
      }
45
0
      llvm_unreachable("Unknown Loc sub-kind!");
46
2.00M
    case SVal::NonLocKind:
47
2.00M
      switch (V.getSubKind()) {
48
0
#define NONLOC_SVAL(Id, Parent) \
49
0
      case nonloc::Id ## Kind: DISPATCH(NonLoc ## Id, nonloc :: Id);
50
2.00M
#include 
"clang/StaticAnalyzer/Core/PathSensitive/SVals.def"0
51
2.00M
      }
52
2.11M
      
llvm_unreachable0
("Unknown NonLoc sub-kind!");
53
2.11M
    }
54
0
    llvm_unreachable("Unknown SVal kind!");
55
0
  }
SVals.cpp:clang::ento::SValVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::Visit(clang::ento::SVal)
Line
Count
Source
33
100k
  RetTy Visit(SVal V) {
34
    // Dispatch to VisitFooVal for each FooVal.
35
    // Take namespaces (loc:: and nonloc::) into account.
36
100k
    switch (V.getBaseKind()) {
37
0
#define BASIC_SVAL(Id, Parent) case SVal::Id ## Kind: DISPATCH(Id, Id);
38
0
#include "clang/StaticAnalyzer/Core/PathSensitive/SVals.def"
39
99.6k
    case SVal::LocKind:
40
99.6k
      switch (V.getSubKind()) {
41
0
#define LOC_SVAL(Id, Parent) \
42
0
      case loc::Id ## Kind: DISPATCH(Loc ## Id, loc :: Id);
43
99.6k
#include 
"clang/StaticAnalyzer/Core/PathSensitive/SVals.def"0
44
99.6k
      }
45
0
      llvm_unreachable("Unknown Loc sub-kind!");
46
552
    case SVal::NonLocKind:
47
552
      switch (V.getSubKind()) {
48
0
#define NONLOC_SVAL(Id, Parent) \
49
0
      case nonloc::Id ## Kind: DISPATCH(NonLoc ## Id, nonloc :: Id);
50
552
#include 
"clang/StaticAnalyzer/Core/PathSensitive/SVals.def"0
51
552
      }
52
100k
      
llvm_unreachable0
("Unknown NonLoc sub-kind!");
53
100k
    }
54
0
    llvm_unreachable("Unknown SVal kind!");
55
0
  }
56
57
#define BASIC_SVAL(Id, Parent) \
58
1.97M
  RetTy Visit ## Id(Id V) { DISPATCH(Parent, Id); }
Unexecuted instantiation: clang::ento::SValVisitor<clang::ento::SValExplainer, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::VisitLoc(clang::ento::Loc)
Unexecuted instantiation: clang::ento::SValVisitor<clang::ento::SValExplainer, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::VisitDefinedSVal(clang::ento::DefinedSVal)
Unexecuted instantiation: clang::ento::SValVisitor<clang::ento::SValExplainer, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::VisitDefinedOrUnknownSVal(clang::ento::DefinedOrUnknownSVal)
Unexecuted instantiation: clang::ento::SValVisitor<clang::ento::SValExplainer, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::VisitNonLoc(clang::ento::NonLoc)
SimpleSValBuilder.cpp:clang::ento::SValVisitor<(anonymous namespace)::SimpleSValBuilder::simplifySValOnce(llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, clang::ento::SVal)::Simplifier, clang::ento::SVal>::VisitUndefinedVal(clang::ento::UndefinedVal)
Line
Count
Source
58
9
  RetTy Visit ## Id(Id V) { DISPATCH(Parent, Id); }
SimpleSValBuilder.cpp:clang::ento::SValVisitor<(anonymous namespace)::SimpleSValBuilder::simplifySValOnce(llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, clang::ento::SVal)::Simplifier, clang::ento::SVal>::VisitUnknownVal(clang::ento::UnknownVal)
Line
Count
Source
58
48
  RetTy Visit ## Id(Id V) { DISPATCH(Parent, Id); }
SimpleSValBuilder.cpp:clang::ento::SValVisitor<(anonymous namespace)::SimpleSValBuilder::simplifySValOnce(llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, clang::ento::SVal)::Simplifier, clang::ento::SVal>::VisitDefinedOrUnknownSVal(clang::ento::DefinedOrUnknownSVal)
Line
Count
Source
58
658k
  RetTy Visit ## Id(Id V) { DISPATCH(Parent, Id); }
SimpleSValBuilder.cpp:clang::ento::SValVisitor<(anonymous namespace)::SimpleSValBuilder::simplifySValOnce(llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, clang::ento::SVal)::Simplifier, clang::ento::SVal>::VisitLoc(clang::ento::Loc)
Line
Count
Source
58
108k
  RetTy Visit ## Id(Id V) { DISPATCH(Parent, Id); }
SimpleSValBuilder.cpp:clang::ento::SValVisitor<(anonymous namespace)::SimpleSValBuilder::simplifySValOnce(llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, clang::ento::SVal)::Simplifier, clang::ento::SVal>::VisitDefinedSVal(clang::ento::DefinedSVal)
Line
Count
Source
58
658k
  RetTy Visit ## Id(Id V) { DISPATCH(Parent, Id); }
SimpleSValBuilder.cpp:clang::ento::SValVisitor<(anonymous namespace)::SimpleSValBuilder::simplifySValOnce(llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, clang::ento::SVal)::Simplifier, clang::ento::SVal>::VisitNonLoc(clang::ento::NonLoc)
Line
Count
Source
58
550k
  RetTy Visit ## Id(Id V) { DISPATCH(Parent, Id); }
Unexecuted instantiation: SVals.cpp:clang::ento::SValVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitUndefinedVal(clang::ento::UndefinedVal)
SVals.cpp:clang::ento::SValVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitUnknownVal(clang::ento::UnknownVal)
Line
Count
Source
58
4
  RetTy Visit ## Id(Id V) { DISPATCH(Parent, Id); }
SVals.cpp:clang::ento::SValVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitDefinedOrUnknownSVal(clang::ento::DefinedOrUnknownSVal)
Line
Count
Source
58
4
  RetTy Visit ## Id(Id V) { DISPATCH(Parent, Id); }
Unexecuted instantiation: SVals.cpp:clang::ento::SValVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitNonLoc(clang::ento::NonLoc)
Unexecuted instantiation: SVals.cpp:clang::ento::SValVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitDefinedSVal(clang::ento::DefinedSVal)
59
#define ABSTRACT_SVAL(Id, Parent) \
60
  BASIC_SVAL(Id, Parent)
61
#define LOC_SVAL(Id, Parent) \
62
108k
  RetTy VisitLoc ## Id(loc::Id V) { DISPATCH(Parent, Parent); }
Unexecuted instantiation: clang::ento::SValVisitor<clang::ento::SValExplainer, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::VisitLocGotoLabel(clang::ento::loc::GotoLabel)
SimpleSValBuilder.cpp:clang::ento::SValVisitor<(anonymous namespace)::SimpleSValBuilder::simplifySValOnce(llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, clang::ento::SVal)::Simplifier, clang::ento::SVal>::VisitLocConcreteInt(clang::ento::loc::ConcreteInt)
Line
Count
Source
62
8
  RetTy VisitLoc ## Id(loc::Id V) { DISPATCH(Parent, Parent); }
SimpleSValBuilder.cpp:clang::ento::SValVisitor<(anonymous namespace)::SimpleSValBuilder::simplifySValOnce(llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, clang::ento::SVal)::Simplifier, clang::ento::SVal>::VisitLocGotoLabel(clang::ento::loc::GotoLabel)
Line
Count
Source
62
6
  RetTy VisitLoc ## Id(loc::Id V) { DISPATCH(Parent, Parent); }
SimpleSValBuilder.cpp:clang::ento::SValVisitor<(anonymous namespace)::SimpleSValBuilder::simplifySValOnce(llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, clang::ento::SVal)::Simplifier, clang::ento::SVal>::VisitLocMemRegionVal(clang::ento::loc::MemRegionVal)
Line
Count
Source
62
108k
  RetTy VisitLoc ## Id(loc::Id V) { DISPATCH(Parent, Parent); }
63
#define NONLOC_SVAL(Id, Parent) \
64
550k
  RetTy VisitNonLoc ## Id(nonloc::Id V) { DISPATCH(Parent, Parent); }
Unexecuted instantiation: clang::ento::SValVisitor<clang::ento::SValExplainer, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::VisitNonLocCompoundVal(clang::ento::nonloc::CompoundVal)
Unexecuted instantiation: clang::ento::SValVisitor<clang::ento::SValExplainer, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::VisitNonLocLocAsInteger(clang::ento::nonloc::LocAsInteger)
Unexecuted instantiation: clang::ento::SValVisitor<clang::ento::SValExplainer, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::VisitNonLocPointerToMember(clang::ento::nonloc::PointerToMember)
Unexecuted instantiation: SimpleSValBuilder.cpp:clang::ento::SValVisitor<(anonymous namespace)::SimpleSValBuilder::simplifySValOnce(llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, clang::ento::SVal)::Simplifier, clang::ento::SVal>::VisitNonLocCompoundVal(clang::ento::nonloc::CompoundVal)
SimpleSValBuilder.cpp:clang::ento::SValVisitor<(anonymous namespace)::SimpleSValBuilder::simplifySValOnce(llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, clang::ento::SVal)::Simplifier, clang::ento::SVal>::VisitNonLocConcreteInt(clang::ento::nonloc::ConcreteInt)
Line
Count
Source
64
549k
  RetTy VisitNonLoc ## Id(nonloc::Id V) { DISPATCH(Parent, Parent); }
Unexecuted instantiation: SimpleSValBuilder.cpp:clang::ento::SValVisitor<(anonymous namespace)::SimpleSValBuilder::simplifySValOnce(llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, clang::ento::SVal)::Simplifier, clang::ento::SVal>::VisitNonLocLazyCompoundVal(clang::ento::nonloc::LazyCompoundVal)
SimpleSValBuilder.cpp:clang::ento::SValVisitor<(anonymous namespace)::SimpleSValBuilder::simplifySValOnce(llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, clang::ento::SVal)::Simplifier, clang::ento::SVal>::VisitNonLocLocAsInteger(clang::ento::nonloc::LocAsInteger)
Line
Count
Source
64
253
  RetTy VisitNonLoc ## Id(nonloc::Id V) { DISPATCH(Parent, Parent); }
SimpleSValBuilder.cpp:clang::ento::SValVisitor<(anonymous namespace)::SimpleSValBuilder::simplifySValOnce(llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, clang::ento::SVal)::Simplifier, clang::ento::SVal>::VisitNonLocPointerToMember(clang::ento::nonloc::PointerToMember)
Line
Count
Source
64
10
  RetTy VisitNonLoc ## Id(nonloc::Id V) { DISPATCH(Parent, Parent); }
Unexecuted instantiation: SVals.cpp:clang::ento::SValVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitNonLocPointerToMember(clang::ento::nonloc::PointerToMember)
65
#include "clang/StaticAnalyzer/Core/PathSensitive/SVals.def"
66
67
  // Base case, ignore it. :)
68
4
  RetTy VisitSVal(SVal V) { return RetTy(); }
69
70
#undef DISPATCH
71
};
72
73
/// SymExprVisitor - this class implements a simple visitor for SymExpr
74
/// subclasses.
75
template <typename ImplClass, typename RetTy = void> class SymExprVisitor {
76
public:
77
78
#define DISPATCH(CLASS) \
79
9.64M
    return static_cast<ImplClass *>(this)->Visit ## CLASS(cast<CLASS>(S))
80
81
8.37M
  RetTy Visit(SymbolRef S) {
82
    // Dispatch to VisitSymbolFoo for each SymbolFoo.
83
8.37M
    switch (S->getKind()) {
84
0
#define SYMBOL(Id, Parent) \
85
8.37M
    case SymExpr::Id ## Kind: 
DISPATCH5.01M
(Id);
86
8.37M
#include 
"clang/StaticAnalyzer/Core/PathSensitive/Symbols.def"0
87
8.37M
    }
88
0
    llvm_unreachable("Unknown SymExpr kind!");
89
0
  }
clang::ento::SymExprVisitor<clang::ento::SValExplainer, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::Visit(clang::ento::SymExpr const*)
Line
Count
Source
81
37
  RetTy Visit(SymbolRef S) {
82
    // Dispatch to VisitSymbolFoo for each SymbolFoo.
83
37
    switch (S->getKind()) {
84
0
#define SYMBOL(Id, Parent) \
85
0
    case SymExpr::Id ## Kind: DISPATCH(Id);
86
37
#include 
"clang/StaticAnalyzer/Core/PathSensitive/Symbols.def"0
87
37
    }
88
0
    llvm_unreachable("Unknown SymExpr kind!");
89
0
  }
ExprInspectionChecker.cpp:clang::ento::SymExprVisitor<(anonymous namespace)::SymbolExpressor, llvm::Optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::Visit(clang::ento::SymExpr const*)
Line
Count
Source
81
2.32k
  RetTy Visit(SymbolRef S) {
82
    // Dispatch to VisitSymbolFoo for each SymbolFoo.
83
2.32k
    switch (S->getKind()) {
84
0
#define SYMBOL(Id, Parent) \
85
0
    case SymExpr::Id ## Kind: DISPATCH(Id);
86
2.32k
#include 
"clang/StaticAnalyzer/Core/PathSensitive/Symbols.def"0
87
2.32k
    }
88
0
    llvm_unreachable("Unknown SymExpr kind!");
89
0
  }
RangeConstraintManager.cpp:clang::ento::SymExprVisitor<(anonymous namespace)::SymbolicRangeInferrer, clang::ento::RangeSet>::Visit(clang::ento::SymExpr const*)
Line
Count
Source
81
737k
  RetTy Visit(SymbolRef S) {
82
    // Dispatch to VisitSymbolFoo for each SymbolFoo.
83
737k
    switch (S->getKind()) {
84
0
#define SYMBOL(Id, Parent) \
85
0
    case SymExpr::Id ## Kind: DISPATCH(Id);
86
737k
#include 
"clang/StaticAnalyzer/Core/PathSensitive/Symbols.def"0
87
737k
    }
88
0
    llvm_unreachable("Unknown SymExpr kind!");
89
0
  }
SimpleSValBuilder.cpp:clang::ento::SymExprVisitor<(anonymous namespace)::SimpleSValBuilder::simplifySValOnce(llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, clang::ento::SVal)::Simplifier, clang::ento::SVal>::Visit(clang::ento::SymExpr const*)
Line
Count
Source
81
7.59M
  RetTy Visit(SymbolRef S) {
82
    // Dispatch to VisitSymbolFoo for each SymbolFoo.
83
7.59M
    switch (S->getKind()) {
84
0
#define SYMBOL(Id, Parent) \
85
0
    case SymExpr::Id ## Kind: DISPATCH(Id);
86
7.59M
#include 
"clang/StaticAnalyzer/Core/PathSensitive/Symbols.def"0
87
7.59M
    }
88
0
    llvm_unreachable("Unknown SymExpr kind!");
89
0
  }
SVals.cpp:clang::ento::SymExprVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::Visit(clang::ento::SymExpr const*)
Line
Count
Source
81
40.5k
  RetTy Visit(SymbolRef S) {
82
    // Dispatch to VisitSymbolFoo for each SymbolFoo.
83
40.5k
    switch (S->getKind()) {
84
0
#define SYMBOL(Id, Parent) \
85
0
    case SymExpr::Id ## Kind: DISPATCH(Id);
86
40.5k
#include 
"clang/StaticAnalyzer/Core/PathSensitive/Symbols.def"0
87
40.5k
    }
88
0
    llvm_unreachable("Unknown SymExpr kind!");
89
0
  }
90
91
  // If the implementation chooses not to implement a certain visit method, fall
92
  // back on visiting the superclass.
93
4.62M
#define SYMBOL(Id, Parent) RetTy Visit ## Id(const Id *S) { DISPATCH(Parent); }
Unexecuted instantiation: clang::ento::SymExprVisitor<clang::ento::SValExplainer, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::VisitIntSymExpr(clang::ento::BinarySymExprImpl<llvm::APSInt const&, clang::ento::SymExpr const*, (clang::ento::SymExpr::Kind)1> const*)
Unexecuted instantiation: clang::ento::SymExprVisitor<clang::ento::SValExplainer, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::VisitBinarySymExpr(clang::ento::BinarySymExpr const*)
Unexecuted instantiation: clang::ento::SymExprVisitor<clang::ento::SValExplainer, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::VisitSymbolCast(clang::ento::SymbolCast const*)
Unexecuted instantiation: ExprInspectionChecker.cpp:clang::ento::SymExprVisitor<(anonymous namespace)::SymbolExpressor, llvm::Optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::VisitIntSymExpr(clang::ento::BinarySymExprImpl<llvm::APSInt const&, clang::ento::SymExpr const*, (clang::ento::SymExpr::Kind)1> const*)
Unexecuted instantiation: ExprInspectionChecker.cpp:clang::ento::SymExprVisitor<(anonymous namespace)::SymbolExpressor, llvm::Optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::VisitBinarySymExpr(clang::ento::BinarySymExpr const*)
ExprInspectionChecker.cpp:clang::ento::SymExprVisitor<(anonymous namespace)::SymbolExpressor, llvm::Optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::VisitSymbolConjured(clang::ento::SymbolConjured const*)
Line
Count
Source
93
1.52k
#define SYMBOL(Id, Parent) RetTy Visit ## Id(const Id *S) { DISPATCH(Parent); }
ExprInspectionChecker.cpp:clang::ento::SymExprVisitor<(anonymous namespace)::SymbolExpressor, llvm::Optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::VisitSymbolData(clang::ento::SymbolData const*)
Line
Count
Source
93
1.53k
#define SYMBOL(Id, Parent) RetTy Visit ## Id(const Id *S) { DISPATCH(Parent); }
Unexecuted instantiation: ExprInspectionChecker.cpp:clang::ento::SymExprVisitor<(anonymous namespace)::SymbolExpressor, llvm::Optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::VisitSymbolDerived(clang::ento::SymbolDerived const*)
Unexecuted instantiation: ExprInspectionChecker.cpp:clang::ento::SymExprVisitor<(anonymous namespace)::SymbolExpressor, llvm::Optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::VisitSymbolExtent(clang::ento::SymbolExtent const*)
Unexecuted instantiation: ExprInspectionChecker.cpp:clang::ento::SymExprVisitor<(anonymous namespace)::SymbolExpressor, llvm::Optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::VisitSymbolMetadata(clang::ento::SymbolMetadata const*)
ExprInspectionChecker.cpp:clang::ento::SymExprVisitor<(anonymous namespace)::SymbolExpressor, llvm::Optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >::VisitSymbolRegionValue(clang::ento::SymbolRegionValue const*)
Line
Count
Source
93
10
#define SYMBOL(Id, Parent) RetTy Visit ## Id(const Id *S) { DISPATCH(Parent); }
RangeConstraintManager.cpp:clang::ento::SymExprVisitor<(anonymous namespace)::SymbolicRangeInferrer, clang::ento::RangeSet>::VisitSymbolCast(clang::ento::SymbolCast const*)
Line
Count
Source
93
70
#define SYMBOL(Id, Parent) RetTy Visit ## Id(const Id *S) { DISPATCH(Parent); }
RangeConstraintManager.cpp:clang::ento::SymExprVisitor<(anonymous namespace)::SymbolicRangeInferrer, clang::ento::RangeSet>::VisitSymbolConjured(clang::ento::SymbolConjured const*)
Line
Count
Source
93
84.3k
#define SYMBOL(Id, Parent) RetTy Visit ## Id(const Id *S) { DISPATCH(Parent); }
RangeConstraintManager.cpp:clang::ento::SymExprVisitor<(anonymous namespace)::SymbolicRangeInferrer, clang::ento::RangeSet>::VisitSymbolData(clang::ento::SymbolData const*)
Line
Count
Source
93
446k
#define SYMBOL(Id, Parent) RetTy Visit ## Id(const Id *S) { DISPATCH(Parent); }
RangeConstraintManager.cpp:clang::ento::SymExprVisitor<(anonymous namespace)::SymbolicRangeInferrer, clang::ento::RangeSet>::VisitSymbolDerived(clang::ento::SymbolDerived const*)
Line
Count
Source
93
37.3k
#define SYMBOL(Id, Parent) RetTy Visit ## Id(const Id *S) { DISPATCH(Parent); }
RangeConstraintManager.cpp:clang::ento::SymExprVisitor<(anonymous namespace)::SymbolicRangeInferrer, clang::ento::RangeSet>::VisitSymbolExtent(clang::ento::SymbolExtent const*)
Line
Count
Source
93
23.8k
#define SYMBOL(Id, Parent) RetTy Visit ## Id(const Id *S) { DISPATCH(Parent); }
RangeConstraintManager.cpp:clang::ento::SymExprVisitor<(anonymous namespace)::SymbolicRangeInferrer, clang::ento::RangeSet>::VisitSymbolMetadata(clang::ento::SymbolMetadata const*)
Line
Count
Source
93
2.46k
#define SYMBOL(Id, Parent) RetTy Visit ## Id(const Id *S) { DISPATCH(Parent); }
RangeConstraintManager.cpp:clang::ento::SymExprVisitor<(anonymous namespace)::SymbolicRangeInferrer, clang::ento::RangeSet>::VisitSymbolRegionValue(clang::ento::SymbolRegionValue const*)
Line
Count
Source
93
298k
#define SYMBOL(Id, Parent) RetTy Visit ## Id(const Id *S) { DISPATCH(Parent); }
SimpleSValBuilder.cpp:clang::ento::SymExprVisitor<(anonymous namespace)::SimpleSValBuilder::simplifySValOnce(llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, clang::ento::SVal)::Simplifier, clang::ento::SVal>::VisitSymbolConjured(clang::ento::SymbolConjured const*)
Line
Count
Source
93
214k
#define SYMBOL(Id, Parent) RetTy Visit ## Id(const Id *S) { DISPATCH(Parent); }
SimpleSValBuilder.cpp:clang::ento::SymExprVisitor<(anonymous namespace)::SimpleSValBuilder::simplifySValOnce(llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, clang::ento::SVal)::Simplifier, clang::ento::SVal>::VisitSymbolDerived(clang::ento::SymbolDerived const*)
Line
Count
Source
93
58.2k
#define SYMBOL(Id, Parent) RetTy Visit ## Id(const Id *S) { DISPATCH(Parent); }
SimpleSValBuilder.cpp:clang::ento::SymExprVisitor<(anonymous namespace)::SimpleSValBuilder::simplifySValOnce(llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, clang::ento::SVal)::Simplifier, clang::ento::SVal>::VisitSymbolExtent(clang::ento::SymbolExtent const*)
Line
Count
Source
93
353k
#define SYMBOL(Id, Parent) RetTy Visit ## Id(const Id *S) { DISPATCH(Parent); }
SimpleSValBuilder.cpp:clang::ento::SymExprVisitor<(anonymous namespace)::SimpleSValBuilder::simplifySValOnce(llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, clang::ento::SVal)::Simplifier, clang::ento::SVal>::VisitSymbolMetadata(clang::ento::SymbolMetadata const*)
Line
Count
Source
93
4.86k
#define SYMBOL(Id, Parent) RetTy Visit ## Id(const Id *S) { DISPATCH(Parent); }
SimpleSValBuilder.cpp:clang::ento::SymExprVisitor<(anonymous namespace)::SimpleSValBuilder::simplifySValOnce(llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, clang::ento::SVal)::Simplifier, clang::ento::SVal>::VisitSymbolRegionValue(clang::ento::SymbolRegionValue const*)
Line
Count
Source
93
3.01M
#define SYMBOL(Id, Parent) RetTy Visit ## Id(const Id *S) { DISPATCH(Parent); }
Unexecuted instantiation: SVals.cpp:clang::ento::SymExprVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitUnarySymExpr(clang::ento::UnarySymExpr const*)
Unexecuted instantiation: SVals.cpp:clang::ento::SymExprVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitIntSymExpr(clang::ento::BinarySymExprImpl<llvm::APSInt const&, clang::ento::SymExpr const*, (clang::ento::SymExpr::Kind)1> const*)
SVals.cpp:clang::ento::SymExprVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitBinarySymExpr(clang::ento::BinarySymExpr const*)
Line
Count
Source
93
48
#define SYMBOL(Id, Parent) RetTy Visit ## Id(const Id *S) { DISPATCH(Parent); }
Unexecuted instantiation: SVals.cpp:clang::ento::SymExprVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitSymIntExpr(clang::ento::BinarySymExprImpl<clang::ento::SymExpr const*, llvm::APSInt const&, (clang::ento::SymExpr::Kind)2> const*)
SVals.cpp:clang::ento::SymExprVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitSymSymExpr(clang::ento::BinarySymExprImpl<clang::ento::SymExpr const*, clang::ento::SymExpr const*, (clang::ento::SymExpr::Kind)3> const*)
Line
Count
Source
93
48
#define SYMBOL(Id, Parent) RetTy Visit ## Id(const Id *S) { DISPATCH(Parent); }
SVals.cpp:clang::ento::SymExprVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitSymbolCast(clang::ento::SymbolCast const*)
Line
Count
Source
93
1
#define SYMBOL(Id, Parent) RetTy Visit ## Id(const Id *S) { DISPATCH(Parent); }
SVals.cpp:clang::ento::SymExprVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitSymbolConjured(clang::ento::SymbolConjured const*)
Line
Count
Source
93
7.03k
#define SYMBOL(Id, Parent) RetTy Visit ## Id(const Id *S) { DISPATCH(Parent); }
SVals.cpp:clang::ento::SymExprVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitSymbolData(clang::ento::SymbolData const*)
Line
Count
Source
93
40.4k
#define SYMBOL(Id, Parent) RetTy Visit ## Id(const Id *S) { DISPATCH(Parent); }
SVals.cpp:clang::ento::SymExprVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitSymbolDerived(clang::ento::SymbolDerived const*)
Line
Count
Source
93
890
#define SYMBOL(Id, Parent) RetTy Visit ## Id(const Id *S) { DISPATCH(Parent); }
Unexecuted instantiation: SVals.cpp:clang::ento::SymExprVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitSymbolExtent(clang::ento::SymbolExtent const*)
Unexecuted instantiation: SVals.cpp:clang::ento::SymExprVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitSymbolMetadata(clang::ento::SymbolMetadata const*)
SVals.cpp:clang::ento::SymExprVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitSymbolRegionValue(clang::ento::SymbolRegionValue const*)
Line
Count
Source
93
32.5k
#define SYMBOL(Id, Parent) RetTy Visit ## Id(const Id *S) { DISPATCH(Parent); }
94
#define ABSTRACT_SYMBOL(Id, Parent) SYMBOL(Id, Parent)
95
#include "clang/StaticAnalyzer/Core/PathSensitive/Symbols.def"
96
97
  // Base case, ignore it. :)
98
  RetTy VisitSymExpr(SymbolRef S) { return RetTy(); }
99
100
#undef DISPATCH
101
};
102
103
/// MemRegionVisitor - this class implements a simple visitor for MemRegion
104
/// subclasses.
105
template <typename ImplClass, typename RetTy = void> class MemRegionVisitor {
106
public:
107
108
#define DISPATCH(CLASS) \
109
107k
  return static_cast<ImplClass *>(this)->Visit ## CLASS(cast<CLASS>(R))
110
111
61.4k
  RetTy Visit(const MemRegion *R) {
112
    // Dispatch to VisitFooRegion for each FooRegion.
113
61.4k
    switch (R->getKind()) {
114
61.4k
#define REGION(Id, Parent) case MemRegion::Id ## Kind: 
DISPATCH61.4k
(Id);
115
61.4k
#include 
"clang/StaticAnalyzer/Core/PathSensitive/Regions.def"0
116
61.4k
    }
117
0
    llvm_unreachable("Unknown MemRegion kind!");
118
0
  }
clang::ento::MemRegionVisitor<clang::ento::SValExplainer, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::Visit(clang::ento::MemRegion const*)
Line
Count
Source
111
59
  RetTy Visit(const MemRegion *R) {
112
    // Dispatch to VisitFooRegion for each FooRegion.
113
59
    switch (R->getKind()) {
114
0
#define REGION(Id, Parent) case MemRegion::Id ## Kind: DISPATCH(Id);
115
59
#include 
"clang/StaticAnalyzer/Core/PathSensitive/Regions.def"0
116
59
    }
117
0
    llvm_unreachable("Unknown MemRegion kind!");
118
0
  }
SVals.cpp:clang::ento::MemRegionVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::Visit(clang::ento::MemRegion const*)
Line
Count
Source
111
61.3k
  RetTy Visit(const MemRegion *R) {
112
    // Dispatch to VisitFooRegion for each FooRegion.
113
61.3k
    switch (R->getKind()) {
114
0
#define REGION(Id, Parent) case MemRegion::Id ## Kind: DISPATCH(Id);
115
61.3k
#include 
"clang/StaticAnalyzer/Core/PathSensitive/Regions.def"0
116
61.3k
    }
117
0
    llvm_unreachable("Unknown MemRegion kind!");
118
0
  }
119
120
  // If the implementation chooses not to implement a certain visit method, fall
121
  // back on visiting the superclass.
122
#define REGION(Id, Parent) \
123
46.2k
  RetTy Visit ## Id(const Id *R) { DISPATCH(Parent); }
Unexecuted instantiation: clang::ento::MemRegionVisitor<clang::ento::SValExplainer, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::VisitCodeSpaceRegion(clang::ento::CodeSpaceRegion const*)
Unexecuted instantiation: clang::ento::MemRegionVisitor<clang::ento::SValExplainer, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::VisitMemSpaceRegion(clang::ento::MemSpaceRegion const*)
Unexecuted instantiation: clang::ento::MemRegionVisitor<clang::ento::SValExplainer, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::VisitGlobalImmutableSpaceRegion(clang::ento::GlobalImmutableSpaceRegion const*)
Unexecuted instantiation: clang::ento::MemRegionVisitor<clang::ento::SValExplainer, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::VisitNonStaticGlobalSpaceRegion(clang::ento::NonStaticGlobalSpaceRegion const*)
Unexecuted instantiation: clang::ento::MemRegionVisitor<clang::ento::SValExplainer, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::VisitGlobalsSpaceRegion(clang::ento::GlobalsSpaceRegion const*)
Unexecuted instantiation: clang::ento::MemRegionVisitor<clang::ento::SValExplainer, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::VisitGlobalInternalSpaceRegion(clang::ento::GlobalInternalSpaceRegion const*)
Unexecuted instantiation: clang::ento::MemRegionVisitor<clang::ento::SValExplainer, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::VisitGlobalSystemSpaceRegion(clang::ento::GlobalSystemSpaceRegion const*)
Unexecuted instantiation: clang::ento::MemRegionVisitor<clang::ento::SValExplainer, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::VisitStaticGlobalSpaceRegion(clang::ento::StaticGlobalSpaceRegion const*)
Unexecuted instantiation: clang::ento::MemRegionVisitor<clang::ento::SValExplainer, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::VisitHeapSpaceRegion(clang::ento::HeapSpaceRegion const*)
Unexecuted instantiation: clang::ento::MemRegionVisitor<clang::ento::SValExplainer, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::VisitStackArgumentsSpaceRegion(clang::ento::StackArgumentsSpaceRegion const*)
Unexecuted instantiation: clang::ento::MemRegionVisitor<clang::ento::SValExplainer, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::VisitStackSpaceRegion(clang::ento::StackSpaceRegion const*)
Unexecuted instantiation: clang::ento::MemRegionVisitor<clang::ento::SValExplainer, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::VisitStackLocalsSpaceRegion(clang::ento::StackLocalsSpaceRegion const*)
Unexecuted instantiation: clang::ento::MemRegionVisitor<clang::ento::SValExplainer, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::VisitUnknownSpaceRegion(clang::ento::UnknownSpaceRegion const*)
Unexecuted instantiation: clang::ento::MemRegionVisitor<clang::ento::SValExplainer, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::VisitBlockDataRegion(clang::ento::BlockDataRegion const*)
Unexecuted instantiation: clang::ento::MemRegionVisitor<clang::ento::SValExplainer, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::VisitTypedRegion(clang::ento::TypedRegion const*)
Unexecuted instantiation: clang::ento::MemRegionVisitor<clang::ento::SValExplainer, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::VisitSubRegion(clang::ento::SubRegion const*)
Unexecuted instantiation: clang::ento::MemRegionVisitor<clang::ento::SValExplainer, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::VisitBlockCodeRegion(clang::ento::BlockCodeRegion const*)
Unexecuted instantiation: clang::ento::MemRegionVisitor<clang::ento::SValExplainer, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::VisitCodeTextRegion(clang::ento::CodeTextRegion const*)
Unexecuted instantiation: clang::ento::MemRegionVisitor<clang::ento::SValExplainer, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::VisitFunctionCodeRegion(clang::ento::FunctionCodeRegion const*)
Unexecuted instantiation: clang::ento::MemRegionVisitor<clang::ento::SValExplainer, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::VisitCXXDerivedObjectRegion(clang::ento::CXXDerivedObjectRegion const*)
Unexecuted instantiation: clang::ento::MemRegionVisitor<clang::ento::SValExplainer, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::VisitTypedValueRegion(clang::ento::TypedValueRegion const*)
Unexecuted instantiation: clang::ento::MemRegionVisitor<clang::ento::SValExplainer, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::VisitCXXThisRegion(clang::ento::CXXThisRegion const*)
Unexecuted instantiation: clang::ento::MemRegionVisitor<clang::ento::SValExplainer, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::VisitObjCStringRegion(clang::ento::ObjCStringRegion const*)
Unexecuted instantiation: SVals.cpp:clang::ento::MemRegionVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitCodeSpaceRegion(clang::ento::CodeSpaceRegion const*)
Unexecuted instantiation: SVals.cpp:clang::ento::MemRegionVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitMemSpaceRegion(clang::ento::MemSpaceRegion const*)
Unexecuted instantiation: SVals.cpp:clang::ento::MemRegionVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitGlobalImmutableSpaceRegion(clang::ento::GlobalImmutableSpaceRegion const*)
Unexecuted instantiation: SVals.cpp:clang::ento::MemRegionVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitNonStaticGlobalSpaceRegion(clang::ento::NonStaticGlobalSpaceRegion const*)
Unexecuted instantiation: SVals.cpp:clang::ento::MemRegionVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitGlobalsSpaceRegion(clang::ento::GlobalsSpaceRegion const*)
Unexecuted instantiation: SVals.cpp:clang::ento::MemRegionVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitGlobalInternalSpaceRegion(clang::ento::GlobalInternalSpaceRegion const*)
Unexecuted instantiation: SVals.cpp:clang::ento::MemRegionVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitGlobalSystemSpaceRegion(clang::ento::GlobalSystemSpaceRegion const*)
Unexecuted instantiation: SVals.cpp:clang::ento::MemRegionVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitStaticGlobalSpaceRegion(clang::ento::StaticGlobalSpaceRegion const*)
Unexecuted instantiation: SVals.cpp:clang::ento::MemRegionVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitHeapSpaceRegion(clang::ento::HeapSpaceRegion const*)
Unexecuted instantiation: SVals.cpp:clang::ento::MemRegionVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitStackArgumentsSpaceRegion(clang::ento::StackArgumentsSpaceRegion const*)
Unexecuted instantiation: SVals.cpp:clang::ento::MemRegionVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitStackSpaceRegion(clang::ento::StackSpaceRegion const*)
Unexecuted instantiation: SVals.cpp:clang::ento::MemRegionVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitStackLocalsSpaceRegion(clang::ento::StackLocalsSpaceRegion const*)
Unexecuted instantiation: SVals.cpp:clang::ento::MemRegionVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitUnknownSpaceRegion(clang::ento::UnknownSpaceRegion const*)
SVals.cpp:clang::ento::MemRegionVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitAllocaRegion(clang::ento::AllocaRegion const*)
Line
Count
Source
123
32
  RetTy Visit ## Id(const Id *R) { DISPATCH(Parent); }
SVals.cpp:clang::ento::MemRegionVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitSubRegion(clang::ento::SubRegion const*)
Line
Count
Source
123
32
  RetTy Visit ## Id(const Id *R) { DISPATCH(Parent); }
Unexecuted instantiation: SVals.cpp:clang::ento::MemRegionVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitBlockDataRegion(clang::ento::BlockDataRegion const*)
Unexecuted instantiation: SVals.cpp:clang::ento::MemRegionVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitBlockCodeRegion(clang::ento::BlockCodeRegion const*)
SVals.cpp:clang::ento::MemRegionVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitCodeTextRegion(clang::ento::CodeTextRegion const*)
Line
Count
Source
123
154
  RetTy Visit ## Id(const Id *R) { DISPATCH(Parent); }
SVals.cpp:clang::ento::MemRegionVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitFunctionCodeRegion(clang::ento::FunctionCodeRegion const*)
Line
Count
Source
123
154
  RetTy Visit ## Id(const Id *R) { DISPATCH(Parent); }
Unexecuted instantiation: SVals.cpp:clang::ento::MemRegionVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitCompoundLiteralRegion(clang::ento::CompoundLiteralRegion const*)
SVals.cpp:clang::ento::MemRegionVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitTypedValueRegion(clang::ento::TypedValueRegion const*)
Line
Count
Source
123
20.8k
  RetTy Visit ## Id(const Id *R) { DISPATCH(Parent); }
SVals.cpp:clang::ento::MemRegionVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitCXXBaseObjectRegion(clang::ento::CXXBaseObjectRegion const*)
Line
Count
Source
123
60
  RetTy Visit ## Id(const Id *R) { DISPATCH(Parent); }
SVals.cpp:clang::ento::MemRegionVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitCXXDerivedObjectRegion(clang::ento::CXXDerivedObjectRegion const*)
Line
Count
Source
123
240
  RetTy Visit ## Id(const Id *R) { DISPATCH(Parent); }
SVals.cpp:clang::ento::MemRegionVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitCXXTempObjectRegion(clang::ento::CXXTempObjectRegion const*)
Line
Count
Source
123
444
  RetTy Visit ## Id(const Id *R) { DISPATCH(Parent); }
Unexecuted instantiation: SVals.cpp:clang::ento::MemRegionVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitCXXThisRegion(clang::ento::CXXThisRegion const*)
SVals.cpp:clang::ento::MemRegionVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitFieldRegion(clang::ento::FieldRegion const*)
Line
Count
Source
123
260
  RetTy Visit ## Id(const Id *R) { DISPATCH(Parent); }
SVals.cpp:clang::ento::MemRegionVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitDeclRegion(clang::ento::DeclRegion const*)
Line
Count
Source
123
2.23k
  RetTy Visit ## Id(const Id *R) { DISPATCH(Parent); }
SVals.cpp:clang::ento::MemRegionVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitObjCIvarRegion(clang::ento::ObjCIvarRegion const*)
Line
Count
Source
123
8
  RetTy Visit ## Id(const Id *R) { DISPATCH(Parent); }
SVals.cpp:clang::ento::MemRegionVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitNonParamVarRegion(clang::ento::NonParamVarRegion const*)
Line
Count
Source
123
1.92k
  RetTy Visit ## Id(const Id *R) { DISPATCH(Parent); }
SVals.cpp:clang::ento::MemRegionVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitVarRegion(clang::ento::VarRegion const*)
Line
Count
Source
123
1.97k
  RetTy Visit ## Id(const Id *R) { DISPATCH(Parent); }
SVals.cpp:clang::ento::MemRegionVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitParamVarRegion(clang::ento::ParamVarRegion const*)
Line
Count
Source
123
50
  RetTy Visit ## Id(const Id *R) { DISPATCH(Parent); }
SVals.cpp:clang::ento::MemRegionVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitElementRegion(clang::ento::ElementRegion const*)
Line
Count
Source
123
17.8k
  RetTy Visit ## Id(const Id *R) { DISPATCH(Parent); }
SVals.cpp:clang::ento::MemRegionVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitObjCStringRegion(clang::ento::ObjCStringRegion const*)
Line
Count
Source
123
2
  RetTy Visit ## Id(const Id *R) { DISPATCH(Parent); }
Unexecuted instantiation: SVals.cpp:clang::ento::MemRegionVisitor<(anonymous namespace)::TypeRetrievingVisitor, clang::QualType>::VisitStringRegion(clang::ento::StringRegion const*)
124
#define ABSTRACT_REGION(Id, Parent) \
125
  REGION(Id, Parent)
126
#include "clang/StaticAnalyzer/Core/PathSensitive/Regions.def"
127
128
  // Base case, ignore it. :)
129
32
  RetTy VisitMemRegion(const MemRegion *R) { return RetTy(); }
130
131
#undef DISPATCH
132
};
133
134
/// FullSValVisitor - a convenient mixed visitor for all three:
135
/// SVal, SymExpr and MemRegion subclasses.
136
template <typename ImplClass, typename RetTy = void>
137
class FullSValVisitor : public SValVisitor<ImplClass, RetTy>,
138
                        public SymExprVisitor<ImplClass, RetTy>,
139
                        public MemRegionVisitor<ImplClass, RetTy> {
140
public:
141
  using SValVisitor<ImplClass, RetTy>::Visit;
142
  using SymExprVisitor<ImplClass, RetTy>::Visit;
143
  using MemRegionVisitor<ImplClass, RetTy>::Visit;
144
};
145
146
} // end namespace ento
147
148
} // end namespace clang
149
150
#endif