diff options
author | Ludovic Courtès <ludo@gnu.org> | 2019-07-12 22:38:03 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2019-07-12 23:54:19 +0200 |
commit | e429566fbb6af2b65a144cc06902432bc87b9eae (patch) | |
tree | 59afd3296f037cc0faee278849fe98bdc128217f | |
parent | 6cf63fe887e81821e217db9bbd27a1d6cefff013 (diff) | |
download | patches-e429566fbb6af2b65a144cc06902432bc87b9eae.tar patches-e429566fbb6af2b65a144cc06902432bc87b9eae.tar.gz |
build: Use '-Wshadowed-toplevel' only when supported.
* guix/build/compile.scm (supported-warning-type?): New procedure.
(%warnings): Remove 'unsupported-warning', though removing it doesn't
make any difference. Define 'optional', and use it to determine whether
to include 'shadowed-toplevel'.
-rw-r--r-- | guix/build/compile.scm | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/guix/build/compile.scm b/guix/build/compile.scm index c8fe273f7e..29865f2f2e 100644 --- a/guix/build/compile.scm +++ b/guix/build/compile.scm @@ -18,6 +18,7 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (guix build compile) + #:use-module (srfi srfi-1) #:use-module (ice-9 match) #:use-module (ice-9 format) #:use-module (ice-9 threads) @@ -58,13 +59,23 @@ ((kw _ rest ...) (loop rest `(#f ,kw ,@result)))))) +(define (supported-warning-type? type) + "Return true if TYPE, a symbol, denotes a supported warning type." + (find (lambda (warning-type) + (eq? type (warning-type-name warning-type))) + %warning-types)) + (define %warnings ;; FIXME: 'format' is missing because it reports "non-literal format ;; strings" due to the fact that we use 'G_' instead of '_'. We'll need ;; help from Guile to solve this. - '(unsupported-warning unbound-variable arity-mismatch - macro-use-before-definition ;new in 2.2 - shadowed-toplevel)) ;new in 2.2.5 + (let ((optional (lambda (type) + (if (supported-warning-type? type) + (list type) + '())))) + `(unbound-variable arity-mismatch + macro-use-before-definition ;new in 2.2 + ,@(optional 'shadowed-toplevel)))) ;new in 2.2.5 (define (optimization-options file) "Return the default set of optimizations options for FILE." |