summaryrefslogtreecommitdiffstats
path: root/clang/lib/Analysis/CheckNSError.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/Analysis/CheckNSError.cpp')
-rw-r--r--clang/lib/Analysis/CheckNSError.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/clang/lib/Analysis/CheckNSError.cpp b/clang/lib/Analysis/CheckNSError.cpp
index 38d32a731dd..f76b601e2d5 100644
--- a/clang/lib/Analysis/CheckNSError.cpp
+++ b/clang/lib/Analysis/CheckNSError.cpp
@@ -216,7 +216,11 @@ void NSErrorCheck::CheckParamDeref(VarDecl* Param, GRStateRef rootState,
GRExprEngine& Eng, GRBugReporter& BR,
bool isNSErrorWarning) {
- SVal ParamSVal = rootState.GetLValue(Param);
+ SVal ParamL = rootState.GetLValue(Param);
+ const MemRegion* ParamR = cast<loc::MemRegionVal>(ParamL).getRegionAs<VarRegion>();
+ assert (ParamR && "Parameters always have VarRegions.");
+ SVal ParamSVal = rootState.GetSVal(ParamR);
+
// FIXME: For now assume that ParamSVal is symbolic. We need to generalize
// this later.
OpenPOWER on IntegriCloud