https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86417
Fritz Reese <foreese at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #15 from Fritz Reese <foreese at gcc dot gnu.org> --- (In reply to janus from comment #13) > (In reply to Fritz Reese from comment #12) > > If we set the component's locus when it is loaded from a module, the > > following patch fixes the issue and retains sane location information for > > the component and its initializer: > > > > diff --git a/gcc/fortran/module.c b/gcc/fortran/module.c > > index b120501beb7..27d68f6b1b5 100644 > > --- a/gcc/fortran/module.c > > +++ b/gcc/fortran/module.c > > @@ -2848,6 +2848,8 @@ mio_component (gfc_component *c, int vtype) > > if (c->attr.proc_pointer) > > mio_typebound_proc (&c->tb); > > > > + c->loc = gfc_current_locus; > > + > > mio_rparen (); > > } > > > > [..] > > > > I am currently running regression tests to verify these patches. If both > > pass and I have not missed something obvious I would prefer adding location > > info to the component when loading from a module (the first patch). > > I agree that this is probably the best way to fix it. If the patch regtests > well, it's ok for trunk from my side. Thanks for having a look! Thanks for the confirmation. I have committed to trunk (without a new testcase, as alloc-comp-3.f90 exposes the regression).