diff options
author | Son HO | 2023-12-13 11:10:10 +0100 |
---|---|---|
committer | GitHub | 2023-12-13 11:10:10 +0100 |
commit | c6247e0c103cc1dc95c2a63ae01602c4a1208dc4 (patch) | |
tree | 9b3d6aa74163ee8f26e62bf864121f9cf256a88a /compiler | |
parent | 22009543d86895b9f680d3a4abdea00302ad5f1e (diff) | |
parent | 07fc9c784e311ab082b89a63f5ca5b0c7568fc4c (diff) |
Merge pull request #52 from AeneasVerif/son/matches
Make the otherwise branch in the LLBC match statements optional
Diffstat (limited to '')
-rw-r--r-- | compiler/InterpreterStatements.ml | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/compiler/InterpreterStatements.ml b/compiler/InterpreterStatements.ml index 66b8492a..30b7b333 100644 --- a/compiler/InterpreterStatements.ml +++ b/compiler/InterpreterStatements.ml @@ -1125,7 +1125,10 @@ and eval_switch (config : config) (switch : switch) : st_cm_fun = let dv = Option.get adt.variant_id in (* Find the branch, evaluate and continue *) match List.find_opt (fun (svl, _) -> List.mem dv svl) stgts with - | None -> eval_statement config otherwise cf ctx + | None -> ( + match otherwise with + | None -> raise (Failure "No otherwise branch") + | Some otherwise -> eval_statement config otherwise cf ctx) | Some (_, tgt) -> eval_statement config tgt cf ctx) | VSymbolic sv -> (* Expand the symbolic value - may lead to branching *) |