[cfe-commits] r110784 - in /cfe/trunk: include/clang/Checker/PathSensitive/ lib/Checker/
Zhongxing Xu
xuzhongxing at gmail.com
Tue Aug 10 23:10:55 PDT 2010
Author: zhongxingxu
Date: Wed Aug 11 01:10:55 2010
New Revision: 110784
URL: http://llvm.org/viewvc/llvm-project?rev=110784&view=rev
Log:
MemRegion can refer to ASTContext without external help.
Modified:
cfe/trunk/include/clang/Checker/PathSensitive/MemRegion.h
cfe/trunk/lib/Checker/AdjustedReturnValueChecker.cpp
cfe/trunk/lib/Checker/ArrayBoundChecker.cpp
cfe/trunk/lib/Checker/BasicObjCFoundationChecks.cpp
cfe/trunk/lib/Checker/BasicStore.cpp
cfe/trunk/lib/Checker/BugReporterVisitors.cpp
cfe/trunk/lib/Checker/CStringChecker.cpp
cfe/trunk/lib/Checker/CallAndMessageChecker.cpp
cfe/trunk/lib/Checker/FlatStore.cpp
cfe/trunk/lib/Checker/GRExprEngine.cpp
cfe/trunk/lib/Checker/GRState.cpp
cfe/trunk/lib/Checker/MemRegion.cpp
cfe/trunk/lib/Checker/OSAtomicChecker.cpp
cfe/trunk/lib/Checker/RegionStore.cpp
cfe/trunk/lib/Checker/ReturnPointerRangeChecker.cpp
cfe/trunk/lib/Checker/Store.cpp
cfe/trunk/lib/Checker/SymbolManager.cpp
cfe/trunk/lib/Checker/ValueManager.cpp
Modified: cfe/trunk/include/clang/Checker/PathSensitive/MemRegion.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Checker/PathSensitive/MemRegion.h?rev=110784&r1=110783&r2=110784&view=diff
==============================================================================
--- cfe/trunk/include/clang/Checker/PathSensitive/MemRegion.h (original)
+++ cfe/trunk/include/clang/Checker/PathSensitive/MemRegion.h Wed Aug 11 01:10:55 2010
@@ -349,24 +349,24 @@
TypedRegion(const MemRegion* sReg, Kind k) : SubRegion(sReg, k) {}
public:
- virtual QualType getValueType(ASTContext &C) const = 0;
+ virtual QualType getValueType() const = 0;
- virtual QualType getLocationType(ASTContext& C) const {
+ virtual QualType getLocationType() const {
// FIXME: We can possibly optimize this later to cache this value.
- return C.getPointerType(getValueType(C));
+ return getContext().getPointerType(getValueType());
}
- QualType getDesugaredValueType(ASTContext& C) const {
- QualType T = getValueType(C);
+ QualType getDesugaredValueType() const {
+ QualType T = getValueType();
return T.getTypePtr() ? T.getDesugaredType() : T;
}
- QualType getDesugaredLocationType(ASTContext& C) const {
- return getLocationType(C).getDesugaredType();
+ QualType getDesugaredLocationType() const {
+ return getLocationType().getDesugaredType();
}
bool isBoundable() const {
- return !getValueType(getContext()).isNull();
+ return !getValueType().isNull();
}
static bool classof(const MemRegion* R) {
@@ -380,9 +380,8 @@
protected:
CodeTextRegion(const MemRegion *sreg, Kind k) : TypedRegion(sreg, k) {}
public:
- QualType getValueType(ASTContext &C) const {
- // Do not get the object type of a CodeTextRegion.
- assert(0);
+ QualType getValueType() const {
+ assert(0 && "Do not get the object type of a CodeTextRegion.");
return QualType();
}
@@ -401,8 +400,8 @@
FunctionTextRegion(const FunctionDecl* fd, const MemRegion* sreg)
: CodeTextRegion(sreg, FunctionTextRegionKind), FD(fd) {}
- QualType getLocationType(ASTContext &C) const {
- return C.getPointerType(FD->getType());
+ QualType getLocationType() const {
+ return getContext().getPointerType(FD->getType());
}
const FunctionDecl *getDecl() const {
@@ -440,7 +439,7 @@
: CodeTextRegion(sreg, BlockTextRegionKind), BD(bd), AC(ac), locTy(lTy) {}
public:
- QualType getLocationType(ASTContext &C) const {
+ QualType getLocationType() const {
return locTy;
}
@@ -577,7 +576,7 @@
const StringLiteral* getStringLiteral() const { return Str; }
- QualType getValueType(ASTContext& C) const {
+ QualType getValueType() const {
return Str->getType();
}
@@ -611,8 +610,8 @@
const CompoundLiteralExpr* CL,
const MemRegion* superRegion);
public:
- QualType getValueType(ASTContext& C) const {
- return C.getCanonicalType(CL->getType());
+ QualType getValueType() const {
+ return CL->getType();
}
bool isBoundable() const { return !CL->isFileScope(); }
@@ -669,9 +668,9 @@
const StackFrameContext *getStackFrame() const;
- QualType getValueType(ASTContext& C) const {
+ QualType getValueType() const {
// FIXME: We can cache this if needed.
- return C.getCanonicalType(getDecl()->getType());
+ return getDecl()->getType();
}
void dumpToStream(llvm::raw_ostream& os) const;
@@ -697,7 +696,7 @@
void Profile(llvm::FoldingSetNodeID &ID) const;
public:
- QualType getValueType(ASTContext &C) const {
+ QualType getValueType() const {
return QualType(ThisPointerTy, 0);
}
@@ -723,9 +722,9 @@
const FieldDecl* getDecl() const { return cast<FieldDecl>(D); }
- QualType getValueType(ASTContext& C) const {
+ QualType getValueType() const {
// FIXME: We can cache this if needed.
- return C.getCanonicalType(getDecl()->getType());
+ return getDecl()->getType();
}
DefinedOrUnknownSVal getExtent(ValueManager& ValMgr) const;
@@ -754,7 +753,7 @@
public:
const ObjCIvarDecl* getDecl() const { return cast<ObjCIvarDecl>(D); }
- QualType getValueType(ASTContext&) const { return getDecl()->getType(); }
+ QualType getValueType() const { return getDecl()->getType(); }
void dumpToStream(llvm::raw_ostream& os) const;
@@ -808,7 +807,7 @@
SVal getIndex() const { return Index; }
- QualType getValueType(ASTContext&) const {
+ QualType getValueType() const {
return ElementType;
}
@@ -840,7 +839,7 @@
Expr const *E, const MemRegion *sReg);
public:
- QualType getValueType(ASTContext& C) const {
+ QualType getValueType() const {
return Ex->getType();
}
Modified: cfe/trunk/lib/Checker/AdjustedReturnValueChecker.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Checker/AdjustedReturnValueChecker.cpp?rev=110784&r1=110783&r2=110784&view=diff
==============================================================================
--- cfe/trunk/lib/Checker/AdjustedReturnValueChecker.cpp (original)
+++ cfe/trunk/lib/Checker/AdjustedReturnValueChecker.cpp Wed Aug 11 01:10:55 2010
@@ -70,8 +70,7 @@
}
else if (const BlockDataRegion *BD = dyn_cast<BlockDataRegion>(callee)) {
const BlockTextRegion *BR = BD->getCodeRegion();
- const BlockPointerType *BT =
- BR->getLocationType(C.getASTContext())->getAs<BlockPointerType>();
+ const BlockPointerType *BT=BR->getLocationType()->getAs<BlockPointerType>();
const FunctionType *FT = BT->getPointeeType()->getAs<FunctionType>();
actualResultTy = FT->getResultType();
}
Modified: cfe/trunk/lib/Checker/ArrayBoundChecker.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Checker/ArrayBoundChecker.cpp?rev=110784&r1=110783&r2=110784&view=diff
==============================================================================
--- cfe/trunk/lib/Checker/ArrayBoundChecker.cpp (original)
+++ cfe/trunk/lib/Checker/ArrayBoundChecker.cpp Wed Aug 11 01:10:55 2010
@@ -58,7 +58,7 @@
// Get the size of the array.
DefinedOrUnknownSVal NumElements
= C.getStoreManager().getSizeInElements(state, ER->getSuperRegion(),
- ER->getValueType(C.getASTContext()));
+ ER->getValueType());
const GRState *StInBound = state->AssumeInBound(Idx, NumElements, true);
const GRState *StOutBound = state->AssumeInBound(Idx, NumElements, false);
Modified: cfe/trunk/lib/Checker/BasicObjCFoundationChecks.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Checker/BasicObjCFoundationChecks.cpp?rev=110784&r1=110783&r2=110784&view=diff
==============================================================================
--- cfe/trunk/lib/Checker/BasicObjCFoundationChecks.cpp (original)
+++ cfe/trunk/lib/Checker/BasicObjCFoundationChecks.cpp Wed Aug 11 01:10:55 2010
@@ -358,7 +358,7 @@
if (!R)
return false;
- QualType T = Ctx.getCanonicalType(R->getValueType(Ctx));
+ QualType T = Ctx.getCanonicalType(R->getValueType());
// FIXME: If the pointee isn't an integer type, should we flag a warning?
// People can do weird stuff with pointers.
Modified: cfe/trunk/lib/Checker/BasicStore.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Checker/BasicStore.cpp?rev=110784&r1=110783&r2=110784&view=diff
==============================================================================
--- cfe/trunk/lib/Checker/BasicStore.cpp (original)
+++ cfe/trunk/lib/Checker/BasicStore.cpp Wed Aug 11 01:10:55 2010
@@ -236,7 +236,7 @@
if (isa<Loc>(V) || isa<nonloc::LocAsInteger>(V))
if (const ElementRegion *ER = dyn_cast<ElementRegion>(R)) {
// FIXME: Should check for index 0.
- QualType T = ER->getLocationType(C);
+ QualType T = ER->getLocationType();
if (isHigherOrderRawPtr(T, C))
R = ER->getSuperRegion();
@@ -249,7 +249,7 @@
// Do not bind to arrays. We need to explicitly check for this so that
// we do not encounter any weirdness of trying to load/store from arrays.
- if (TyR->isBoundable() && TyR->getValueType(C)->isArrayType())
+ if (TyR->isBoundable() && TyR->getValueType()->isArrayType())
return store;
if (nonloc::LocAsInteger *X = dyn_cast<nonloc::LocAsInteger>(&V)) {
@@ -259,7 +259,7 @@
// a pointer. We may wish to flag a type error here if the types
// are incompatible. This may also cause lots of breakage
// elsewhere. Food for thought.
- if (TyR->isBoundable() && Loc::IsLocType(TyR->getValueType(C)))
+ if (TyR->isBoundable() && Loc::IsLocType(TyR->getValueType()))
V = X->getLoc();
}
@@ -580,7 +580,7 @@
}
}
- QualType T = cast<TypedRegion>(R)->getValueType(R->getContext());
+ QualType T = cast<TypedRegion>(R)->getValueType();
SVal V = ValMgr.getConjuredSymbolVal(R, E, T, Count);
return Bind(store, loc::MemRegionVal(R), V);
}
Modified: cfe/trunk/lib/Checker/BugReporterVisitors.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Checker/BugReporterVisitors.cpp?rev=110784&r1=110783&r2=110784&view=diff
==============================================================================
--- cfe/trunk/lib/Checker/BugReporterVisitors.cpp (original)
+++ cfe/trunk/lib/Checker/BugReporterVisitors.cpp Wed Aug 11 01:10:55 2010
@@ -143,10 +143,9 @@
if (isa<loc::ConcreteInt>(V)) {
bool b = false;
- ASTContext &C = BRC.getASTContext();
if (R->isBoundable()) {
if (const TypedRegion *TR = dyn_cast<TypedRegion>(R)) {
- if (TR->getValueType(C)->isObjCObjectPointerType()) {
+ if (TR->getValueType()->isObjCObjectPointerType()) {
os << "initialized to nil";
b = true;
}
@@ -174,10 +173,9 @@
if (os.str().empty()) {
if (isa<loc::ConcreteInt>(V)) {
bool b = false;
- ASTContext &C = BRC.getASTContext();
if (R->isBoundable()) {
if (const TypedRegion *TR = dyn_cast<TypedRegion>(R)) {
- if (TR->getValueType(C)->isObjCObjectPointerType()) {
+ if (TR->getValueType()->isObjCObjectPointerType()) {
os << "nil object reference stored to ";
b = true;
}
Modified: cfe/trunk/lib/Checker/CStringChecker.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Checker/CStringChecker.cpp?rev=110784&r1=110783&r2=110784&view=diff
==============================================================================
--- cfe/trunk/lib/Checker/CStringChecker.cpp (original)
+++ cfe/trunk/lib/Checker/CStringChecker.cpp Wed Aug 11 01:10:55 2010
@@ -145,7 +145,7 @@
if (!ER)
return state;
- assert(ER->getValueType(C.getASTContext()) == C.getASTContext().CharTy &&
+ assert(ER->getValueType() == C.getASTContext().CharTy &&
"CheckLocation should only be called with char* ElementRegions");
// Get the size of the array.
@@ -518,20 +518,16 @@
return true;
case MemRegion::CXXThisRegionKind:
case MemRegion::CXXObjectRegionKind:
- os << "a C++ object of type "
- << TR->getValueType(Ctx).getAsString();
+ os << "a C++ object of type " << TR->getValueType().getAsString();
return true;
case MemRegion::VarRegionKind:
- os << "a variable of type"
- << TR->getValueType(Ctx).getAsString();
+ os << "a variable of type" << TR->getValueType().getAsString();
return true;
case MemRegion::FieldRegionKind:
- os << "a field of type "
- << TR->getValueType(Ctx).getAsString();
+ os << "a field of type " << TR->getValueType().getAsString();
return true;
case MemRegion::ObjCIvarRegionKind:
- os << "an instance variable of type "
- << TR->getValueType(Ctx).getAsString();
+ os << "an instance variable of type " << TR->getValueType().getAsString();
return true;
default:
return false;
Modified: cfe/trunk/lib/Checker/CallAndMessageChecker.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Checker/CallAndMessageChecker.cpp?rev=110784&r1=110783&r2=110784&view=diff
==============================================================================
--- cfe/trunk/lib/Checker/CallAndMessageChecker.cpp (original)
+++ cfe/trunk/lib/Checker/CallAndMessageChecker.cpp Wed Aug 11 01:10:55 2010
@@ -114,7 +114,7 @@
: C(c), StoreMgr(storeMgr), MrMgr(mrMgr), store(s) {}
bool Find(const TypedRegion *R) {
- QualType T = R->getValueType(C);
+ QualType T = R->getValueType();
if (const RecordType *RT = T->getAsStructureType()) {
const RecordDecl *RD = RT->getDecl()->getDefinition();
assert(RD && "Referred record has no definition");
Modified: cfe/trunk/lib/Checker/FlatStore.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Checker/FlatStore.cpp?rev=110784&r1=110783&r2=110784&view=diff
==============================================================================
--- cfe/trunk/lib/Checker/FlatStore.cpp (original)
+++ cfe/trunk/lib/Checker/FlatStore.cpp Wed Aug 11 01:10:55 2010
@@ -175,7 +175,7 @@
FlatStoreManager::RegionToInterval(const MemRegion *R) {
switch (R->getKind()) {
case MemRegion::VarRegionKind: {
- QualType T = cast<VarRegion>(R)->getValueType(Ctx);
+ QualType T = cast<VarRegion>(R)->getValueType();
int64_t Size = Ctx.getTypeSize(T);
return RegionInterval(R, 0, Size-1);
}
@@ -188,7 +188,7 @@
if (!Offset.getRegion())
return RegionInterval(0, 0, 0);
int64_t Start = Offset.getOffset();
- int64_t Size = Ctx.getTypeSize(cast<TypedRegion>(R)->getValueType(Ctx));
+ int64_t Size = Ctx.getTypeSize(cast<TypedRegion>(R)->getValueType());
return RegionInterval(Offset.getRegion(), Start, Start+Size);
}
Modified: cfe/trunk/lib/Checker/GRExprEngine.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Checker/GRExprEngine.cpp?rev=110784&r1=110783&r2=110784&view=diff
==============================================================================
--- cfe/trunk/lib/Checker/GRExprEngine.cpp (original)
+++ cfe/trunk/lib/Checker/GRExprEngine.cpp Wed Aug 11 01:10:55 2010
@@ -1830,7 +1830,7 @@
if (const TypedRegion *TR =
dyn_cast_or_null<TypedRegion>(location.getAsRegion())) {
- QualType ValTy = TR->getValueType(getContext());
+ QualType ValTy = TR->getValueType();
if (const ReferenceType *RT = ValTy->getAs<ReferenceType>()) {
static int loadReferenceTag = 0;
ExplodedNodeSet Tmp;
@@ -2246,7 +2246,7 @@
// FIXME: The proper thing to do is to really iterate over the
// container. We will do this with dispatch logic to the store.
// For now, just 'conjure' up a symbolic value.
- QualType T = R->getValueType(getContext());
+ QualType T = R->getValueType();
assert(Loc::IsLocType(T));
unsigned Count = Builder->getCurrentBlockCount();
SymbolRef Sym = SymMgr.getConjuredSymbol(elem, T, Count);
Modified: cfe/trunk/lib/Checker/GRState.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Checker/GRState.cpp?rev=110784&r1=110783&r2=110784&view=diff
==============================================================================
--- cfe/trunk/lib/Checker/GRState.cpp (original)
+++ cfe/trunk/lib/Checker/GRState.cpp Wed Aug 11 01:10:55 2010
@@ -88,7 +88,7 @@
return UnknownVal();
if (const TypedRegion *TR = dyn_cast<TypedRegion>(R)) {
- QualType T = TR->getValueType(getStateManager().getContext());
+ QualType T = TR->getValueType();
if (Loc::IsLocType(T) || T->isIntegerType())
return getSVal(R);
}
Modified: cfe/trunk/lib/Checker/MemRegion.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Checker/MemRegion.cpp?rev=110784&r1=110783&r2=110784&view=diff
==============================================================================
--- cfe/trunk/lib/Checker/MemRegion.cpp (original)
+++ cfe/trunk/lib/Checker/MemRegion.cpp Wed Aug 11 01:10:55 2010
@@ -178,7 +178,7 @@
DefinedOrUnknownSVal DeclRegion::getExtent(ValueManager& ValMgr) const {
ASTContext& Ctx = ValMgr.getContext();
- QualType T = getDesugaredValueType(Ctx);
+ QualType T = getDesugaredValueType();
if (isa<VariableArrayType>(T))
return nonloc::SymbolVal(ValMgr.getSymbolManager().getExtentSymbol(this));
@@ -196,8 +196,7 @@
// A zero-length array at the end of a struct often stands for dynamically-
// allocated extra memory.
if (Extent.isZeroConstant()) {
- ASTContext& Ctx = ValMgr.getContext();
- QualType T = getDesugaredValueType(Ctx);
+ QualType T = getDesugaredValueType();
if (isa<ConstantArrayType>(T))
return UnknownVal();
@@ -846,7 +845,7 @@
goto Finish;
case ElementRegionKind: {
const ElementRegion *ER = cast<ElementRegion>(R);
- QualType EleTy = ER->getValueType(getContext());
+ QualType EleTy = ER->getValueType();
if (!IsCompleteType(getContext(), EleTy))
return RegionOffset(0);
Modified: cfe/trunk/lib/Checker/OSAtomicChecker.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Checker/OSAtomicChecker.cpp?rev=110784&r1=110783&r2=110784&view=diff
==============================================================================
--- cfe/trunk/lib/Checker/OSAtomicChecker.cpp (original)
+++ cfe/trunk/lib/Checker/OSAtomicChecker.cpp Wed Aug 11 01:10:55 2010
@@ -110,7 +110,7 @@
QualType LoadTy;
if (const TypedRegion *TR =
dyn_cast_or_null<TypedRegion>(location.getAsRegion())) {
- LoadTy = TR->getValueType(Ctx);
+ LoadTy = TR->getValueType();
}
Engine.EvalLoad(Tmp, theValueExpr, C.getPredecessor(),
state, location, OSAtomicLoadTag, LoadTy);
@@ -158,7 +158,7 @@
// Handle implicit value casts.
if (const TypedRegion *R =
dyn_cast_or_null<TypedRegion>(location.getAsRegion())) {
- val = SVator.EvalCast(val,R->getValueType(Ctx),newValueExpr->getType());
+ val = SVator.EvalCast(val,R->getValueType(), newValueExpr->getType());
}
Engine.EvalStore(TmpStore, NULL, theValueExpr, N,
Modified: cfe/trunk/lib/Checker/RegionStore.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Checker/RegionStore.cpp?rev=110784&r1=110783&r2=110784&view=diff
==============================================================================
--- cfe/trunk/lib/Checker/RegionStore.cpp (original)
+++ cfe/trunk/lib/Checker/RegionStore.cpp Wed Aug 11 01:10:55 2010
@@ -663,7 +663,7 @@
return;
const TypedRegion *TR = cast<TypedRegion>(baseR);
- QualType T = TR->getValueType(Ctx);
+ QualType T = TR->getValueType();
// Invalidate the binding.
if (const RecordType *RT = T->getAsStructureType()) {
@@ -774,7 +774,7 @@
return UnknownVal();
// Strip off typedefs from the ArrayRegion's ValueType.
- QualType T = ArrayR->getValueType(getContext()).getDesugaredType();
+ QualType T = ArrayR->getValueType().getDesugaredType();
ArrayType *AT = cast<ArrayType>(T);
T = AT->getElementType();
@@ -915,7 +915,7 @@
const MemRegion *R) {
if (R->isBoundable())
if (const TypedRegion *TR = dyn_cast<TypedRegion>(R))
- if (TR->getValueType(getContext())->isUnionType())
+ if (TR->getValueType()->isUnionType())
return UnknownVal();
if (const SVal *V = Lookup(B, R, BindingKey::Default))
@@ -983,7 +983,7 @@
// FIXME: Perhaps this method should just take a 'const MemRegion*' argument
// instead of 'Loc', and have the other Loc cases handled at a higher level.
const TypedRegion *R = cast<TypedRegion>(MR);
- QualType RTy = R->getValueType(getContext());
+ QualType RTy = R->getValueType();
// FIXME: We should eventually handle funny addressing. e.g.:
//
@@ -1115,7 +1115,7 @@
// FIXME: Handle loads from strings where the literal is treated as
// an integer, e.g., *((unsigned int*)"hello")
ASTContext &Ctx = getContext();
- QualType T = Ctx.getAsArrayType(StrR->getValueType(Ctx))->getElementType();
+ QualType T = Ctx.getAsArrayType(StrR->getValueType())->getElementType();
if (T != Ctx.getCanonicalType(R->getElementType()))
return UnknownVal();
@@ -1141,7 +1141,7 @@
// FIXME: This is a hack, and doesn't do anything really intelligent yet.
const RegionRawOffset &O = R->getAsArrayOffset();
if (const TypedRegion *baseR = dyn_cast_or_null<TypedRegion>(O.getRegion())) {
- QualType baseT = baseR->getValueType(Ctx);
+ QualType baseT = baseR->getValueType();
if (baseT->isScalarType()) {
QualType elemT = R->getElementType();
if (elemT->isScalarType()) {
@@ -1171,7 +1171,7 @@
if (const Optional<SVal> &V = getDirectBinding(B, R))
return *V;
- QualType Ty = R->getValueType(getContext());
+ QualType Ty = R->getValueType();
return RetrieveFieldOrElementCommon(store, R, Ty, R->getSuperRegion());
}
@@ -1238,7 +1238,7 @@
// Currently we don't reason specially about Clang-style vectors. Check
// if superR is a vector and if so return Unknown.
if (const TypedRegion *typedSuperR = dyn_cast<TypedRegion>(superR)) {
- if (typedSuperR->getValueType(getContext())->isVectorType())
+ if (typedSuperR->getValueType()->isVectorType())
return UnknownVal();
}
}
@@ -1323,21 +1323,18 @@
}
SVal RegionStoreManager::RetrieveLazySymbol(const TypedRegion *R) {
-
- QualType valTy = R->getValueType(getContext());
-
// All other values are symbolic.
return ValMgr.getRegionValueSymbolVal(R);
}
SVal RegionStoreManager::RetrieveStruct(Store store, const TypedRegion* R) {
- QualType T = R->getValueType(getContext());
+ QualType T = R->getValueType();
assert(T->isStructureOrClassType());
return ValMgr.makeLazyCompoundVal(store, R);
}
SVal RegionStoreManager::RetrieveArray(Store store, const TypedRegion * R) {
- assert(isa<ConstantArrayType>(R->getValueType(getContext())));
+ assert(isa<ConstantArrayType>(R->getValueType()));
return ValMgr.makeLazyCompoundVal(store, R);
}
@@ -1362,7 +1359,7 @@
// Check if the region is a struct region.
if (const TypedRegion* TR = dyn_cast<TypedRegion>(R))
- if (TR->getValueType(getContext())->isStructureOrClassType())
+ if (TR->getValueType()->isStructureOrClassType())
return BindStruct(store, TR, V);
// Special case: the current region represents a cast and it and the super
@@ -1375,8 +1372,8 @@
if (const TypedRegion *superR =
dyn_cast<TypedRegion>(ER->getSuperRegion())) {
ASTContext &Ctx = getContext();
- QualType superTy = superR->getValueType(Ctx);
- QualType erTy = ER->getValueType(Ctx);
+ QualType superTy = superR->getValueType();
+ QualType erTy = ER->getValueType();
if (IsAnyPointerOrIntptr(superTy, Ctx) &&
IsAnyPointerOrIntptr(erTy, Ctx)) {
@@ -1458,8 +1455,7 @@
SVal Init) {
ASTContext &Ctx = getContext();
- const ArrayType *AT =
- cast<ArrayType>(Ctx.getCanonicalType(R->getValueType(Ctx)));
+ const ArrayType *AT =cast<ArrayType>(Ctx.getCanonicalType(R->getValueType()));
QualType ElementTy = AT->getElementType();
Optional<uint64_t> Size;
@@ -1517,7 +1513,7 @@
if (!Features.supportsFields())
return store;
- QualType T = R->getValueType(getContext());
+ QualType T = R->getValueType();
assert(T->isStructureOrClassType());
const RecordType* RT = T->getAs<RecordType>();
Modified: cfe/trunk/lib/Checker/ReturnPointerRangeChecker.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Checker/ReturnPointerRangeChecker.cpp?rev=110784&r1=110783&r2=110784&view=diff
==============================================================================
--- cfe/trunk/lib/Checker/ReturnPointerRangeChecker.cpp (original)
+++ cfe/trunk/lib/Checker/ReturnPointerRangeChecker.cpp Wed Aug 11 01:10:55 2010
@@ -66,7 +66,7 @@
DefinedOrUnknownSVal NumElements
= C.getStoreManager().getSizeInElements(state, ER->getSuperRegion(),
- ER->getValueType(C.getASTContext()));
+ ER->getValueType());
const GRState *StInBound = state->AssumeInBound(Idx, NumElements, true);
const GRState *StOutBound = state->AssumeInBound(Idx, NumElements, false);
Modified: cfe/trunk/lib/Checker/Store.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Checker/Store.cpp?rev=110784&r1=110783&r2=110784&view=diff
==============================================================================
--- cfe/trunk/lib/Checker/Store.cpp (original)
+++ cfe/trunk/lib/Checker/Store.cpp Wed Aug 11 01:10:55 2010
@@ -83,7 +83,7 @@
// Handle casts from compatible types.
if (R->isBoundable())
if (const TypedRegion *TR = dyn_cast<TypedRegion>(R)) {
- QualType ObjTy = Ctx.getCanonicalType(TR->getValueType(Ctx));
+ QualType ObjTy = Ctx.getCanonicalType(TR->getValueType());
if (CanonPointeeTy == ObjTy)
return R;
}
@@ -159,7 +159,7 @@
// check to see if type we are casting to is the same as the base
// region. If so, just return the base region.
if (const TypedRegion *TR = dyn_cast<TypedRegion>(baseR)) {
- QualType ObjTy = Ctx.getCanonicalType(TR->getValueType(Ctx));
+ QualType ObjTy = Ctx.getCanonicalType(TR->getValueType());
QualType CanonPointeeTy = Ctx.getCanonicalType(PointeeTy);
if (CanonPointeeTy == ObjTy)
return baseR;
@@ -222,7 +222,7 @@
if (performTestOnly) {
// Automatically translate references to pointers.
- QualType T = R->getValueType(Ctx);
+ QualType T = R->getValueType();
if (const ReferenceType *RT = T->getAs<ReferenceType>())
T = Ctx.getPointerType(RT->getPointeeType());
Modified: cfe/trunk/lib/Checker/SymbolManager.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Checker/SymbolManager.cpp?rev=110784&r1=110783&r2=110784&view=diff
==============================================================================
--- cfe/trunk/lib/Checker/SymbolManager.cpp (original)
+++ cfe/trunk/lib/Checker/SymbolManager.cpp Wed Aug 11 01:10:55 2010
@@ -191,7 +191,7 @@
}
QualType SymbolDerived::getType(ASTContext& Ctx) const {
- return R->getValueType(Ctx);
+ return R->getValueType();
}
QualType SymbolExtent::getType(ASTContext& Ctx) const {
@@ -199,7 +199,7 @@
}
QualType SymbolRegionValue::getType(ASTContext& C) const {
- return R->getValueType(C);
+ return R->getValueType();
}
SymbolManager::~SymbolManager() {}
Modified: cfe/trunk/lib/Checker/ValueManager.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Checker/ValueManager.cpp?rev=110784&r1=110783&r2=110784&view=diff
==============================================================================
--- cfe/trunk/lib/Checker/ValueManager.cpp (original)
+++ cfe/trunk/lib/Checker/ValueManager.cpp Wed Aug 11 01:10:55 2010
@@ -72,7 +72,7 @@
DefinedOrUnknownSVal
ValueManager::getRegionValueSymbolVal(const TypedRegion* R) {
- QualType T = R->getValueType(SymMgr.getContext());
+ QualType T = R->getValueType();
if (!SymbolManager::canSymbolicate(T))
return UnknownVal();
@@ -121,7 +121,7 @@
DefinedOrUnknownSVal
ValueManager::getDerivedRegionValueSymbolVal(SymbolRef parentSymbol,
const TypedRegion *R) {
- QualType T = R->getValueType(R->getContext());
+ QualType T = R->getValueType();
if (!SymbolManager::canSymbolicate(T))
return UnknownVal();
More information about the cfe-commits
mailing list