(j3.2006) (SC22WG5.4340) 10-208r1
Reinhold.Bader at lrz.de
Reinhold.Bader
Wed Oct 13 18:41:51 EDT 2010
Hello all,
I do not understand the argumentation given in answer A1 of 10-208r1. I
suspect this may be due to the fact that I do not exactly understand what
is meant by
"[...] the call to the type-bound procedure cannot be resolved [...]"
According to my understanding, invocation of a type-bound procedure on a
coindexed object involves the following steps:
(1) determine which dynamic type o_foo is of (and this information *is*
locally available, no matter what the type of o_foo%badcomponent is), and
hence which subprogram must be executed
(2) copy object from remote image to invoking image
(3) execute the identified subprogram
(4) copy back object to image provided certain prerequisites are fulfilled
(which presumably is not the case for the %badcomponent case anyway).
Based on this, I'd judge step (2) to be the problem. However, in this case
the requirement in 12.5.2.4p2 would not be sufficient to avoid the
problem, even if you have a non-polymorphic actual argument. Or does
10-208r1 wish to imply that the construction
SELECT TYPE(o_foo)
TYPE IS (foo)
CALL o_foo[2]%op(1)
END SELECT
is also disallowed if the dynamic type of o_foo is badfoo?
Slightly (?) confused,
Reinhold
More information about the J3
mailing list