Back to home page

EIC code displayed by LXR

 
 

    


Warning, /include/clang/StaticAnalyzer/Core/PathSensitive/SVals.def is written in an unsupported language. File is not indexed.

0001 //===-- SVals.def - Metadata about SVal kinds -------------------*- C++ -*-===//
0002 //
0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
0004 // See https://llvm.org/LICENSE.txt for license information.
0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
0006 //
0007 //===----------------------------------------------------------------------===//
0008 //
0009 // The list of symbolic values (SVal kinds) used in the Static Analyzer.
0010 // The distinction between `loc::` and `nonloc::` SVal namespaces is
0011 // currently hardcoded, because it is too peculiar and explicit to be handled
0012 // uniformly. In order to use this information, users of this file must define
0013 // one or more of the following macros:
0014 //
0015 // BASIC_SVAL(Id, Parent) - for specific SVal kinds, which are
0016 // neither in `loc::` nor in `nonloc::` namespace.
0017 //
0018 // ABSTRACT_SVAL(Id, Parent) - for abstract SVal classes which are
0019 // neither in `loc::` nor in `nonloc::` namespace,
0020 //
0021 // LOC_SVAL(Id, Parent) - for values in `loc::` namespace.
0022 //
0023 // NONLOC_SVAL(Id, Parent) - for values in `nonloc::` namespace.
0024 //
0025 // SVAL_RANGE(Id, First, Last) - for defining range of subtypes of
0026 // the abstract class `Id`.
0027 //
0028 //===----------------------------------------------------------------------===//
0029 
0030 #ifndef BASIC_SVAL
0031 #define BASIC_SVAL(Id, Parent)
0032 #endif
0033 
0034 #ifndef ABSTRACT_SVAL
0035 #define ABSTRACT_SVAL(Id, Parent)
0036 #endif
0037 
0038 #ifndef LOC_SVAL
0039 #define LOC_SVAL(Id, Parent)
0040 #endif
0041 
0042 #ifndef NONLOC_SVAL
0043 #define NONLOC_SVAL(Id, Parent)
0044 #endif
0045 
0046 #ifndef SVAL_RANGE
0047 #define SVAL_RANGE(Id, First, Last)
0048 #endif
0049 
0050 BASIC_SVAL(UndefinedVal, SVal)
0051 ABSTRACT_SVAL(DefinedOrUnknownSVal, SVal)
0052   BASIC_SVAL(UnknownVal, DefinedOrUnknownSVal)
0053   ABSTRACT_SVAL(DefinedSVal, DefinedOrUnknownSVal)
0054     ABSTRACT_SVAL(Loc, DefinedSVal)
0055       LOC_SVAL(ConcreteInt, Loc)
0056       LOC_SVAL(GotoLabel, Loc)
0057       LOC_SVAL(MemRegionVal, Loc)
0058       SVAL_RANGE(Loc, ConcreteInt, MemRegionVal)
0059     ABSTRACT_SVAL(NonLoc, DefinedSVal)
0060       NONLOC_SVAL(CompoundVal, NonLoc)
0061       NONLOC_SVAL(ConcreteInt, NonLoc)
0062       NONLOC_SVAL(LazyCompoundVal, NonLoc)
0063       NONLOC_SVAL(LocAsInteger, NonLoc)
0064       NONLOC_SVAL(SymbolVal, NonLoc)
0065       NONLOC_SVAL(PointerToMember, NonLoc)
0066       SVAL_RANGE(NonLoc, CompoundVal, PointerToMember)
0067 
0068 #undef SVAL_RANGE
0069 #undef NONLOC_SVAL
0070 #undef LOC_SVAL
0071 #undef ABSTRACT_SVAL
0072 #undef BASIC_SVAL