xref: /llvm-project/flang/test/Semantics/rewrite03.f90 (revision fbbd8b0741586794721639715d1d974db56f83ac)
1*fbbd8b07SPeter Klausler!RUN: %flang_fc1 -fdebug-unparse %s 2>&1 | FileCheck %s
2*fbbd8b07SPeter Klausler!Test rewriting of misparsed statement function definitions
3*fbbd8b07SPeter Klausler!into array element assignment statements.
4*fbbd8b07SPeter Klausler
5*fbbd8b07SPeter Klauslerprogram main
6*fbbd8b07SPeter Klausler  real sf(1)
7*fbbd8b07SPeter Klausler  integer :: j = 1
8*fbbd8b07SPeter Klausler!CHECK: sf(int(j,kind=8))=1._4
9*fbbd8b07SPeter Klausler  sf(j) = 1.
10*fbbd8b07SPeter Klauslerend
11*fbbd8b07SPeter Klausler
12*fbbd8b07SPeter Klauslerfunction func
13*fbbd8b07SPeter Klausler  real sf(1)
14*fbbd8b07SPeter Klausler  integer :: j = 1
15*fbbd8b07SPeter Klausler!CHECK: sf(int(j,kind=8))=2._4
16*fbbd8b07SPeter Klausler  sf(j) = 2.
17*fbbd8b07SPeter Klausler  func = 0.
18*fbbd8b07SPeter Klauslerend
19*fbbd8b07SPeter Klausler
20*fbbd8b07SPeter Klauslersubroutine subr
21*fbbd8b07SPeter Klausler  real sf(1)
22*fbbd8b07SPeter Klausler  integer :: j = 1
23*fbbd8b07SPeter Klausler!CHECK: sf(int(j,kind=8))=3._4
24*fbbd8b07SPeter Klausler  sf(j) = 3.
25*fbbd8b07SPeter Klauslerend
26*fbbd8b07SPeter Klausler
27*fbbd8b07SPeter Klauslermodule m
28*fbbd8b07SPeter Klausler  interface
29*fbbd8b07SPeter Klausler    module subroutine smp
30*fbbd8b07SPeter Klausler    end
31*fbbd8b07SPeter Klausler  end interface
32*fbbd8b07SPeter Klauslerend
33*fbbd8b07SPeter Klauslersubmodule(m) sm
34*fbbd8b07SPeter Klausler contains
35*fbbd8b07SPeter Klausler  module procedure smp
36*fbbd8b07SPeter Klausler    real sf(1)
37*fbbd8b07SPeter Klausler    integer :: j = 1
38*fbbd8b07SPeter Klausler!CHECK: sf(int(j,kind=8))=4._4
39*fbbd8b07SPeter Klausler    sf(j) = 4.
40*fbbd8b07SPeter Klausler  end
41*fbbd8b07SPeter Klauslerend
42*fbbd8b07SPeter Klausler
43*fbbd8b07SPeter Klauslersubroutine block
44*fbbd8b07SPeter Klausler  block
45*fbbd8b07SPeter Klausler    real sf(1)
46*fbbd8b07SPeter Klausler    integer :: j = 1
47*fbbd8b07SPeter Klausler!CHECK: sf(int(j,kind=8))=5._4
48*fbbd8b07SPeter Klausler    sf(j) = 5.
49*fbbd8b07SPeter Klausler  end block
50*fbbd8b07SPeter Klauslerend
51