https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86470
--- Comment #7 from anlauf at gcc dot gnu.org ---
Untested patch:
diff --git a/gcc/fortran/trans.c b/gcc/fortran/trans.c
index a2376917635..7699e98f6ea 100644
--- a/gcc/fortran/trans.c
+++ b/gcc/fortran/trans.c
@@ -689,9 +689,14 @@ gfc_call_malloc (stmtblock_t * block, tree type, tree
size)
/* Call malloc. */
gfc_start_block (&block2);
- size = fold_convert (size_type_node, size);
- size = fold_build2_loc (input_location, MAX_EXPR, size_type_node, size,
- build_int_cst (size_type_node, 1));
+ if (size)
+ {
+ size = fold_convert (size_type_node, size);
+ size = fold_build2_loc (input_location, MAX_EXPR, size_type_node, size,
+ build_int_cst (size_type_node, 1));
+ }
+ else
+ size = build_int_cst (size_type_node, 1);
malloc_tree = builtin_decl_explicit (BUILT_IN_MALLOC);
gfc_add_modify (&block2, res,
Not sure if this is correct, but it makes gfc_call_malloc match the comment
preceeding that function.
I'll leave the interpretation to the experts.