Skip to content

[Flang] Compilation error when bind statement is specified at the beginning of specification-part in module #89558

Closed
@ohno-fj

Description

@ohno-fj
Version of flang-new : 19.0.0(4f19f15a601a5761b12c9c66d99d97dbc89ef90d)/AArch64

When bind statement is specified at the beginning of specification-part in module, a compilation error occurs.

However, when bind statement is specified at the end of specification-part in module, a compilation terminates normally.
The above program (snggq538_22.f90) is attached at the end.

The following are the test program, Flang-new, Gfortran and ifort compilation/execution result.

snggq538_2.f90:

module m3
  bind (c,name='y3'):: x3
  integer:: x3
  common /x3/ k
contains
  subroutine z3
    k=1
    x3=2
  end subroutine z3
end module m3

subroutine s1
  use m3
  call z3
end subroutine s1

program main
  call s1
  print *,'pass'
end program main
$ flang-new snggq538_2.f90
error: Semantic errors in snggq538_2.f90
./snggq538_2.f90:2:24: error: The entity 'x3' has multiple BIND names
    bind (c,name='y3'):: x3
                         ^^
./snggq538_2.f90:4:11: error: Two entities have the same global name 'x3'
    common /x3/ k
            ^^
./snggq538_2.f90:3:13: Conflicting declaration
    integer:: x3
              ^^
$
$ gfortran snggq538_2.f90; ./a.out
 pass
$
$ ifort -diag-disable=10448 snggq538_2.f90; ./a.out
 pass
$

snggq538_22.f90:

module m3
  integer:: x3
  common /x3/ k
  bind (c,name='y3'):: x3
contains
  subroutine z3
    k=1
    x3=2
  end subroutine z3
end module m3

subroutine s1
  use m3
  call z3
end subroutine s1

program main
  call s1
  print *,'pass'
end program main
$ flang-new snggq538_22.f90
$

Metadata

Metadata

Assignees

Labels

bugIndicates an unexpected problem or unintended behaviorflang:frontend

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions