Index: generic/nsf.c
===================================================================
diff -u -r97767e2a92d0614941a60ee77735be86e39220dd -re733b10db8515dc4fcd53bc5e5a79dc2ba1b7e8c
--- generic/nsf.c	(.../nsf.c)	(revision 97767e2a92d0614941a60ee77735be86e39220dd)
+++ generic/nsf.c	(.../nsf.c)	(revision e733b10db8515dc4fcd53bc5e5a79dc2ba1b7e8c)
@@ -1543,7 +1543,7 @@
   nonnull_assert(valueObj != NULL);
 
 #pragma GCC diagnostic push
-#ifndef __clang__
+#if defined(__GNUC__) && !defined(__clang__)
 # pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
 #endif
   Nsf_PushFrameObj(interp, (NsfObject *)object, framePtr);
@@ -1569,7 +1569,7 @@
   nonnull_assert(name1 != NULL);
 
 #pragma GCC diagnostic push
-#ifndef __clang__
+#if defined(__GNUC__) && !defined(__clang__)
 # pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
 #endif
   Nsf_PushFrameObj(interp, (NsfObject *)object, framePtr);
@@ -1599,7 +1599,7 @@
   o = (NsfObject *) object;
 
 #pragma GCC diagnostic push
-#ifndef __clang__
+#if defined(__GNUC__) && !defined(__clang__)
 # pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
 #endif
   Nsf_PushFrameObj(interp, o, framePtr);
@@ -7589,7 +7589,7 @@
   nonnull_assert(object != NULL);
 
 #pragma GCC diagnostic push
-#ifndef __clang__
+#if defined(__GNUC__) && !defined(__clang__)
 # pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
 #endif
   Nsf_PushFrameObj(interp, object, framePtr);
@@ -8720,7 +8720,7 @@
       CallFrame frame, *framePtr = &frame;
 
 #pragma GCC diagnostic push
-#ifndef __clang__
+#if defined(__GNUC__) && !defined(__clang__)
 # pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
 #endif
       Nsf_PushFrameObj(interp, (NsfObject *)object, framePtr);
@@ -10957,7 +10957,7 @@
   } else {
 
 #pragma GCC diagnostic push
-#ifndef __clang__
+#if defined(__GNUC__) && !defined(__clang__)
 # pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
 #endif
     Nsf_PushFrameObj(interp, object, framePtr);
@@ -12281,7 +12281,7 @@
   nonnull_assert(name1 != NULL);
 
 #pragma GCC diagnostic push
-#ifndef __clang__
+#if defined(__GNUC__) && !defined(__clang__)
 # pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
 #endif
   Nsf_PushFrameObj(interp, (NsfObject *)object, framePtr);
@@ -19622,7 +19622,7 @@
 
   if (object != NULL && (processFlags & NSF_ARGPARSE_METHOD_PUSH) != 0u ) {
 #pragma GCC diagnostic push
-#ifndef __clang__
+#if defined(__GNUC__) && !defined(__clang__)
 # pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
 #endif
     Nsf_PushFrameObj(interp, object, framePtr);
@@ -22874,7 +22874,7 @@
   }
 
 #pragma GCC diagnostic push
-#ifndef __clang__
+#if defined(__GNUC__) && !defined(__clang__)
 # pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
 #endif
   Nsf_PushFrameObj(interp, object, framePtr);
@@ -23021,7 +23021,7 @@
   nonnull_assert(nameObj != NULL);
 
 #pragma GCC diagnostic push
-#ifndef __clang__
+#if defined(__GNUC__) && !defined(__clang__)
 # pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
 #endif
   Nsf_PushFrameObj(interp, object, framePtr);
@@ -23111,7 +23111,7 @@
   nonnull_assert(arrayNameObj != NULL);
 
 #pragma GCC diagnostic push
-#ifndef __clang__
+#if defined(__GNUC__) && !defined(__clang__)
 # pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
 #endif
   Nsf_PushFrameObj(interp, object, framePtr);
@@ -23175,7 +23175,7 @@
   }
 
 #pragma GCC diagnostic push
-#ifndef __clang__
+#if defined(__GNUC__) && !defined(__clang__)
 # pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
 #endif
   Nsf_PushFrameObj(interp, object, framePtr);
@@ -23699,7 +23699,7 @@
   if (tcd->frame == FrameObjectIdx) {
 
 #pragma GCC diagnostic push
-#ifndef __clang__
+#if defined(__GNUC__) && !defined(__clang__)
 # pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
 #endif
     Nsf_PushFrameObj(interp, object, framePtr);
@@ -24049,7 +24049,7 @@
   tcd->object = NULL;
 
 #pragma GCC diagnostic push
-#ifndef __clang__
+#if defined(__GNUC__) && !defined(__clang__)
 # pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
 #endif
   Nsf_PushFrameObj(interp, object, framePtr);
@@ -28524,7 +28524,7 @@
   if (unlikely(withFrame == FrameObjectIdx)) {
 
 #pragma GCC diagnostic push
-#ifndef __clang__
+#if defined(__GNUC__) && !defined(__clang__)
 # pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
 #endif
     Nsf_PushFrameObj(interp, object, framePtr);
@@ -32142,7 +32142,7 @@
    * accessible as locals.
    */
 #pragma GCC diagnostic push
-#ifndef __clang__
+#if defined(__GNUC__) && !defined(__clang__)
 # pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
 #endif
   Nsf_PushFrameObj(interp, object, framePtr);
@@ -32505,7 +32505,7 @@
    * the object accessible as locals.
    */
 #pragma GCC diagnostic push
-#ifndef __clang__
+#if defined(__GNUC__) && !defined(__clang__)
 # pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
 #endif
   Nsf_PushFrameObj(interp, object, framePtr);