aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/Expr
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-06-04 07:09:13 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-06-04 07:09:13 +0000
commitc4a0e57c082e567e81ad3609a32ee492d41f03f9 (patch)
tree428ab02726ff8a8ba8f4b090ce864826591ce639 /lib/Expr
parent136068f571d7f47bf1c2ab9417a874b0829bc670 (diff)
downloadklee-c4a0e57c082e567e81ad3609a32ee492d41f03f9.tar.gz
Change ConstantExpr::{alloc,create} to return a ref<ConstantExpr>
git-svn-id: https://llvm.org/svn/llvm-project/klee/trunk@72853 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Expr')
-rw-r--r--lib/Expr/Parser.cpp20
1 files changed, 19 insertions, 1 deletions
diff --git a/lib/Expr/Parser.cpp b/lib/Expr/Parser.cpp
index 3bbe3334..1808ca7b 100644
--- a/lib/Expr/Parser.cpp
+++ b/lib/Expr/Parser.cpp
@@ -49,8 +49,26 @@ namespace {
}
};
+ class ExprResult {
+ bool IsValid;
+ ExprHandle Value;
+
+ public:
+ ExprResult() : IsValid(false) {}
+ ExprResult(ExprHandle _Value) : IsValid(true), Value(_Value) {}
+ ExprResult(ref<ConstantExpr> _Value) : IsValid(true), Value(_Value.get()) {}
+ ExprResult(bool _IsValid, ExprHandle _Value) : IsValid(_IsValid), Value(_Value) {}
+
+ bool isValid() {
+ return IsValid;
+ }
+ ExprHandle get() {
+ assert(IsValid && "get() on invalid ParseResult!");
+ return Value;
+ }
+ };
+
typedef ParseResult<Decl*> DeclResult;
- typedef ParseResult<ExprHandle> ExprResult;
typedef ParseResult<Expr::Width> TypeResult;
typedef ParseResult<VersionHandle> VersionResult;