Hi Martin, This looks to be 'obvious' and is certainly OK for mainline. Backport if you wish.
Thanks Paul On Fri, 3 Nov 2023 at 12:54, Martin Jambor <mjam...@suse.cz> wrote: > Hi, > > when developing an otherwise unrelated patch I've discovered that the > fnspec for the Fortran library function generate_error is wrong. It is > currently ". R . R " where the first R describes the first parameter > and means that it "is only read and does not escape." The function > itself, however, with signature: > > bool > generate_error_common (st_parameter_common *cmp, int family, const char > *message) > > contains the following: > > /* Report status back to the compiler. */ > cmp->flags &= ~IOPARM_LIBRETURN_MASK; > > which does not correspond to the fnspec and breaks testcase > gfortran.dg/large_unit_2.f90 when my patch is applied, since it tries > to re-use the flags from before the call. > > This patch replaces the "R" with "W" which stands for "specifies that > the memory pointed to by the parameter does not escape." > > Bootstrapped and tested on x86_64-linux. OK for master? > > > 2023-11-02 Martin Jambor <mjam...@suse.cz> > > * trans-decl.cc (gfc_build_builtin_function_decls): Fix fnspec of > generate_error. > > --- > gcc/fortran/trans-decl.cc | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/gcc/fortran/trans-decl.cc b/gcc/fortran/trans-decl.cc > index a3f037bd07b..b86cfec7d49 100644 > --- a/gcc/fortran/trans-decl.cc > +++ b/gcc/fortran/trans-decl.cc > @@ -3821,7 +3821,7 @@ gfc_build_builtin_function_decls (void) > void_type_node, -2, pchar_type_node, pchar_type_node); > > gfor_fndecl_generate_error = gfc_build_library_function_decl_with_spec ( > - get_identifier (PREFIX("generate_error")), ". R . R ", > + get_identifier (PREFIX("generate_error")), ". W . R ", > void_type_node, 3, pvoid_type_node, integer_type_node, > pchar_type_node); > > -- > 2.42.0 > >