Closed
Description
Consider the following code:
MODULE M
USE ISO_C_BINDING
INTERFACE ExtFun
FUNCTION ExtFun() BIND(C)
IMPORT
INTEGER(C_INT) :: ExtFun
END FUNCTION
END INTERFACE
END MODULE
PROGRAM MAIN
USE M
PROCEDURE(ExtFun), BIND(C), POINTER :: PExtFun
END
Flang currently issues an error as:
: error: An interface name with BIND attribute must be specified if the BIND attribute is specified in a procedure declaration statement
PROCEDURE(ExtFun), BIND(C), POINTER :: PExtFun
^^^^^^^
It passes if I remove the generic name. The BIND(C)
attribute seems missing from both the generic and specific symbol in the dump.
Activity
llvmbot commentedon Feb 19, 2024
@llvm/issue-subscribers-flang-frontend
Author: Daniel Chen (DanielCChen)
INTERFACE ExtFun
FUNCTION ExtFun() BIND(C)
IMPORT
INTEGER(C_INT) :: ExtFun
END FUNCTION
END INTERFACE
END MODULE
PROGRAM MAIN
USE M
PROCEDURE(ExtFun), BIND(C), POINTER :: PExtFun
END
: error: An interface name with BIND attribute must be specified if the BIND attribute is specified in a procedure declaration statement
PROCEDURE(ExtFun), BIND(C), POINTER :: PExtFun
^^^^^^^
llvmbot commentedon Feb 19, 2024
@llvm/issue-subscribers-bug
Author: Daniel Chen (DanielCChen)
INTERFACE ExtFun
FUNCTION ExtFun() BIND(C)
IMPORT
INTEGER(C_INT) :: ExtFun
END FUNCTION
END INTERFACE
END MODULE
PROGRAM MAIN
USE M
PROCEDURE(ExtFun), BIND(C), POINTER :: PExtFun
END
: error: An interface name with BIND attribute must be specified if the BIND attribute is specified in a procedure declaration statement
PROCEDURE(ExtFun), BIND(C), POINTER :: PExtFun
^^^^^^^
[-][Flang] BINC(C) attribute not propagate to the generic name that is the same as the specific name that has the BIND(C) attribute. [/-][+][Flang] GENERIC INTERFACE: BINC(C) attribute not propagate to the generic name that is the same as the specific name that has the BIND(C) attribute. [/+][flang] Fix handling of shadowed procedure name used as interface
klausler commentedon Feb 23, 2024
#82837
DanielCChen commentedon Feb 27, 2024
I have verified PR #82837 has fixed the reproducer and the original test case.
Thanks for the quick fix! @klausler
[flang] Fix handling of shadowed procedure name used as interface (#8…