Index: trans-expr.c =================================================================== --- trans-expr.c (revision 226006) +++ trans-expr.c (working copy) @@ -5921,13 +5921,16 @@ gfc_conv_procedure_call (gfc_se * se, gf vec_safe_reserve (retargs, arglen); /* Add the return arguments. */ - retargs->splice (arglist); + if (!vec_safe_is_empty (arglist)) + retargs->splice (arglist); /* Add the hidden present status for optional+value to the arguments. */ - retargs->splice (optionalargs); + if (!vec_safe_is_empty (optionalargs)) + retargs->splice (optionalargs); /* Add the hidden string length parameters to the arguments. */ - retargs->splice (stringargs); + if (!vec_safe_is_empty (stringargs)) + retargs->splice (stringargs); /* We may want to append extra arguments here. This is used e.g. for calls to libgfortran_matmul_??, which need extra information. */