mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-19 02:00:26 +02:00
Warning and optimization levels always small integers
* module/language/tree-il/analyze.scm (make-analyzer): Expect an int for optimization level. * module/scripts/compile.scm (%options, show-warning-help): No more -Wnone / Wall; use -W0 or -W9 instead. * module/system/base/compile.scm (level-validator): Validate small int. (compute-analyzer, add-default-optimizations): Likewise. * test-suite/tests/optargs.test (without-compiler-warnings): * test-suite/tests/tree-il.test (call-with-warnings): Parameterize level to 0, not #f. * bootstrap/Makefile.am (GUILE_WARNINGS): Use -W0, not -Wnone.
This commit is contained in:
parent
220934c49d
commit
e9c0f3071d
6 changed files with 13 additions and 21 deletions
|
@ -34,12 +34,11 @@
|
|||
|
||||
|
||||
(define (level-validator x)
|
||||
(match x
|
||||
((? boolean?) x)
|
||||
((and (? exact-integer?) (not (? negative?))) x)
|
||||
(_ (error
|
||||
"bad warning or optimization level: expected #f, #t, or integer >= 0"
|
||||
x))))
|
||||
(unless (and (exact-integer? x) (<= 0 x 9))
|
||||
(error
|
||||
"bad warning or optimization level: expected integer between 0 and 9"
|
||||
x))
|
||||
x)
|
||||
|
||||
(define default-warning-level (make-parameter 1 level-validator))
|
||||
(define default-optimization-level (make-parameter 2 level-validator))
|
||||
|
@ -215,6 +214,7 @@
|
|||
;;;
|
||||
|
||||
(define (compute-analyzer lang warning-level opts)
|
||||
(level-validator warning-level)
|
||||
(match (language-analyzer lang)
|
||||
(#f (lambda (exp env) (values)))
|
||||
(proc (proc warning-level
|
||||
|
@ -225,6 +225,7 @@
|
|||
((_ _ . opts) (lp opts))))))))
|
||||
|
||||
(define (add-default-optimizations lang optimization-level opts)
|
||||
(level-validator optimization-level)
|
||||
(match (language-optimizations-for-level lang)
|
||||
(#f opts)
|
||||
(get-opts (append opts (get-opts optimization-level)))))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue