From c4a0e57c082e567e81ad3609a32ee492d41f03f9 Mon Sep 17 00:00:00 2001 From: Daniel Dunbar Date: Thu, 4 Jun 2009 07:09:13 +0000 Subject: Change ConstantExpr::{alloc,create} to return a ref git-svn-id: https://llvm.org/svn/llvm-project/klee/trunk@72853 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Expr/Parser.cpp | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'lib/Expr') 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 _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 DeclResult; - typedef ParseResult ExprResult; typedef ParseResult TypeResult; typedef ParseResult VersionResult; -- cgit 1.4.1