[flang] Accept polymorphic component element in storage_size
[llvm-project.git] / flang / test / HLFIR / expr-type.fir
blob835959ce54643ac37df9b7e10623cfd6100c6d30
1 // Test the HLFIR Expr type
2 // Parse types and check that we can reparse what we print.
3 // RUN: fir-opt --split-input-file %s | fir-opt --split-input-file | FileCheck %s
5 // Scalar expression types
6 func.func private @scalar01() -> !hlfir.expr<!fir.char<1,?>>
7 func.func private @scalar02() -> !hlfir.expr<!fir.char<2,10>>
8 func.func private @scalar03() -> !hlfir.expr<!fir.type<derived{f:f32}>>
9 // CHECK-LABEL:  func.func private @scalar01() -> !hlfir.expr<!fir.char<1,?>>
10 // CHECK-LABEL:  func.func private @scalar02() -> !hlfir.expr<!fir.char<2,10>>
11 // CHECK-LABEL:  func.func private @scalar03() -> !hlfir.expr<!fir.type<derived{f:f32}>>
13 // Array expression types
14 func.func private @array01() -> !hlfir.expr<?x!fir.char<1,?>>
15 func.func private @array02() -> !hlfir.expr<10x!fir.char<1,20>>
16 func.func private @array03() -> !hlfir.expr<10x?x20x?x30x?x40x?x50x?x60xf128>
17 func.func private @array04() -> !hlfir.expr<10x20x!fir.type<derived{f:f32}>>
18 func.func private @array05() -> !hlfir.expr<10xi32>
19 // CHECK-LABEL:  func.func private @array01() -> !hlfir.expr<?x!fir.char<1,?>>
20 // CHECK-LABEL:  func.func private @array02() -> !hlfir.expr<10x!fir.char<1,20>>
21 // CHECK-LABEL:  func.func private @array03() -> !hlfir.expr<10x?x20x?x30x?x40x?x50x?x60xf128>
22 // CHECK-LABEL:  func.func private @array04() -> !hlfir.expr<10x20x!fir.type<derived{f:f32}>>
23 // CHECK-LABEL:  func.func private @array05() -> !hlfir.expr<10xi32>
25 // Polymorphic expression types
26 func.func private @polymorph01() -> !hlfir.expr<!fir.type<derived{f:f32}>?>
27 func.func private @polymorph02() -> !hlfir.expr<?x!fir.type<derived{f:f32}>?>
28 func.func private @polymorph03() -> !hlfir.expr<10x!fir.type<derived{f:f32}>?>
29 // CHECK-LABEL:  func.func private @polymorph01() -> !hlfir.expr<!fir.type<derived{f:f32}>?>
30 // CHECK-LABEL:  func.func private @polymorph02() -> !hlfir.expr<?x!fir.type<derived{f:f32}>?>
31 // CHECK-LABEL:  func.func private @polymorph03() -> !hlfir.expr<10x!fir.type<derived{f:f32}>?>