xref: /llvm-project/flang/test/Lower/array-wide-char.f90 (revision f35f863a88f83332bef9605ef4cfe4f05c066efb)
1*f35f863aSjeanPerier! RUN: bbc -hlfir=false %s -o - | tco | FileCheck %s
2ae35635fSValentin Clement
3ae35635fSValentin Clementcharacter(LEN=128, KIND=4), PARAMETER :: conarr(3) = &
4ae35635fSValentin Clement     [ character(128,4) :: "now is the time", "for all good men to come", &
5ae35635fSValentin Clement     "to the aid of the country" ]
6ae35635fSValentin Clementcharacter(LEN=10, KIND=4) :: arr(3) = &
7ae35635fSValentin Clement     [ character(10,4) :: "good buddy", "best buddy", " " ]
8ae35635fSValentin Clementcall action_on_char4(conarr)
9ae35635fSValentin Clementcall action_on_char4(arr)
10ae35635fSValentin Clementend program
11ae35635fSValentin Clement
12ae35635fSValentin Clementsubroutine sub1
13ae35635fSValentin Clement  integer, parameter :: k = 4
14ae35635fSValentin Clement  character(63,k), parameter :: wiggle = k_"wiggle"
15ae35635fSValentin Clement  call sub2(wiggle)
16ae35635fSValentin Clementend subroutine sub1
17ae35635fSValentin Clement
18ae35635fSValentin Clement! CHECK-LABEL: @_QFEarr = internal global [3 x [10 x i32]] [
19ae35635fSValentin Clement! CHECK-SAME: [10 x i32] [i32 103, i32 111, i32 111, i32 100, i32 32, i32 98, i32 117, i32 100, i32 100, i32 121],
20ae35635fSValentin Clement! CHECK-SAME: [10 x i32] [i32 98, i32 101, i32 115, i32 116, i32 32, i32 98, i32 117, i32 100, i32 100, i32 121],
21ae35635fSValentin Clement! CHECK-SAME: [10 x i32] [i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32]]
22ae35635fSValentin Clement! CHECK-LABEL: @_QFsub1ECwiggle = internal constant [63 x i32] [i32 119,
23ae35635fSValentin Clement! CHECK-SAME: i32 105, i32 103, i32 103, i32 108, i32 101, i32 32, i32 32,
24ae35635fSValentin Clement! CHECK: @_QQcl[[inline:.*]] = linkonce constant [63 x i32] [i32 119, i32 105, i32 103, i32 103, i32 108, i32 101, i32 32,
25ae35635fSValentin Clement
26ae35635fSValentin Clement! CHECK-LABEL: define void @_QQmain()
27ae35635fSValentin Clement! CHECK: call void @_QPaction_on_char4(ptr @_QFEarr, i64 10)
28ae35635fSValentin Clement
29ae35635fSValentin Clement! CHECK-LABEL: define void @_QPsub1(
3006d103ffSValentin Clement! CHECK: call void @_QPsub2(ptr @_QQcl[[inline]], i64 63)
31