Blame | Last modification | View Log | Download | RSS feed
//===-- Symbols.def - Metadata about SymExpr 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 symbols (SymExpr sub-classes) used in the Static Analyzer.// In order to use this information, users of this file must define// one or more of the three macros://// SYMBOL(Id, Parent) - for specific SymExpr sub-classes, reserving the// IdKind identifier for its kind enumeration value.//// ABSTRACT_SYMBOL(Id, Parent) - for abstract symbol classes,//// SYMBOL_RANGE(Id, First, Last) - for ranges of kind-enums,// allowing to determine abstract class of a symbol// based on the kind enumeration value.////===----------------------------------------------------------------------===//#ifndef SYMBOL#define SYMBOL(Id, Parent)#endif#ifndef ABSTRACT_SYMBOL#define ABSTRACT_SYMBOL(Id, Parent)#endif#ifndef SYMBOL_RANGE#define SYMBOL_RANGE(Id, First, Last)#endifSYMBOL(UnarySymExpr, SymExpr)ABSTRACT_SYMBOL(BinarySymExpr, SymExpr)SYMBOL(IntSymExpr, BinarySymExpr)SYMBOL(SymIntExpr, BinarySymExpr)SYMBOL(SymSymExpr, BinarySymExpr)SYMBOL_RANGE(BINARYSYMEXPRS, IntSymExprKind, SymSymExprKind)SYMBOL(SymbolCast, SymExpr)ABSTRACT_SYMBOL(SymbolData, SymExpr)SYMBOL(SymbolConjured, SymbolData)SYMBOL(SymbolDerived, SymbolData)SYMBOL(SymbolExtent, SymbolData)SYMBOL(SymbolMetadata, SymbolData)SYMBOL(SymbolRegionValue, SymbolData)SYMBOL_RANGE(SYMBOLS, SymbolConjuredKind, SymbolRegionValueKind)#undef SYMBOL#undef ABSTRACT_SYMBOL#undef SYMBOL_RANGE