diff options
| author | Ted Kremenek <kremenek@apple.com> | 2008-02-21 18:02:17 +0000 |
|---|---|---|
| committer | Ted Kremenek <kremenek@apple.com> | 2008-02-21 18:02:17 +0000 |
| commit | 7f0639b0395b216d89b0ebbf2d24731dca4183af (patch) | |
| tree | 924cdb5f28832c042200e726352dcba817e60c22 /clang/Analysis/GRTransferFuncs.cpp | |
| parent | a243311f1d799019a55eae2ad02aa1352b8a6a35 (diff) | |
| download | bcm5719-llvm-7f0639b0395b216d89b0ebbf2d24731dca4183af.tar.gz bcm5719-llvm-7f0639b0395b216d89b0ebbf2d24731dca4183af.zip | |
Major cleanup of path-sensitive analysis engine and the current analysis
based on constant. prop. and limited symbolics.
- Renamed class: RValue -> RVal, LValue -> LVal, etc.
- Minor method renamings and interface cleanups.
- Tightened the RVal "type system" so that UninitializedVal and UnknownVal
cannot be cast to LVal or NonLVal. This forces these corner cases values
to be explicitly handled early before being dispatched to plug-in transfer
function logic.
- Major cleanup in the transfer function logic for binary and unary operators.
Still fixing some regressions, but we now explicitly handle Uninitialized
and Unknown values in a more rigorous way.
llvm-svn: 47441
Diffstat (limited to 'clang/Analysis/GRTransferFuncs.cpp')
| -rw-r--r-- | clang/Analysis/GRTransferFuncs.cpp | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/clang/Analysis/GRTransferFuncs.cpp b/clang/Analysis/GRTransferFuncs.cpp index 3716ed96910..29d6216b717 100644 --- a/clang/Analysis/GRTransferFuncs.cpp +++ b/clang/Analysis/GRTransferFuncs.cpp @@ -20,21 +20,21 @@ using namespace clang; // Transfer function for Casts. //===----------------------------------------------------------------------===// -RValue GRTransferFuncs::EvalCast(ValueManager& ValMgr, RValue X, - Expr* CastExpr) { +RVal GRTransferFuncs::EvalCast(ValueManager& ValMgr, RVal X, Expr* CastExpr) { switch (X.getBaseKind()) { + default: - assert(false && "Invalid RValue."); break; + assert(false && "Invalid RVal."); break; - case RValue::LValueKind: - return EvalCast(ValMgr, cast<LValue>(X), CastExpr); + case RVal::LValKind: + return EvalCast(ValMgr, cast<LVal>(X), CastExpr); - case RValue::NonLValueKind: - return EvalCast(ValMgr, cast<NonLValue>(X), CastExpr); + case RVal::NonLValKind: + return EvalCast(ValMgr, cast<NonLVal>(X), CastExpr); - case RValue::UninitializedKind: - case RValue::UnknownKind: break; + case RVal::UninitializedKind: + case RVal::UnknownKind: break; } return X; |

