clang 20.0.0 (based on r547379) from build 12806354. Bug: http://b/379133546 Test: N/A Change-Id: I2eb8938af55d809de674be63cb30cf27e801862b Upstream-Commit: ad834e67b1105d15ef907f6255d4c96e8e733f57
73 lines
2.3 KiB
C++
73 lines
2.3 KiB
C++
//===-- SVals.def - Metadata about SVal kinds -------------------*- C++ -*-===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// The list of symbolic values (SVal kinds) used in the Static Analyzer.
|
|
// The distinction between `loc::` and `nonloc::` SVal namespaces is
|
|
// currently hardcoded, because it is too peculiar and explicit to be handled
|
|
// uniformly. In order to use this information, users of this file must define
|
|
// one or more of the following macros:
|
|
//
|
|
// BASIC_SVAL(Id, Parent) - for specific SVal kinds, which are
|
|
// neither in `loc::` nor in `nonloc::` namespace.
|
|
//
|
|
// ABSTRACT_SVAL(Id, Parent) - for abstract SVal classes which are
|
|
// neither in `loc::` nor in `nonloc::` namespace,
|
|
//
|
|
// LOC_SVAL(Id, Parent) - for values in `loc::` namespace.
|
|
//
|
|
// NONLOC_SVAL(Id, Parent) - for values in `nonloc::` namespace.
|
|
//
|
|
// SVAL_RANGE(Id, First, Last) - for defining range of subtypes of
|
|
// the abstract class `Id`.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef BASIC_SVAL
|
|
#define BASIC_SVAL(Id, Parent)
|
|
#endif
|
|
|
|
#ifndef ABSTRACT_SVAL
|
|
#define ABSTRACT_SVAL(Id, Parent)
|
|
#endif
|
|
|
|
#ifndef LOC_SVAL
|
|
#define LOC_SVAL(Id, Parent)
|
|
#endif
|
|
|
|
#ifndef NONLOC_SVAL
|
|
#define NONLOC_SVAL(Id, Parent)
|
|
#endif
|
|
|
|
#ifndef SVAL_RANGE
|
|
#define SVAL_RANGE(Id, First, Last)
|
|
#endif
|
|
|
|
BASIC_SVAL(UndefinedVal, SVal)
|
|
ABSTRACT_SVAL(DefinedOrUnknownSVal, SVal)
|
|
BASIC_SVAL(UnknownVal, DefinedOrUnknownSVal)
|
|
ABSTRACT_SVAL(DefinedSVal, DefinedOrUnknownSVal)
|
|
ABSTRACT_SVAL(Loc, DefinedSVal)
|
|
LOC_SVAL(ConcreteInt, Loc)
|
|
LOC_SVAL(GotoLabel, Loc)
|
|
LOC_SVAL(MemRegionVal, Loc)
|
|
SVAL_RANGE(Loc, ConcreteInt, MemRegionVal)
|
|
ABSTRACT_SVAL(NonLoc, DefinedSVal)
|
|
NONLOC_SVAL(CompoundVal, NonLoc)
|
|
NONLOC_SVAL(ConcreteInt, NonLoc)
|
|
NONLOC_SVAL(LazyCompoundVal, NonLoc)
|
|
NONLOC_SVAL(LocAsInteger, NonLoc)
|
|
NONLOC_SVAL(SymbolVal, NonLoc)
|
|
NONLOC_SVAL(PointerToMember, NonLoc)
|
|
SVAL_RANGE(NonLoc, CompoundVal, PointerToMember)
|
|
|
|
#undef SVAL_RANGE
|
|
#undef NONLOC_SVAL
|
|
#undef LOC_SVAL
|
|
#undef ABSTRACT_SVAL
|
|
#undef BASIC_SVAL
|