aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2019-07-12 22:38:03 +0200
committerLudovic Courtès <ludo@gnu.org>2019-07-12 23:54:19 +0200
commite429566fbb6af2b65a144cc06902432bc87b9eae (patch)
tree59afd3296f037cc0faee278849fe98bdc128217f
parent6cf63fe887e81821e217db9bbd27a1d6cefff013 (diff)
downloadpatches-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.scm17
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."