[Bug fortran/54667] [OOP] gimplification failure with c_f_pointer

janus at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Sat Sep 22 09:05:00 GMT 2012


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

janus at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|ice-on-valid-code           |ice-on-invalid-code
                 CC|                            |abensonca at gmail dot com

--- Comment #3 from janus at gcc dot gnu.org 2012-09-22 09:04:22 UTC ---
(In reply to comment #2)
> While it would be nontrivial to fully enforce these constraints by a runtime
> check, I think they might effectively mean that FPTR must not be polymorphic:
> In the second case this constraint is spelled out explicitly, and the first
> case demands that FPTR shall be interoperable. But polymorphic objects are by
> definition not interoperable.

Note that there are similar constraints on the argument of C_LOC, where we
completely reject any polymorphic entities (cf. PR 44925):

  cSelf = c_loc (self)
                 1
Error: Parameter 'self' to 'c_loc' at (1) must not be polymorphic


I would conclude that this PR should actually be classified as ICE-on-invalid,
and we should reject the polymorphic argument to C_F_POINTER.

Andrew, have you tried your test case with any other compilers?



More information about the Gcc-bugs mailing list