diff options
| author | ppedrot | 2013-01-28 21:06:02 +0000 |
|---|---|---|
| committer | ppedrot | 2013-01-28 21:06:02 +0000 |
| commit | 0892990d7bbeb770de458a3b4ef2ffe34a1b11e3 (patch) | |
| tree | 685770a3b85870caac91e23302e6c188e4b3ca77 /interp | |
| parent | 1ce2c89e8fd2f80b49fcac9e045667b7233391ef (diff) | |
Actually adding backtrace handling.
I hope I did not forget some [with] clauses. Otherwise, some
stack frame will be missing from the debug.
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@16167 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'interp')
| -rw-r--r-- | interp/constrintern.ml | 1 | ||||
| -rw-r--r-- | interp/notation.ml | 5 |
2 files changed, 5 insertions, 1 deletions
diff --git a/interp/constrintern.ml b/interp/constrintern.ml index 2afd33babb..542ee9857b 100644 --- a/interp/constrintern.ml +++ b/interp/constrintern.ml @@ -714,6 +714,7 @@ let intern_applied_reference intern env namedctx lvar args = function let r,args2 = intern_non_secvar_qualid loc qid intern env lvar args in find_appl_head_data r, args2 with e -> + let e = Errors.push e in (* Extra allowance for non globalizing functions *) if !interning_grammar || env.unb then (GVar (loc,id), [], [], []),args diff --git a/interp/notation.ml b/interp/notation.ml index ac71e1ebdc..c55b7b999b 100644 --- a/interp/notation.ml +++ b/interp/notation.ml @@ -928,4 +928,7 @@ let _ = let with_notation_protection f x = let fs = freeze () in try let a = f x in unfreeze fs; a - with e -> unfreeze fs; raise e + with e -> + let e = Errors.push e in + let () = unfreeze fs in + raise e |
