Re: [PATCH] fortran: Fix creation of reference to C_FUNLOC argument [PR117303]
Harald Anlauf <[email protected]>
| Newsgroups | gmane.comp.gcc.patches,gmane.comp.gcc.fortran |
|---|---|
| Message-ID | <[email protected]> |
Hi Kirill, On 2/2/26 16:05, Kirill Chilikin wrote: > > Dear maintainers, > > The attached patch fixes PR 117303. The reference returned by C_FUNLOC > is assigned to a variable in the added code. Without that, > no reference from the calling subprogram to the argument of C_FUNLOC > was created in the call graph, resulting in an undefined-reference error > with link-time optimization. > > The patch was tested using with "check-fortran" on a x86_64-pc-linux-gnu > system. One existing test from gfortran.dg/c_funloc_test_7.f90 failed > as expected due to code-generation change. The generated code was > > cfp = (void (*<T6d>) (void)) nocsub; > > but now it became > > void * D.4685; > D.4685 = (void *) nocsub; > cfp = (void (*<T6f>) (void)) D.4685; > > The test has been modified in accordance with the changes. > Another test, gfortran.dg/c_funloc_test_9.f90, has been converted from > the test case in PR. > > PR fortran/117303 > > gcc/fortran/ChangeLog: > > * trans-intrinsic.cc (conv_isocbinding_function): > Assign the reference returned by C_FUNLOC to a variable. > > gcc/testsuite/ChangeLog: > > * gfortran.dg/c_funloc_tests_7.f90: > Updated test due to changed code generation. > * gfortran.dg/c_funloc_tests_9.f90: New test. > > Signed-off-by: Kirill Chilikin <[email protected]> > --- > > Please see the attached file for the actual patch. > If accepted, please commit the change as I do not have write access. > > Regards, > Kirill this looks good to me, but I will leave 24 h for others to have a look or comment on it, as I am not too familiar with LTO subtleties. Will commit then unless someone else beats me to it. Thanks, Harald