This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Debug symbols in common block
- To: Richard Henderson <rth at cygnus dot com>
- Subject: Re: Debug symbols in common block
- From: Toon Moene <toon at moene dot indiv dot nluug dot nl>
- Date: Wed, 16 Feb 2000 21:09:53 +0100
- CC: Andy Vaught <andy at maxwell dot la dot asu dot edu>, gcc-patches at gcc dot gnu dot org
- Organization: Moene Computational Physics, Maartensdijk, The Netherlands
- References: <Pine.SGI.3.96.1000215185216.13684A-100000@maxwell.la.asu.edu> <20000216002718.K2373@cygnus.com>
Richard Henderson wrote:
> On Tue, Feb 15, 2000 at 07:02:15PM -0700, Andy Vaught wrote:
> > Its almost the same patch as before, but one of the #ifdef/#endif's that
> > is around a section of code that handles equivalence statements has been
> > left in. g77 doesn't crash on your test program and I still get symbols
> > in common blocks.
> Toon, if you can ack this not crashing for a reasonable
> set of inputs, I'll check it in.
I ran it through a set of 6 different inputs that I thought up
specifically to test this problem with and through our 1300+ routine NWP
code. It passes with flying colours.
BTW: The original solution even caused a f771 crash on:
program aap
equivalence (i,r)
i = 2
print*,r
end
So my suggestion relating the crash on equivalence with dummy arguments
was a red herring.
Of course this means that this patch is only a solution for items in
common blocks, not in equivalences - we should not forget to emphasize
that in the documentation and the news item for 2.96. Nevertheless:
very good work, Andy !
Cheers,
--
Toon Moene (toon@moene.indiv.nluug.nl)
Saturnushof 14, 3738 XG Maartensdijk, The Netherlands
Phone: +31 346 214290; Fax: +31 346 214286
GNU Fortran: http://gcc.gnu.org/onlinedocs/g77_news.html
PS: Richard, don't you forget to repair the typo in the following patch
to the release branch:
*** libf2c/libI77/endfile.c.orig Sun Jan 23 12:06:22 2000
--- libf2c/libI77/endfile.c Sun Jan 23 21:10:55 2000
*************** t_runc(alist *a)
*** 104,107 ****
--- 104,108 ----
if (copy(tf, loc, bf))
goto bad1;
+ b->uwrt = 1;
b->urw = 2;
#ifdef NON_UNIX_STDIO
You mistakenly wrote `b->urwt = 1;' there :-(