xref: /llvm-project/flang/test/Lower/derived-types-bindc.f90 (revision 79e788d02eefdacb08af365389b9055518f3fad6)
1! Test padding for BIND(C) derived types lowering for AIX target
2! RUN: %flang_fc1 -emit-llvm %s -o - | FileCheck %s
3
4! REQUIRES: target={{.+}}-aix{{.*}}
5
6subroutine s1()
7  use, intrinsic :: iso_c_binding
8  type, bind(c) :: t0
9    character(c_char) :: x1
10    real(c_double) :: x2
11  end type
12  type(t0) :: xt0
13! CHECK-DAG: %_QFs1Tt0 = type <{ [1 x i8], [3 x i8], double }>
14
15  type, bind(c) :: t1
16    integer(c_short) :: x1
17    real(c_double) :: x2
18  end type
19  type(t1) :: xt1
20! CHECK-DAG: %_QFs1Tt1 = type <{ i16, [2 x i8], double }>
21
22  type, bind(c) :: t2
23    integer(c_short) :: x1
24    real(c_double) :: x2
25    character(c_char) :: x3
26  end type
27  type(t2) :: xt2
28! CHECK-DAG: %_QFs1Tt2 = type <{ i16, [2 x i8], double, [1 x i8], [3 x i8] }>
29
30  type, bind(c) :: t3
31    character(c_char) :: x1
32    complex(c_double_complex) :: x2
33  end type
34  type(t3) :: xt3
35! CHECK-DAG: %_QFs1Tt3 = type <{ [1 x i8], [3 x i8], { double, double } }>
36
37  type, bind(c) :: t4
38    integer(c_short) :: x1
39    complex(c_double_complex) :: x2
40    character(c_char) :: x3
41  end type
42  type(t4) :: xt4
43! CHECK-DAG: %_QFs1Tt4 = type <{ i16, [2 x i8], { double, double }, [1 x i8], [3 x i8] }>
44end subroutine s1
45