+2019-08-06 Steven G. Kargl <kargl@gcc.gnu.org>
+
+ PR fortran/91359
+ * trans-decl.c (gfc_generate_return): Ensure something is returned
+ from a function.
+
2019-08-06 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/42546
TREE_TYPE (result), DECL_RESULT (fndecl),
result);
}
+ else
+ {
+ /* If the function does not have a result variable, result is
+ NULL_TREE, and a 'return' is generated without a variable.
+ The following generates a 'return __result_XXX' where XXX is
+ the function name. */
+ if (sym == sym->result && sym->attr.function)
+ {
+ result = gfc_get_fake_result_decl (sym, 0);
+ result = fold_build2_loc (input_location, MODIFY_EXPR,
+ TREE_TYPE (result),
+ DECL_RESULT (fndecl), result);
+ }
+ }
}
return build1_v (RETURN_EXPR, result);
+2019-08-06 Steven G. Kargl <kargl@gcc.gnu.org>
+
+ PR fortran/91359
+ * gfortran.dg/pr91359_1.f: New test.
+ * gfortran.dg/pr91359_2.f: Ditto.
+
2019-08-06 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/42546