aboutsummaryrefslogtreecommitdiff
path: root/plugins/syntax
diff options
context:
space:
mode:
authorMaxime Dénès2016-06-29 11:48:49 +0200
committerMaxime Dénès2016-06-29 11:48:49 +0200
commit58b6784fee71a16719bc4f268dc42830c06a5c63 (patch)
treea9a3859746d2ff97f8c0b8106c96b49f9122a1b7 /plugins/syntax
parent0e07e69dae3f3f4a99f824533f54a3991aacac6a (diff)
parentdd8d2a1d017d20635f943af205dcb0127a992a59 (diff)
Merge branch 'warnings' into trunk
Was PR#213: New warnings machinery
Diffstat (limited to 'plugins/syntax')
-rw-r--r--plugins/syntax/nat_syntax.ml14
1 files changed, 8 insertions, 6 deletions
diff --git a/plugins/syntax/nat_syntax.ml b/plugins/syntax/nat_syntax.ml
index 3142c8cf00..89305838b1 100644
--- a/plugins/syntax/nat_syntax.ml
+++ b/plugins/syntax/nat_syntax.ml
@@ -26,14 +26,16 @@ open Errors
let threshold = of_int 5000
+let warn_large_nat =
+ CWarnings.create ~name:"large-nat" ~category:"numbers"
+ (fun () -> strbrk "Stack overflow or segmentation fault happens when " ++
+ strbrk "working with large numbers in nat (observed threshold " ++
+ strbrk "may vary from 5000 to 70000 depending on your system " ++
+ strbrk "limits and on the command executed).")
+
let nat_of_int dloc n =
if is_pos_or_zero n then begin
- if less_than threshold n then
- Feedback.msg_warning
- (strbrk "Stack overflow or segmentation fault happens when " ++
- strbrk "working with large numbers in nat (observed threshold " ++
- strbrk "may vary from 5000 to 70000 depending on your system " ++
- strbrk "limits and on the command executed).");
+ if less_than threshold n then warn_large_nat ();
let ref_O = GRef (dloc, glob_O, None) in
let ref_S = GRef (dloc, glob_S, None) in
let rec mk_nat acc n =