https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102368

--- Comment #9 from anlauf at gcc dot gnu.org ---
(In reply to Thomas Koenig from comment #8)
> (In reply to anlauf from comment #7)
> > (In reply to Thomas Koenig from comment #6)
> > > The length of
> > > 
> > > character(kind=c_char, len=*), parameter :: blergh = 'abc'
> > > 
> > > is three, the * in "len=*" is a type paremater.
> > 
> > Well, F2023:18.3.1 (Interoperability of intrinsic types) still has:
> > 
> > (1) ... If the type is character, the length type parameter is interoperable
> > if and only if its value is one. ...
> > 
> > How does that fit with your interpretation?
> 
> Hm, it doesn't.
> 
> In that case, it seems that something slipped into F2018 that
> was subsequently clarified/nuked in F2023.
> 
> Resolve as invalid, then?

The same text is also found in F2018:18.3.1 (1).

A quick survey with other brands:

NAG:

NAG Fortran Compiler Release 7.2(Shin-Urayasu) Build 7200
Error: pr102368.f90, line 8: Argument A to C_SIZEOF function in intrinsic
module ISO_C_BINDING has character length 3
Error: pr102368.f90, line 9: Argument B to C_SIZEOF function in intrinsic
module ISO_C_BINDING has character length 8

ifx:

pr102368.f90(9): error #8950: A character data entity with length other than 1
is not interoperable.   [B]
  if (c_sizeof (b) /= 8) stop 2
----------------^

Nvidia and AMD flang accept it.

Again, Intel is not really consistent, but NAG is consistent and clear.

I agree to close as invalid.

Reply via email to