(j3.2006) Do C_PTR and C_FUNPTR have pointer components
Mon Jan 15 23:34:09 EST 2007
In the UTI's in 07-007 Malcolm says that saying that IMAGE_TEAM is a
derived type with pointer components does not actually force the
implementation to have such components...it merely helps to write the
standard more easily and with less repetition and special-casing.
I think we should say such a thing for types C_PTR and C_FUNPTR. They
really do act like they have a pointer component. This would eliminate
the need to special case them. For example, the issues raised by UTI 192
would go away---it would be covered under the pointer component clauses.
Similarly for the new restrictions on cross-image use of pointers---we
presently have to always add analogous restrictions for the C pointers.
I have always been unhappy that C interop did not tie into the usual
Fortran pointers, and rather invented yet another, opaque, way of having
pointers. And I am seeing that this is indeed causing the problems I
envisioned...with C pointers always needing extra integration whenever
we change something about Fortran pointers.
Are there reasons against saying C_PTR has pointer direct components?
Aleksandar Donev, Ph.D.
Lawrence Postdoctoral Fellow @ LLNL
High Performance Computational Materials Science and Chemistry
E-mail: donev1 at llnl.gov
Phone: (925) 424-6816 Fax: (925) 423-0785
Address: P.O.Box 808, L-367, Livermore, CA 94551-9900
More information about the J3