Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

bug: error #8259 TBP def must contain 1 binding

Izaak_Beekman
New Contributor II
1,074 Views

I’m a bit confused as to why the compiler is flagging this as an error, because I thought it was one of the F2008 features now supported by ifort:

module mymod
  implicit none

  type mt
     real :: foo
   contains
     procedure :: one ,two
  end type
contains
  function one(this)
    class(mt) ,intent(in) :: this
    real :: one
    one = this%foo + 1.0
  end function
  function two(this)
    class(mt) ,intent(in) :: this
    real :: two
    two = this%foo + 2.0
  end function
end module
13:37 IBB-MBP-2:intel-bugs $ /usr/bin/ifort multi_tbp_one_procedure_stmt.f90
multi_tbp_one_procedure_stmt.f90(7): error #8259: The type bound procedure definition statement must contains only one binding name.   [TWO]
     procedure :: one ,two
-----------------------^
compilation aborted for multi_tbp_one_procedure_stmt.f90 (code 1)
13:38 IBB-MBP-2:intel-bugs $ /usr/bin/ifort -V
Intel(R) Fortran Intel(R) 64 Compiler XE for applications running on Intel(R) 64, Version 15.0.0.077 Build 20140716
Copyright (C) 1985-2014 Intel Corporation.  All rights reserved.

sometimes this seems to go away (with other codes) when I remove the `-stand f08` flag… not sure why.

0 Kudos
1 Solution
Barbara_P_Intel
Moderator
334 Views

Please update to the current Fortran compiler. It was released in December 2024. The reproducer is accepted without any error messages.

The Fortran compilers are available as part of the Intel HPC Toolkit. You can download it here.

We recommend that you update to the current compiler releases for bug fixes and security features.

 

View solution in original post

0 Kudos
11 Replies
FortranFan
Honored Contributor II
1,074 Views

Izaak Beekman wrote:

I’m a bit confused as to why the compiler is flagging this as an error, because I thought it was one of the F2008 features now supported by ifort:

...

Not that I've gone looking for such a thing, but I've not seen any evidence Intel Fortran supports this Fortran 2008 feature yet; now as a matter of style, I prefer to have the procedure statement to only include one binding name per line.

0 Kudos
Izaak_Beekman
New Contributor II
1,074 Views

huh, it’s my suspicion that this is at least supported under windows, as a collaborator of mine wrote the code that first triggered this error for me and I know he uses ifort as a compiler.

0 Kudos
FortranFan
Honored Contributor II
1,074 Views

Online documentation (https://software.intel.com/en-us/node/525432) for Intel Fortran, for example, doesn't indicate support for Fortran 2008 syntax.

0 Kudos
Steven_L_Intel1
Employee
1,074 Views

Not supported on Windows:

E:\Projects>ifort -c t.f90
Intel(R) Visual Fortran Compiler XE for applications running on IA-32, Version 15.0.1.148 Build 20141023
Copyright (C) 1985-2014 Intel Corporation.  All rights reserved.

t.f90(7): error #8259: The type bound procedure definition statement must contains only one binding name.   [TWO]
     procedure :: one ,two
-----------------------^
compilation aborted for t.f90 (code 1)

F2003 says:

12 R451 specific-binding is PROCEDURE [ (interface-name) ]
13 [ [ , binding-attr -list ] :: ]
14 binding-name [ => procedure-name ]

F2008 says:

11 R448 type-bound-procedure-stmt is PROCEDURE [ [ , binding-attr-list ] :: ] type-bound-proc-decl-list
12 or PROCEDURE (interface-name), binding-attr-list :: binding-name-list
13 R449 type-bound-proc-decl is binding-name [ => procedure-name ]

I'll make sure that this is on our list of F2008 features to support in the future.

0 Kudos
Izaak_Beekman
New Contributor II
1,074 Views

huh, interesting… maybe he only tested that commit in question with gfortran… or not at all. Who knows… anyway, thanks!

0 Kudos
FortranFan
Honored Contributor II
1,074 Views

Izaak Beekman wrote:

huh, interesting… maybe he only tested that commit in question with gfortran… or not at all. Who knows… anyway, thanks!

Yes, that's quite possible as gfortran does support this feature.  Or it is possible your colleague was misled by the paper by Chivers and Sleighthomme (2014) (http://dl.acm.org/citation.cfm?id=2647345&CFID=471287418&CFTOKEN=20723886) that erroneously indicates such a feature has been implement in Intel Fortran but didn't test it.

Steve, this appears the second time the paper at ACM Fortran Forum has misleading account on Intel Fortran compiler: would Intel care to contact the authors and get the information updated?

Separately, has Intel established a target timeline for becoming a full-feature 2008 compiler and if so, can Intel share it with the forum readers?

0 Kudos
Steven_L_Intel1
Employee
1,074 Views

Yes, I've noticed errors in that chart even when we supply the correct info (which we do for each issue.) I'll double-check - we might have made an error here. We're on good terms with the authors.

0 Kudos
Steven_L_Intel1
Employee
1,074 Views

It is our error that we indicated support for this feature - we thought this had been done a long time ago, but evidently it was overlooked. I have entered issue DPD200365119 for it. Thanks for bringing this to our attention. We'll make sure the next revision of the chart has the correct data, and we'll implement the feature for a future release.

0 Kudos
Steven_L_Intel1
Employee
1,074 Views

This feature is planned to be added in an update to the 17.0 compiler, probably update 1 in October/November.

0 Kudos
AyanBanerjee
Beginner
363 Views

I have checked my ifort version it is Version 17.0.0.098 Build 20160721.

 

This is still not supporting the corresponding statement in F2008.

0 Kudos
Barbara_P_Intel
Moderator
335 Views

Please update to the current Fortran compiler. It was released in December 2024. The reproducer is accepted without any error messages.

The Fortran compilers are available as part of the Intel HPC Toolkit. You can download it here.

We recommend that you update to the current compiler releases for bug fixes and security features.

 

0 Kudos
Reply