aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorChantal Keller <Chantal.Keller@inria.fr>2020-06-30 13:34:10 +0200
committerChantal Keller <Chantal.Keller@inria.fr>2020-06-30 13:34:10 +0200
commit5a48d8b315ba20a5d79b56f9f3fa0ab7a1e8e13a (patch)
tree6c99318b1dfa81e02bff1ce8fe6e6257c0aee25e /src
parent3523794498e9ac8b86eeec8e1a2147e9abe997b6 (diff)
parent26c639d438169530275ff7e48a55355deb7047df (diff)
downloadsmtcoq-5a48d8b315ba20a5d79b56f9f3fa0ab7a1e8e13a.tar.gz
smtcoq-5a48d8b315ba20a5d79b56f9f3fa0ab7a1e8e13a.zip
Merge branch 'master' of github.com:smtcoq/smtcoq
Diffstat (limited to 'src')
-rw-r--r--src/smtlib2/smtlib2_solver.ml24
-rw-r--r--src/trace/smtAtom.ml2
2 files changed, 14 insertions, 12 deletions
diff --git a/src/smtlib2/smtlib2_solver.ml b/src/smtlib2/smtlib2_solver.ml
index 8ae7202..aee9a81 100644
--- a/src/smtlib2/smtlib2_solver.ml
+++ b/src/smtlib2/smtlib2_solver.ml
@@ -95,7 +95,7 @@ let read_check_result s =
let send_command s cmd read =
eprintf "%s@." cmd;
- let err_p1 = Unix.((fstat s.stderr).st_size) in
+ (* let err_p1 = Unix.((fstat s.stderr).st_size) in *)
try
let in_ch = Unix.out_channel_of_descr s.stdin in
let fmt = formatter_of_out_channel in_ch in
@@ -103,16 +103,18 @@ let send_command s cmd read =
pp_print_newline fmt ();
read s
with e ->
- let err_p2 = Unix.((fstat s.stderr).st_size) in
- let len = err_p2 - err_p1 in
- (* Was something written to stderr? *)
- if len <> 0 then begin
- let buf = Bytes.create err_p2 in
- Unix.read s.stderr buf 0 err_p2 |> ignore;
- let err_msg = Bytes.sub_string buf err_p1 len in
- Structures.error ("Solver error: "^err_msg);
- end
- else (kill s; raise e)
+ (* After the exception, the file descriptor is invalid *)
+ (* let err_p2 = Unix.((fstat s.stderr).st_size) in
+ * let len = err_p2 - err_p1 in
+ * (\* Was something written to stderr? *\)
+ * if len <> 0 then begin
+ * let buf = Bytes.create err_p2 in
+ * Unix.read s.stderr buf 0 err_p2 |> ignore;
+ * let err_msg = Bytes.sub_string buf err_p1 len in
+ * Structures.error ("Solver error: "^err_msg);
+ * end
+ * else (kill s; raise e) *)
+ kill s; raise e
let set_option s name b =
diff --git a/src/trace/smtAtom.ml b/src/trace/smtAtom.ml
index c20a75d..ae44b8d 100644
--- a/src/trace/smtAtom.ml
+++ b/src/trace/smtAtom.ml
@@ -649,7 +649,7 @@ module Atom =
to_smt_atom (atom h)
and to_smt_atom = function
- | Acop (CO_BV bv) -> Format.fprintf fmt "#b%a" bv_to_smt bv
+ | Acop (CO_BV bv) -> if List.length bv = 0 then Structures.error "Empty bit-vectors are not valid in SMT" else Format.fprintf fmt "#b%a" bv_to_smt bv
| Acop _ as a -> to_smt_int fmt (compute_int a)
| Auop (op,h) -> to_smt_uop op h
| Abop (op,h1,h2) -> to_smt_bop op h1 h2