From 4019a4270ffeb2bfc3c7c35c4101ccea26f21d38 Mon Sep 17 00:00:00 2001
From: Uwe Schulzweida <uwe.schulzweida@mpimet.mpg.de>
Date: Mon, 3 Jul 2023 10:47:51 +0200
Subject: [PATCH] fix gcc warning

---
 src/zaxis.c | 23 ++++++++++++++---------
 1 file changed, 14 insertions(+), 9 deletions(-)

diff --git a/src/zaxis.c b/src/zaxis.c
index d3bc4ec30..5f0a190e8 100644
--- a/src/zaxis.c
+++ b/src/zaxis.c
@@ -184,18 +184,23 @@ zaxisCreate_(int zaxistype, int size, int id)
   zaxisptr->type = zaxistype;
   zaxisptr->size = size;
 
-  if (zaxistype >= CDI_NumZaxistype || zaxistype < 0)
-    Error("Internal problem! zaxistype=%d out of range (min=0/max=%d)!", zaxistype, CDI_NumZaxistype - 1);
-
   int zaxisID = zaxisptr->self;
-  cdiDefKeyString(zaxisID, CDI_GLOBAL, CDI_KEY_NAME, ZaxistypeEntry[zaxistype].name);
-  if (zaxistype != ZAXIS_GENERIC) zaxisDefLongname(zaxisID, ZaxistypeEntry[zaxistype].longname);
-  cdiDefKeyString(zaxisID, CDI_GLOBAL, CDI_KEY_UNITS, ZaxistypeEntry[zaxistype].units);
 
-  const char *stdname = ZaxistypeEntry[zaxistype].stdname;
-  if (*stdname) cdiDefVarKeyBytes(&zaxisptr->keys, CDI_KEY_STDNAME, (const unsigned char *) stdname, (int) strlen(stdname) + 1);
+  if (zaxistype >= 0 && zaxistype < CDI_NumZaxistype)
+    {
+      cdiDefKeyString(zaxisID, CDI_GLOBAL, CDI_KEY_NAME, ZaxistypeEntry[zaxistype].name);
+      if (zaxistype != ZAXIS_GENERIC) zaxisDefLongname(zaxisID, ZaxistypeEntry[zaxistype].longname);
+      cdiDefKeyString(zaxisID, CDI_GLOBAL, CDI_KEY_UNITS, ZaxistypeEntry[zaxistype].units);
+
+      const char *stdname = ZaxistypeEntry[zaxistype].stdname;
+      if (*stdname) cdiDefVarKeyBytes(&zaxisptr->keys, CDI_KEY_STDNAME, (const unsigned char *) stdname, (int) strlen(stdname) + 1);
 
-  zaxisptr->positive = ZaxistypeEntry[zaxistype].positive;
+      zaxisptr->positive = ZaxistypeEntry[zaxistype].positive;
+    }
+  else
+    {
+      Error("Internal problem! zaxistype=%d out of range (min=0/max=%d)!", zaxistype, CDI_NumZaxistype - 1);
+    }
 
   return zaxisID;
 }
-- 
GitLab