summaryrefslogtreecommitdiffstats
path: root/clang/lib/Analysis/Consumed.cpp
diff options
context:
space:
mode:
authorDeLesley Hutchins <delesley@google.com>2013-08-29 21:17:25 +0000
committerDeLesley Hutchins <delesley@google.com>2013-08-29 21:17:25 +0000
commit7fa60edb47fdb2e5a0147e0ea9eb1d93bf30cde0 (patch)
tree05e51abfb01add51b1e2b94e9b82eb9e5774eea3 /clang/lib/Analysis/Consumed.cpp
parentc4dff6feeae3c905701e2f81f13444f8afe79188 (diff)
downloadbcm5719-llvm-7fa60edb47fdb2e5a0147e0ea9eb1d93bf30cde0.tar.gz
bcm5719-llvm-7fa60edb47fdb2e5a0147e0ea9eb1d93bf30cde0.zip
Consumed analysis: non-const methods no longer transfer an object into an
unknown state. Patch by chris.wailes@gmail.com. llvm-svn: 189612
Diffstat (limited to 'clang/lib/Analysis/Consumed.cpp')
-rw-r--r--clang/lib/Analysis/Consumed.cpp14
1 files changed, 2 insertions, 12 deletions
diff --git a/clang/lib/Analysis/Consumed.cpp b/clang/lib/Analysis/Consumed.cpp
index 745840d7a11..e5231e07c28 100644
--- a/clang/lib/Analysis/Consumed.cpp
+++ b/clang/lib/Analysis/Consumed.cpp
@@ -530,8 +530,6 @@ void ConsumedStmtVisitor::VisitCXXMemberCallExpr(
handleTestingFunctionCall(Call, PInfo.getVar());
else if (MethodDecl->hasAttr<ConsumesAttr>())
StateMap->setState(PInfo.getVar(), consumed::CS_Consumed);
- else if (!MethodDecl->isConst())
- StateMap->setState(PInfo.getVar(), consumed::CS_Unknown);
}
}
}
@@ -626,18 +624,10 @@ void ConsumedStmtVisitor::VisitCXXOperatorCallExpr(
checkCallability(PInfo, FunDecl, Call);
if (PInfo.isVar()) {
- if (isTestingFunction(FunDecl)) {
+ if (isTestingFunction(FunDecl))
handleTestingFunctionCall(Call, PInfo.getVar());
-
- } else if (FunDecl->hasAttr<ConsumesAttr>()) {
+ else if (FunDecl->hasAttr<ConsumesAttr>())
StateMap->setState(PInfo.getVar(), consumed::CS_Consumed);
-
- } else if (const CXXMethodDecl *MethodDecl =
- dyn_cast_or_null<CXXMethodDecl>(FunDecl)) {
-
- if (!MethodDecl->isConst())
- StateMap->setState(PInfo.getVar(), consumed::CS_Unknown);
- }
}
}
}
OpenPOWER on IntegriCloud