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

Interface confusion warning

Steven_L_Intel1
Employee
641 Views

Moved from unrelated thread

0 Kudos
5 Replies
IanH
Honored Contributor III
641 Views
Thanks.

An oddity when compiling with 12.0 and /stand:f03 shown by the attached - might be related to the ICE reported earlier.

interface-confusion.f90

[fortran]>ifort /c /stand:f03 interface-confusion.f90
Intel Visual Fortran Compiler XE for applications running on IA-32, Version 1
2.0.0.104 Build 20101006
Copyright (C) 1985-2010 Intel Corporation.  All rights reserved.

interface-confusion.f90: warning #7925: An interface-block in a subprogram shall
 not contain an interface-body for a procedure defined by that subprogram.   [EX
TENSIONMOD^PARENTMOD^PROC_INTF][/fortran]
As far as I can tell the interface-block in the example does not do what the warning suggests (names are different for one thing, no procedures defined in the same module as the interface, etc.)

If the modules are placed in separate files the warning is seen to be associated with a file that has the ultimate module, which has no interface-block's or procedures.

Plus my experience is that "^" separating symbols in compiler output is a harbinger of doom.
0 Kudos
Steven_L_Intel1
Employee
641 Views
I don't see this error with Update 1.

[plain]C:Projects>ifort /c /stand:f03 interface-confusion.f90
Intel Visual Fortran Compiler XE for applications running on IA-32, Version 1
2.0.1.127 Build 20101116
Copyright (C) 1985-2010 Intel Corporation. All rights reserved.


C:Projects>[/plain]
0 Kudos
IanH
Honored Contributor III
641 Views
It is still there using Update 1 with a bigger example.

interface-confusion-revisited.f90


[fortran]>ifort /c /warn:all /check:all /stand:f03 interface-confusion-revisited.f90
Intel Visual Fortran Compiler XE for applications running on IA-32, Version 1
2.0.1.127 Build 20101116
Copyright (C) 1985-2010 Intel Corporation.  All rights reserved.

interface-confusion-revisited.f90: warning #7925: An interface-block in a subpro
gram shall not contain an interface-body for a procedure defined by that subprog
ram.   [FOURMOD^THREEMOD^MY_INTF]
[/fortran]

0 Kudos
Steven_L_Intel1
Employee
641 Views
Thanks - this only comes out when you ask for standards checking. I'll report this to the developers. It's interesting that it requires such a complex source to show it. Issue ID is DPD200164410.
0 Kudos
Steven_L_Intel1
Employee
641 Views
This got fixed in 13.0, or perhaps earlier, as a side-effect of another change, but we didn't notice that until just now.
0 Kudos
Reply