Coverage Report

Created: 2019-07-24 05:18

/Users/buildslave/jenkins/workspace/clang-stage2-coverage-R/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.def
Line
Count
Source (jump to first uncovered line)
1
1
//===-- SVals.def - Metadata about SVal kinds -------------------*- C++ -*-===//
2
1
//
3
1
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
1
// See https://llvm.org/LICENSE.txt for license information.
5
1
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
1
//
7
1
//===----------------------------------------------------------------------===//
8
1
//
9
1
// The list of symbolic values (SVal kinds and sub-kinds) used in the Static
10
1
// Analyzer. The distinction between loc:: and nonloc:: SVal namespaces is
11
1
// currently hardcoded, because it is too peculiar and explicit to be handled
12
1
// uniformly. In order to use this information, users of this file must define
13
1
// one or more of the following macros:
14
1
//
15
1
// BASIC_SVAL(Id, Parent) - for specific SVal sub-kinds, which are
16
1
// neither in loc:: nor in nonloc:: namespace; these classes occupy
17
1
// their own base kind IdKind.
18
1
//
19
1
// ABSTRACT_SVAL(Id, Parent) - for abstract SVal classes which are
20
1
// neither in loc:: nor in nonloc:: namespace,
21
1
//
22
1
// ABSTRACT_SVAL_WITH_KIND(Id, Parent) - for SVal classes which are also
23
1
// neither in loc:: nor in nonloc:: namespace, but occupy a whole base kind
24
1
// identifier IdKind, much like BASIC_SVALs.
25
1
//
26
1
// LOC_SVAL(Id, Parent) - for values in loc:: namespace, which occupy a sub-kind
27
1
// loc::IdKind.
28
1
//
29
1
// NONLOC_SVAL(Id, Parent) - for values in nonloc:: namespace, which occupy a
30
1
// sub-kind nonloc::IdKind.
31
1
//
32
1
//===----------------------------------------------------------------------===//
33
1
34
#ifndef BASIC_SVAL
35
#define BASIC_SVAL(Id, Parent)
36
#endif
37
38
1
#ifndef ABSTRACT_SVAL
39
1
#define ABSTRACT_SVAL(Id, Parent)
40
1
#endif
41
1
42
1
#ifndef ABSTRACT_SVAL_WITH_KIND
43
1
#define ABSTRACT_SVAL_WITH_KIND(Id, Parent) ABSTRACT_SVAL(Id, Parent)
44
1
#endif
45
1
46
1
#ifndef LOC_SVAL
47
1
#define LOC_SVAL(Id, Parent)
48
1
#endif
49
1
50
1
#ifndef NONLOC_SVAL
51
1
#define NONLOC_SVAL(Id, Parent)
52
1
#endif
53
1
54
1
BASIC_SVAL(UndefinedVal, SVal)
55
1
ABSTRACT_SVAL(DefinedOrUnknownSVal, SVal)
56
7
  BASIC_SVAL(UnknownVal, DefinedOrUnknownSVal)
57
7
  ABSTRACT_SVAL(DefinedSVal, DefinedOrUnknownSVal)
58
7
    ABSTRACT_SVAL_WITH_KIND(Loc, DefinedSVal)
59
7
      
LOC_SVAL2
(ConcreteInt, Loc)
60
7
      
LOC_SVAL0
(GotoLabel, Loc)
61
23
      LOC_SVAL(MemRegionVal, Loc)
62
7
    ABSTRACT_SVAL_WITH_KIND(NonLoc, DefinedSVal)
63
7
      
NONLOC_SVAL0
(CompoundVal, NonLoc)
64
72.5k
      NONLOC_SVAL(ConcreteInt, NonLoc)
65
7
      
NONLOC_SVAL2
(LazyCompoundVal, NonLoc)
66
7
      
NONLOC_SVAL3
(LocAsInteger, NonLoc)
67
65.5k
      NONLOC_SVAL(SymbolVal, NonLoc)
68
7
      
NONLOC_SVAL0
(PointerToMember, NonLoc)
69
7
70
7
#undef NONLOC_SVAL
71
7
#undef LOC_SVAL
72
7
#undef ABSTRACT_SVAL_WITH_KIND
73
7
#undef ABSTRACT_SVAL
74
7
#undef BASIC_SVAL