http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48066
--- Comment #5 from Tobias Burnus <burnus at gcc dot gnu.org> 2011-03-11 11:28:57 UTC --- Draft patch: --- a/libgfortran/m4/ifunction.m4 +++ b/libgfortran/m4/ifunction.m4 @@ -132,7 +132,10 @@ name`'rtype_qual`_'atype_code (rtype * const restrict retarray, ')dnl define(START_ARRAY_BLOCK, ` if (len <= 0) - *dest = '$1`; + { + if (dest) + *dest = '$1`; + } else { for (n = 0; n < len; n++, src += delta) @@ -313,7 +316,10 @@ void ')dnl define(START_MASKED_ARRAY_BLOCK, ` if (len <= 0) - *dest = '$1`; + { + if (dest) + *dest = '$1`; + } else { for (n = 0; n < len; n++, src += delta, msrc += mdelta) --- a/libgfortran/m4/ifunction_logical.m4 +++ b/libgfortran/m4/ifunction_logical.m4 @@ -159,7 +159,10 @@ name`'rtype_qual`_'atype_code (rtype * const restrict retarray, ')dnl define(START_ARRAY_BLOCK, ` if (len <= 0) - *dest = '$1`; + { + if (dest) + *dest = '$1`; + } else { for (n = 0; n < len; n++, src += delta)