This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: 970125-0.f


>Note that we have (ADDR_EXPR (ADDR_EXPR ...))  which seems more than
>a little strange to me.

In the general case, not any stranger than (ADDR_EXPR (PLUS_EXPR ...)),
which gcc has supported for years.  (Making it possible for me to
rip a bunch of grody code out of g77, and apparently the changes
were driven by Kenner wanting to remove similar code from GNAT as well,
though maybe gpc drove this.)

Specifically, (ADDR_EXPR (ADDR_EXPR (VAR_DECL `foo'))) in, e.g., a
list of arguments, means "pass a pointer to the address of foo".
Or, "pass the address of foo by reference", which is how g77 really
looks at it.

But, as I said in email I just sent, g77 has a bit of a rats-nest
of bugs here, from incorrect documentation (which I've fixed, and will
submit later), to a non-portable test case (which I've asked Dave Love
to fix using a new version I sent him), to a bug that prevents the fixed
test case from compiling without crashing g77, to another bug that, even
when that's fixed, causes g77 to spuriously reject the fixed case for yet
another reason, etc.

So, the back end should be fixed here, since the end result of all
the fixes needed for g77 is that the new test will almost certainly
tell the back end pretty much the exact same thing as it does now.

        tq vm, (burley)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]