guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/04: build: Use '-Wshadowed-toplevel' only when supported.


From: guix-commits
Subject: 01/04: build: Use '-Wshadowed-toplevel' only when supported.
Date: Fri, 12 Jul 2019 17:54:32 -0400 (EDT)

civodul pushed a commit to branch master
in repository guix.

commit e429566fbb6af2b65a144cc06902432bc87b9eae
Author: Ludovic Courtès <address@hidden>
Date:   Fri Jul 12 22:38:03 2019 +0200

    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'.
---
 guix/build/compile.scm | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/guix/build/compile.scm b/guix/build/compile.scm
index c8fe273..29865f2 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."



reply via email to

[Prev in Thread] Current Thread [Next in Thread]