On Thu, Nov 14, 2024 at 08:58:26PM +0100, Jan Hubicka wrote: > fortran produces malloc call with signed size instead of unsigned. This > in turn makes gimple_call_builtin_p to fail type checking and we do not > treat the call as malloc call. > > regtested x86_64-linux, OK? > > gcc/fortran/ChangeLog: > > * trans-expr.cc (gfc_trans_subcomponent_assign): Convert malloc > parameter to size_type.
LGTM. > diff --git a/gcc/fortran/trans-expr.cc b/gcc/fortran/trans-expr.cc > index ddbb5ecf068..951ac26c4ea 100644 > --- a/gcc/fortran/trans-expr.cc > +++ b/gcc/fortran/trans-expr.cc > @@ -9661,6 +9661,7 @@ gfc_trans_subcomponent_assign (tree dest, gfc_component > * cm, > gfc_init_se (&se, NULL); > gfc_conv_expr (&se, expr); > size = size_of_string_in_bytes (cm->ts.kind, se.string_length); > + size = fold_convert (size_type_node, size); > tmp = build_call_expr_loc (input_location, > builtin_decl_explicit (BUILT_IN_MALLOC), > 1, size); Jakub