forked from OSchip/llvm-project
parent
5619f91bf7
commit
0c34c1a25f
|
@ -222,8 +222,8 @@ public:
|
||||||
/// \param E the expression that caused the invalidation.
|
/// \param E the expression that caused the invalidation.
|
||||||
/// \param BlockCount The number of times the current basic block has been
|
/// \param BlockCount The number of times the current basic block has been
|
||||||
// visited.
|
// visited.
|
||||||
/// \param CausedByPointerEscape the flag is set to true when
|
/// \param CausesPointerEscape the flag is set to true when
|
||||||
/// the invalidation is due to escape of a symbol (representing a
|
/// the invalidation entails escape of a symbol (representing a
|
||||||
/// pointer). For example, due to it being passed as an argument in a
|
/// pointer). For example, due to it being passed as an argument in a
|
||||||
/// call.
|
/// call.
|
||||||
/// \param IS the set of invalidated symbols.
|
/// \param IS the set of invalidated symbols.
|
||||||
|
@ -232,7 +232,7 @@ public:
|
||||||
ProgramStateRef invalidateRegions(ArrayRef<const MemRegion *> Regions,
|
ProgramStateRef invalidateRegions(ArrayRef<const MemRegion *> Regions,
|
||||||
const Expr *E, unsigned BlockCount,
|
const Expr *E, unsigned BlockCount,
|
||||||
const LocationContext *LCtx,
|
const LocationContext *LCtx,
|
||||||
bool CausedByPointerEscape,
|
bool CausesPointerEscape,
|
||||||
InvalidatedSymbols *IS = 0,
|
InvalidatedSymbols *IS = 0,
|
||||||
const CallEvent *Call = 0) const;
|
const CallEvent *Call = 0) const;
|
||||||
|
|
||||||
|
|
|
@ -817,7 +817,7 @@ ProgramStateRef CStringChecker::InvalidateBuffer(CheckerContext &C,
|
||||||
// Invalidate this region.
|
// Invalidate this region.
|
||||||
const LocationContext *LCtx = C.getPredecessor()->getLocationContext();
|
const LocationContext *LCtx = C.getPredecessor()->getLocationContext();
|
||||||
return state->invalidateRegions(R, E, C.blockCount(), LCtx,
|
return state->invalidateRegions(R, E, C.blockCount(), LCtx,
|
||||||
/*CausedByPointerEscape*/ false);
|
/*CausesPointerEscape*/ false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// If we have a non-region value by chance, just remove the binding.
|
// If we have a non-region value by chance, just remove the binding.
|
||||||
|
|
|
@ -3175,7 +3175,7 @@ bool RetainCountChecker::evalCall(const CallExpr *CE, CheckerContext &C) const {
|
||||||
|
|
||||||
// Invalidate the argument region.
|
// Invalidate the argument region.
|
||||||
state = state->invalidateRegions(ArgRegion, CE, C.blockCount(), LCtx,
|
state = state->invalidateRegions(ArgRegion, CE, C.blockCount(), LCtx,
|
||||||
/*CausedByPointerEscape*/ false);
|
/*CausesPointerEscape*/ false);
|
||||||
|
|
||||||
// Restore the refcount status of the argument.
|
// Restore the refcount status of the argument.
|
||||||
if (Binding)
|
if (Binding)
|
||||||
|
|
Loading…
Reference in New Issue