diff options
author | Morgan Deters <mdeters@gmail.com> | 2012-11-09 19:18:58 +0000 |
---|---|---|
committer | Morgan Deters <mdeters@gmail.com> | 2012-11-09 19:18:58 +0000 |
commit | ca6647503475fb36827e960d9e01c3f8a04c4ed3 (patch) | |
tree | b951d83522c8d82709abfcd2707298b3a4916d07 /src/smt/logic_exception.h | |
parent | 63e4a6775daa1b7a986cc9dec0bd178b7e023c47 (diff) |
Bug-fix for a crash involving improperly-thrown exceptions; also, add LogicException for errors where the user uses a feature not permitted in the current logic (e.g., a quantifier in a QF logic)
Diffstat (limited to 'src/smt/logic_exception.h')
-rw-r--r-- | src/smt/logic_exception.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/smt/logic_exception.h b/src/smt/logic_exception.h new file mode 100644 index 000000000..c2827249d --- /dev/null +++ b/src/smt/logic_exception.h @@ -0,0 +1,47 @@ +/********************* */ +/*! \file logic_exception.h + ** \verbatim + ** Original author: mdeters + ** Major contributors: none + ** Minor contributors (to current version): none + ** This file is part of the CVC4 prototype. + ** Copyright (c) 2009-2012 New York University and The University of Iowa + ** See the file COPYING in the top-level source directory for licensing + ** information.\endverbatim + ** + ** \brief An exception that is thrown when a feature is used outside + ** the logic that CVC4 is currently using + ** + ** \brief An exception that is thrown when a feature is used outside + ** the logic that CVC4 is currently using (for example, a quantifier + ** is used while running in a quantifier-free logic). + **/ + +#include "cvc4_public.h" + +#ifndef __CVC4__SMT__LOGIC_EXCEPTION_H +#define __CVC4__SMT__LOGIC_EXCEPTION_H + +#include "util/exception.h" + +namespace CVC4 { + +class CVC4_PUBLIC LogicException : public CVC4::Exception { +public: + LogicException() : + Exception("Feature used while operating in " + "incorrect state") { + } + + LogicException(const std::string& msg) : + Exception(msg) { + } + + LogicException(const char* msg) : + Exception(msg) { + } +};/* class LogicException */ + +}/* CVC4 namespace */ + +#endif /* __CVC4__SMT__LOGIC_EXCEPTION_H */ |