This is the mail archive of the
fortran@gcc.gnu.org
mailing list for the GNU Fortran project.
Re: [Fortran-Experiments]: patch
Hi Chris,
Christopher D. Rickett wrote:
>> - nested interfaces do not work yet,
>> http://gcc.gnu.org/ml/fortran/2007-02/msg00535.html
> did you apply your proposed patch for bind(c) dummy procedures?
Yes, I applied the big patch.
> if so, my next patch (which i'm holding on to until the one from
> Saturday gets committed) should finish fixing these.
Thanks.
>> - gfortran rejects bind(c,name=""),
>> http://gcc.gnu.org/ml/fortran/2007-02/msg00505.html (b)
> should work with the patch i'm waiting to submit. now i simply let
> gfortran mangle the symbol as normal if the binding label was "".
This should be enough.
> we could further improve this by adding some sort of character that is
> invalid for C names just to ensure the C programmer can't call it by
> it's mangled name either.
I don't think that is needed.
> i also issue a warning for private symbols that have been given a
> binding label (this was proposed in one of Tobias' emails and seemed
> like a good idea).
Thanks.
>>
>> - gfortran allows functions to return an array,
>> http://gcc.gnu.org/ml/fortran/2007-02/msg00505.html (c)
> this is fixed in the patch i'm holding. i also added a check to
> ensure character strings aren't returned, since i hadn't checked for
> that either. apologies for the obvious oversites.
No problem, nobody is perfect and the standard is not written in a way
that one can quickly see what is allowed and what forbidden.
>> - Same error is printed twice,
>> http://gcc.gnu.org/ml/fortran/2007-02/msg00496.html
> this should be also be fixed in the patch i'm holding. the problem
> was that i had not moved all of the error checking for BIND(C) to the
> resolve stage. i was still verifying the derived types after matching
> them. however, i now do it during resolution only.
Great!
> hmm, i thought that this should have been fixed with my last patch.
> either way, my current local gfortran reports the following:
Did you put the whole source in a single file or did you split the
modules into different files? If I put everything into a single file, I
get a nice error. However, if I put the first module in a file by its
own, compile it and compile than the file with the second module and the
main file, I don't get an error.
Tobias