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