File netcdf-4.0.1-strict-aliasing.patch of Package netcdf
--- libsrc/posixio.c
+++ libsrc/posixio.c
@@ -404,7 +404,7 @@
px_get(ncio *const nciop, ncio_px *const pxp,
off_t offset, size_t extent,
int rflags,
- void **const vpp)
+ char **const vpp)
{
int status = ENOERR;
@@ -603,7 +603,7 @@
pxp->bf_rflags |= rflags;
pxp->bf_refcount++;
- *vpp = (char *)pxp->bf_base + diff;
+ *vpp = pxp->bf_base + diff;
return ENOERR;
}
@@ -631,7 +631,7 @@
ncio_px_get(ncio *const nciop,
off_t offset, size_t extent,
int rflags,
- void **const vpp)
+ char **const vpp)
{
ncio_px *const pxp = (ncio_px *)nciop->pvt;
@@ -662,8 +662,8 @@
{
ncio_px *const pxp = (ncio_px *)nciop->pvt;
int status = ENOERR;
- void *src;
- void *dest;
+ char *src;
+ char *dest;
#if INSTRUMENT
fprintf(stderr, "\tdouble_buffr %ld %ld %ld\n",
@@ -816,7 +816,7 @@
fprintf(stderr, "\tncio_px_move small\n");
#endif
status = px_get(nciop, pxp, lower, extent, RGN_WRITE|rflags,
- (void **)&base);
+ &base);
if(status != ENOERR)
return status;
@@ -1054,7 +1054,7 @@
ncio_spx_get(ncio *const nciop,
off_t offset, size_t extent,
int rflags,
- void **const vpp)
+ char **const vpp)
{
ncio_spx *const pxp = (ncio_spx *)nciop->pvt;
int status = ENOERR;
@@ -1116,7 +1116,7 @@
pxp->bf_cnt = extent;
#ifdef X_ALIGN
- *vpp = (char *)pxp->bf_base + rem;
+ *vpp = pxp->bf_base + rem;
#else
*vpp = pxp->bf_base;
#endif
@@ -1243,7 +1243,7 @@
extent = diff + nbytes;
status = ncio_spx_get(nciop, lower, extent, RGN_WRITE|rflags,
- (void **)&base);
+ &base);
if(status != ENOERR)
return status;