Community
cancel
Showing results for 
Search instead for 
Did you mean: 
New Contributor II
48 Views

bug: error #8259 TBP def must contain 1 binding

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
9 Replies
Honored Contributor I
48 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
New Contributor II
48 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
Honored Contributor I
48 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
48 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
New Contributor II
48 Views

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

0 Kudos
Honored Contributor I
48 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
48 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
48 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
48 Views

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

0 Kudos