This bug is GCC PR middle-end/68733: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68733
The issue arises because structs larger than 64 bytes are passed by invisible reference and the callee is responsible for copying. Until this is resolved, the ICE can be avoided with the attached patch. Please apply if okay. Thanks, Dave Anglin -- John David Anglin dave.ang...@bell.net
Description: Work around hppa gomp bug TODO: Put a short summary on the line above and replace this paragraph with a longer explanation of this change. Complete the meta-information with other relevant fields (see below for details). To make it easier, the information below has been extracted from the changelog. Adjust it or drop it. . cdo (1.7.0+dfsg.1-2) unstable; urgency=medium . * Change B-D to libpng-dev for png16 transition. Closes: #810171 * Add szlib support using libaec-dev. Author: Alastair McKinstry <mckins...@debian.org> Bug-Debian: https://bugs.debian.org/810171 --- The information above should follow the Patch Tagging Guidelines, please checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here are templates for supplementary fields that you might want to add: Origin: <vendor|upstream|other>, <url of original patch> Bug: <url in upstream bugtracker> Bug-Debian: https://bugs.debian.org/<bugnumber> Bug-Ubuntu: https://launchpad.net/bugs/<bugnumber> Forwarded: <no|not-needed|url proving that it has been forwarded> Reviewed-By: <name and email of someone who approved the patch> Last-Update: <YYYY-MM-DD> --- cdo-1.7.0+dfsg.1.orig/src/remaplib.c +++ cdo-1.7.0+dfsg.1/src/remaplib.c @@ -1573,13 +1573,14 @@ void remap_stat(int remap_order, remapgr /*****************************************************************************/ -void remap_gradients(remapgrid_t grid, const double *restrict array, double *restrict grad_lat, +void remap_gradients(remapgrid_t grid_arg, const double *restrict array, double *restrict grad_lat, double *restrict grad_lon, double *restrict grad_latlon) { long nx, ny, grid_size; long i, j, ip1, im1, jp1, jm1, in, is, ie, iw, ine, inw, ise, isw; double delew, delns; double grad_lat_zero, grad_lon_zero; + remapgrid_t grid = grid_arg; if ( grid.rank != 2 ) cdoAbort("Internal problem (remap_gradients), grid rank = %d!", grid.rank);