aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib
diff options
context:
space:
mode:
authorGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2009-09-26 13:07:52 +0000
committerGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2009-09-26 13:07:52 +0000
commit8c6fb6f52db5bfda6cdfeb4f581da1332fb4a20b (patch)
treeb1d59369165c2b22368662a13d1eb79971c247b1 /lib
parent9abfed86acb129d836423e73d05f1a53766c56a7 (diff)
Fixed a hole in glob_tactic that allowed some Ltac code to refer to
statically unbound variables (revealed by an assert failure in Tacinterp.subst_rawconstr_and_expr). In particular, tauto's use of name "id" was bypassing the globalization phase (apparently in an safe way though). Added a new kind of anomaly usable in case an anomaly results of an unexpected exception. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12354 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'lib')
-rw-r--r--lib/util.ml2
-rw-r--r--lib/util.mli2
2 files changed, 4 insertions, 0 deletions
diff --git a/lib/util.ml b/lib/util.ml
index ddf44eec3..2815af014 100644
--- a/lib/util.ml
+++ b/lib/util.ml
@@ -20,6 +20,8 @@ exception UserError of string * std_ppcmds (* User errors *)
let error string = raise (UserError(string, str string))
let errorlabstrm l pps = raise (UserError(l,pps))
+exception AnomalyOnError of string * exn
+
let todo s = prerr_string ("TODO: "^s^"\n")
exception Timeout
diff --git a/lib/util.mli b/lib/util.mli
index 4579982bc..4e2bb6d33 100644
--- a/lib/util.mli
+++ b/lib/util.mli
@@ -26,6 +26,8 @@ exception UserError of string * std_ppcmds
val error : string -> 'a
val errorlabstrm : string -> std_ppcmds -> 'a
+exception AnomalyOnError of string * exn
+
(* [todo] is for running of an incomplete code its implementation is
"do nothing" (or print a message), but this function should not be
used in a released code *)