- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The following invalid code is erroneously accepted by ifort 2021.4.0:
type :: bad_pdt (k,l)
integer, kind, len :: k = 1
integer, len, kind :: l = 1
character(kind=k,len=l) :: c
end type bad_pdt
end
The Fortran 2018 standard (and similarly 2003+) state:
F2018: 7.5.3.1 Type parameter definition statement R732 type-param-def-stmt is integer-type-spec, type-param-attr-spec :: type-param-decl-list R734 type-param-attr-spec is KIND or LEN (3) The type-param-attr-spec explicitly specifies whether a type parameter is a kind parameter or a length parameter. Thus the KIND and LEN attributes are mutually exclusive.
The correct solution would be to reject the code sample.
Thanks,
Harald
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I filed a bug report on this issue for you, CMPLRIL0-34368. I'll let you know when a fix is available.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
FWIW your type declaration is (may be) non-conformant. From:
A type declaration has the general form:
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jim,
I was talking about F2003 parameterized derived types. I wouldn't call that "old/legacy" yet. Maybe you are thinking of some old/legacy DEC/Intel extension?
The compiler should provide a means to reject non-standard-conforming code. The above sample violates F2018:R734. "ifort -stand" remains quiet.
Harald
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I agree that the compiler should complain. This is not an extension, just a lack of error checking.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I filed a bug report on this issue for you, CMPLRIL0-34368. I'll let you know when a fix is available.
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page