llvm-project/flang/test/Semantics/modfile21.f90
Peter Klausler 69e2665c8b [flang] BIND(C,NAME=...) corrections
The Fortran standard's various restrictions on the use of BIND(C)
often depend more on the presence or absence of an explicit NAME=
specification rather than on its value, but semantics and module
file generation aren't making distinctions between explicit NAME=
specifications that happen to match the default name and declarations
that don't have NAME=.  Tweak semantics and module file generation
to conform, and also complain when named BIND(C) attributes are
erroneously applied to entities that can't support them, like
ABSTRACT interfaces.

Differential Revision: https://reviews.llvm.org/D145107
2023-03-02 10:10:06 -08:00

36 lines
591 B
Fortran

! RUN: %python %S/test_modfile.py %s %flang_fc1
module m
logical b
bind(C) :: /cb2/
common //t
common /cb/ x(2:10) /cb2/a,b,c
common /cb/ y,z
common w
common u,v
complex w
dimension b(4,4)
bind(C, name="CB") /cb/
common /b/ cb
end
!Expect: m.mod
!module m
! logical(4)::b(1_8:4_8,1_8:4_8)
! real(4)::t
! real(4)::x(2_8:10_8)
! real(4)::a
! real(4)::c
! real(4)::y
! real(4)::z
! real(4)::u
! real(4)::v
! complex(4)::w
! real(4)::cb
! common/cb/x,y,z
! bind(c, name="CB")::/cb/
! common/cb2/a,b,c
! bind(c)::/cb2/
! common/b/cb
! common//t,w,u,v
!end