git: 85723e5e46f7 - main - science/silo: fix build with clang 15

From: Dimitry Andric <dim_at_FreeBSD.org>
Date: Tue, 10 Jan 2023 18:27:44 UTC
The branch main has been updated by dim (src committer):

URL: https://cgit.FreeBSD.org/ports/commit/?id=85723e5e46f7acb9f4403aace3b5192dab15c30e

commit 85723e5e46f7acb9f4403aace3b5192dab15c30e
Author:     Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2023-01-10 18:15:27 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2023-01-10 18:26:30 +0000

    science/silo: fix build with clang 15
    
    During an exp-run for llvm 15 (see bug 265425), it turned out that
    science/silo failed to build with clang 15:
    
      /wrkdirs/usr/ports/science/silo/work/Silo-4.11-68-g819658e/src/hdf5_drv/silo_hdf5.c:1869:13: error: incompatible integer to pointer conversion passing 'char' to parameter of type 'const char *'; take the address with & [-Wint-conversion]
                  DB_OBJ_CASE(DB_CURVE, DBcurve_mt, npts?1:1, yvarname)
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      /wrkdirs/usr/ports/science/silo/work/Silo-4.11-68-g819658e/src/hdf5_drv/silo_hdf5.c:1812:36: note: expanded from macro 'DB_OBJ_CASE'
                  (*dsnames)[i] = strdup(m.MEMNAME[i]);                \
                                  ~~~~~~~^~~~~~~~~~~~~
      /wrkdirs/usr/ports/science/silo/work/Silo-4.11-68-g819658e/src/silo/silo_private.h:939:35: note: expanded from macro 'strdup'
      #define strdup(s) _db_safe_strdup(s)
                                        ^
      /wrkdirs/usr/ports/science/silo/work/.build/include/silo.h:2214:68: note: passing argument to parameter here
      SILO_API extern char *                 _db_safe_strdup(const char *);
                                                                         ^
    
    This turns out to be a bug in silo, which I reported upstream in
    https://github.com/LLNL/Silo/issues/296, and which was fixed in
    https://github.com/LLNL/Silo/commit/be29ddf.
    
    PR:             268864
    Approved by:    yuri (maintainer)
    MFH:            2023Q1
---
 science/silo/files/patch-git-commit-be29ddf | 44 +++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)

diff --git a/science/silo/files/patch-git-commit-be29ddf b/science/silo/files/patch-git-commit-be29ddf
new file mode 100644
index 000000000000..fba494b0b956
--- /dev/null
+++ b/science/silo/files/patch-git-commit-be29ddf
@@ -0,0 +1,44 @@
+commit be29ddf0352bc8e5a7eecc8772a3acb64dfde18c
+Author: miller86 <miller86@llnl.gov>
+Date:   Fri Dec 2 19:00:20 2022 -0800
+
+    fix obj-case-macro
+
+diff --git src/hdf5_drv/silo_hdf5.c src/hdf5_drv/silo_hdf5.c
+index 17af250..c45d689 100644
+--- src/hdf5_drv/silo_hdf5.c
++++ src/hdf5_drv/silo_hdf5.c
+@@ -1809,7 +1809,7 @@ db_hdf5_cwg(DBfile *_dbfile)
+              *dscount = m.MEMCNT;                                \
+         *dsnames = (char **) calloc(*dscount, sizeof(char**));   \
+         for (i = 0; i < *dscount; i++)                           \
+-            (*dsnames)[i] = strdup(m.MEMNAME[i]);                \
++            (*dsnames)[i] = strdup(m.MEMNAME);                   \
+         break;                                                   \
+     }
+ 
+@@ -1857,15 +1857,15 @@ db_hdf5_get_obj_dsnames(DBfile *_dbfile, char const *name, int *dscount, char **
+ 
+         switch(_objtype)
+         {
+-            DB_OBJ_CASE(DB_QUADVAR, DBquadvar_mt, nvals, value)
+-            /*DB_OBJ_CASE(DB_QUAD_RECT, DBquadmesh_mt, nspace, coord) wont work for rect case */
+-            DB_OBJ_CASE(DB_QUAD_CURV, DBquadmesh_mt, nspace, coord)
+-            DB_OBJ_CASE(DB_QUADMESH, DBquadmesh_mt, nspace, coord)
+-            DB_OBJ_CASE(DB_UCDVAR, DBucdvar_mt, nvals, value)
+-            DB_OBJ_CASE(DB_UCDMESH, DBucdmesh_mt, ndims, coord)
+-            DB_OBJ_CASE(DB_POINTVAR, DBpointvar_mt, nvals, data)
+-            DB_OBJ_CASE(DB_POINTMESH, DBpointmesh_mt, ndims, coord)
+-            DB_OBJ_CASE(DB_CSGVAR, DBcsgvar_mt, nvals, vals)
++            DB_OBJ_CASE(DB_QUADVAR, DBquadvar_mt, nvals, value[i])
++            /*DB_OBJ_CASE(DB_QUAD_RECT, DBquadmesh_mt, nspace, coord[i]) wont work for rect case */
++            DB_OBJ_CASE(DB_QUAD_CURV, DBquadmesh_mt, nspace, coord[i])
++            DB_OBJ_CASE(DB_QUADMESH, DBquadmesh_mt, nspace, coord[i])
++            DB_OBJ_CASE(DB_UCDVAR, DBucdvar_mt, nvals, value[i])
++            DB_OBJ_CASE(DB_UCDMESH, DBucdmesh_mt, ndims, coord[i])
++            DB_OBJ_CASE(DB_POINTVAR, DBpointvar_mt, nvals, data[i])
++            DB_OBJ_CASE(DB_POINTMESH, DBpointmesh_mt, ndims, coord[i])
++            DB_OBJ_CASE(DB_CSGVAR, DBcsgvar_mt, nvals, vals[i])
+             DB_OBJ_CASE(DB_CURVE, DBcurve_mt, npts?1:1, yvarname)
+         }
+         H5Tclose(o);