mirror of
https://github.com/llvm/llvm-project.git
synced 2025-05-16 23:56:05 +00:00

Zhongxing and I discussed by email. Main changes: - Removed SymIntConstraintVal and SymIntConstraint - Added SymExpr as a parent class to SymbolData, SymSymExpr, SymIntExpr - Added nonloc::SymExprVal to wrap SymExpr - SymbolRef is now just a typedef of 'const SymbolData*' - Bunch of minor code cleanups in how some methods were invoked (no functionality change) This changes are part of a long-term plan to have full symbolic expression trees. This will be useful for lazily evaluating complicated expressions. llvm-svn: 67731
29 lines
1.1 KiB
C++
29 lines
1.1 KiB
C++
//== GRTransferFuncs.cpp - Path-Sens. Transfer Functions Interface -*- C++ -*--=
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This file defines GRTransferFuncs, which provides a base-class that
|
|
// defines an interface for transfer functions used by GRExprEngine.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "clang/Analysis/PathSensitive/GRTransferFuncs.h"
|
|
#include "clang/Analysis/PathSensitive/GRExprEngine.h"
|
|
|
|
using namespace clang;
|
|
|
|
void GRTransferFuncs::EvalBinOpNN(GRStateSet& OStates,
|
|
GRExprEngine& Eng,
|
|
const GRState *St, Expr* Ex,
|
|
BinaryOperator::Opcode Op,
|
|
NonLoc L, NonLoc R, QualType T) {
|
|
|
|
OStates.Add(Eng.getStateManager().BindExpr(St, Ex,
|
|
DetermEvalBinOpNN(Eng, Op, L, R, T)));
|
|
}
|