------- Comment #4 from domob at gcc dot gnu dot org  2008-10-04 10:16 -------
The problem is clearly that because of the error the type-bound procedure
remains in a somewhat "dubious" state (its pass_arg_num is invalid) and this
causes the ICE when resolving an actual call to it afterwards.  This is of
course easy to fix.

But I wonder about what a subsequent call to the procedure should do, as the
PASS could not be resolved...  This will then probably generate errors about
actual/formal arglist mismatch for correct calls where only the name inside
PASS(x) is wrong.  Is this ok?  The easiest would probably be to take
PASS(invalid) as NOPASS or interpret it as PASS without argument name for that
matter.

Another solution would be to simply ignore calls to such an erraneous procedure
in the resolver (and set them to EXEC_NOP for instance to avoid later confusion
of gfortran?) which would mean that there is no error checking at all for them;
but as this is not possible anyway, maybe that should be the way to go?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37638

Reply via email to