[flang-commits] [flang] [flang] Converting old lowering tests to the new lowering (PR #172246)

via flang-commits flang-commits at lists.llvm.org
Sun Dec 14 20:33:26 PST 2025


github-actions[bot] wrote:

<!--PREMERGE ADVISOR COMMENT: Linux-->
# :penguin: Linux x64 Test Results

* 3851 tests passed
* 201 tests skipped
* 2 tests failed

## Failed Tests
(click on a test name to see its output)

### Flang
<details>
<summary>Flang.Lower/allocatable-caller.f90</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
bbc -emit-fir /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/allocatable-caller.f90 -o - | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/allocatable-caller.f90
# executed command: bbc -emit-fir /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/allocatable-caller.f90 -o -
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/allocatable-caller.f90
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/allocatable-caller.f90:15:11: error: CHECK: expected string not found in input
# |  ! CHECK: fir.call @_QPtest_scalar(%[[box]]) {{.*}}: (!fir.ref<!fir.box<!fir.heap<f32>>>) -> ()
# |           ^
# | <stdin>:5:98: note: scanning from here
# |  %1 = fir.alloca !fir.box<!fir.heap<f32>> {bindc_name = "x", uniq_name = "_QFtest_scalar_callEx"}
# |                                                                                                  ^
# | <stdin>:5:98: note: with "box" equal to "1"
# |  %1 = fir.alloca !fir.box<!fir.heap<f32>> {bindc_name = "x", uniq_name = "_QFtest_scalar_callEx"}
# |                                                                                                  ^
# | <stdin>:9:68: note: possible intended match here
# |  %4 = fir.declare %1 {fortran_attrs = #fir.var_attrs<allocatable>, uniq_name = "_QFtest_scalar_callEx"} : (!fir.ref<!fir.box<!fir.heap<f32>>>) -> !fir.ref<!fir.box<!fir.heap<f32>>>
# |                                                                    ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/allocatable-caller.f90:28:11: error: CHECK: expected string not found in input
# |  ! CHECK: fir.call @_QPtest_array(%[[box]]) {{.*}}: (!fir.ref<!fir.box<!fir.heap<!fir.array<?xi32>>>>) -> ()
# |           ^
# | <stdin>:27:111: note: scanning from here
# |  %1 = fir.alloca !fir.box<!fir.heap<!fir.array<?xi32>>> {bindc_name = "x", uniq_name = "_QFtest_array_callEx"}
# |                                                                                                               ^
# | <stdin>:27:111: note: with "box" equal to "1"
# |  %1 = fir.alloca !fir.box<!fir.heap<!fir.array<?xi32>>> {bindc_name = "x", uniq_name = "_QFtest_array_callEx"}
# |                                                                                                               ^
# | <stdin>:33:30: note: possible intended match here
# |  fir.call @_QPtest_array(%5) fastmath<contract> : (!fir.ref<!fir.box<!fir.heap<!fir.array<?xi32>>>>) -> ()
# |                              ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/allocatable-caller.f90:41:11: error: CHECK: expected string not found in input
# |  ! CHECK: fir.call @_QPtest_char_scalar_deferred(%[[box]]) {{.*}}: (!fir.ref<!fir.box<!fir.heap<!fir.char<1,?>>>>) -> ()
# |           ^
# | <stdin>:50:123: note: scanning from here
# |  %1 = fir.alloca !fir.box<!fir.heap<!fir.char<1,?>>> {bindc_name = "x", uniq_name = "_QFtest_char_scalar_deferred_callEx"}
# |                                                                                                                           ^
# | <stdin>:50:123: note: with "box" equal to "1"
# |  %1 = fir.alloca !fir.box<!fir.heap<!fir.char<1,?>>> {bindc_name = "x", uniq_name = "_QFtest_char_scalar_deferred_callEx"}
# |                                                                                                                           ^
# | <stdin>:54:65: note: possible intended match here
# |  %4 = fir.declare %1 {fortran_attrs = #fir.var_attrs<allocatable>, uniq_name = "_QFtest_char_scalar_deferred_callEx"} : (!fir.ref<!fir.box<!fir.heap<!fir.char<1,?>>>>) -> !fir.ref<!fir.box<!fir.heap<!fir.char<1,?>>>>
# |                                                                 ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/allocatable-caller.f90:57:11: error: CHECK: expected string not found in input
# |  ! CHECK: fir.call @_QPtest_char_scalar_explicit(%[[box]]) {{.*}}: (!fir.ref<!fir.box<!fir.heap<!fir.char<1,10>>>>) -> ()
# |           ^
# | <stdin>:79:125: note: scanning from here
# |  %6 = fir.alloca !fir.box<!fir.heap<!fir.char<1,?>>> {bindc_name = "x2", uniq_name = "_QFtest_char_scalar_explicit_callEx2"}
# |                                                                                                                             ^
# | <stdin>:79:125: note: with "box" equal to "2"
# |  %6 = fir.alloca !fir.box<!fir.heap<!fir.char<1,?>>> {bindc_name = "x2", uniq_name = "_QFtest_char_scalar_explicit_callEx2"}
# |                                                                                                                             ^
# | <stdin>:87:2: note: possible intended match here
# |  fir.call @_QPtest_char_scalar_explicit(%5) fastmath<contract> : (!fir.ref<!fir.box<!fir.heap<!fir.char<1,10>>>>) -> ()
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/allocatable-caller.f90:73:11: error: CHECK: expected string not found in input
# |  ! CHECK: fir.call @_QPtest_char_array_deferred(%[[box]]) {{.*}}: (!fir.ref<!fir.box<!fir.heap<!fir.array<?x!fir.char<1,?>>>>>) -> ()
# |           ^
# | <stdin>:116:136: note: scanning from here
# |  %1 = fir.alloca !fir.box<!fir.heap<!fir.array<?x!fir.char<1,?>>>> {bindc_name = "x", uniq_name = "_QFtest_char_array_deferred_callEx"}
# |                                                                                                                                        ^
# | <stdin>:116:136: note: with "box" equal to "1"
# |  %1 = fir.alloca !fir.box<!fir.heap<!fir.array<?x!fir.char<1,?>>>> {bindc_name = "x", uniq_name = "_QFtest_char_array_deferred_callEx"}
# |                                                                                                                                        ^
# | <stdin>:122:2: note: possible intended match here
# |  fir.call @_QPtest_char_array_deferred(%5) fastmath<contract> : (!fir.ref<!fir.box<!fir.heap<!fir.array<?x!fir.char<1,?>>>>>) -> ()
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/allocatable-caller.f90:89:11: error: CHECK: expected string not found in input
# |  ! CHECK: fir.call @_QPtest_char_array_explicit(%[[box]]) {{.*}}: (!fir.ref<!fir.box<!fir.heap<!fir.array<?x!fir.char<1,10>>>>>) -> ()
# |           ^
# | <stdin>:148:138: note: scanning from here
# |  %7 = fir.alloca !fir.box<!fir.heap<!fir.array<?x!fir.char<1,?>>>> {bindc_name = "x2", uniq_name = "_QFtest_char_array_explicit_callEx2"}
# |                                                                                                                                          ^
# | <stdin>:148:138: note: with "box" equal to "2"
# |  %7 = fir.alloca !fir.box<!fir.heap<!fir.array<?x!fir.char<1,?>>>> {bindc_name = "x2", uniq_name = "_QFtest_char_array_explicit_callEx2"}
# |                                                                                                                                          ^
# | <stdin>:190:12: note: possible intended match here
# |  func.func private @_QPtest_char_array_explicit(!fir.ref<!fir.box<!fir.heap<!fir.array<?x!fir.char<1,10>>>>>)
# |            ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/allocatable-caller.f90
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             1: module attributes {dlti.dl_spec = #dlti.dl_spec<!llvm.ptr<270> = dense<32> : vector<4xi64>, !llvm.ptr<271> = dense<32> : vector<4xi64>, !llvm.ptr<272> = dense<64> : vector<4xi64>, i64 = dense<64> : vector<2xi64>, i128 = dense<128> : vector<2xi64>, f80 = dense<128> : vector<2xi64>, !llvm.ptr = dense<64> : vector<4xi64>, i1 = dense<8> : vector<2xi64>, i8 = dense<8> : vector<2xi64>, i16 = dense<16> : vector<2xi64>, i32 = dense<32> : vector<2xi64>, f16 = dense<16> : vector<2xi64>, f64 = dense<64> : vector<2xi64>, f128 = dense<128> : vector<2xi64>, "dlti.endianness" = "little", "dlti.mangling_mode" = "e", "dlti.legal_int_widths" = array<i32: 8, 16, 32, 64>, "dlti.stack_alignment" = 128 : i64>, fir.defaultkind = "a1c4d8i4l4r4", fir.kindmap = "", llvm.data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", llvm.ident = "flang version 22.0.0 (https://github.com/llvm/llvm-project 1aaf71099650e5f38e49587d96e1ef9498cced64)", llvm.target_triple = "x86_64-unknown-linux-gnu"} { 
# |             2:  func.func @_QPtest_scalar_call() { 
# |             3:  %c0_i64 = arith.constant 0 : i64 
# |             4:  %0 = fir.dummy_scope : !fir.dscope 
# |             5:  %1 = fir.alloca !fir.box<!fir.heap<f32>> {bindc_name = "x", uniq_name = "_QFtest_scalar_callEx"} 
# | check:15'0                                                                                                      X error: no match found
# | check:15'1                                                                                                        with "box" equal to "1"
# |             6:  %2 = fir.zero_bits !fir.heap<f32> 
# | check:15'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             7:  %3 = fir.embox %2 : (!fir.heap<f32>) -> !fir.box<!fir.heap<f32>> 
# | check:15'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             8:  fir.store %3 to %1 : !fir.ref<!fir.box<!fir.heap<f32>>> 
# | check:15'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             9:  %4 = fir.declare %1 {fortran_attrs = #fir.var_attrs<allocatable>, uniq_name = "_QFtest_scalar_callEx"} : (!fir.ref<!fir.box<!fir.heap<f32>>>) -> !fir.ref<!fir.box<!fir.heap<f32>>> 
# | check:15'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:15'2                                                                        ?                                                                                                                  possible intended match
# |            10:  fir.call @_QPtest_scalar(%4) fastmath<contract> : (!fir.ref<!fir.box<!fir.heap<f32>>>) -> () 
# | check:15'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            11:  %5 = fir.load %4 : !fir.ref<!fir.box<!fir.heap<f32>>> 
# | check:15'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            12:  %6 = fir.box_addr %5 : (!fir.box<!fir.heap<f32>>) -> !fir.heap<f32> 
# | check:15'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            13:  %7 = fir.convert %6 : (!fir.heap<f32>) -> i64 
# | check:15'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            14:  %8 = arith.cmpi ne, %7, %c0_i64 : i64 
# | check:15'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |            22:  } 
# | check:15'0     ~~~
# |            23:  func.func @_QPtest_array_call() { 
# | check:15'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            24:  %c0_i64 = arith.constant 0 : i64 
# |            25:  %c0 = arith.constant 0 : index 
# |            26:  %0 = fir.dummy_scope : !fir.dscope 
# |            27:  %1 = fir.alloca !fir.box<!fir.heap<!fir.array<?xi32>>> {bindc_name = "x", uniq_name = "_QFtest_array_callEx"} 
# | check:28'0                                                                                                                   X error: no match found
# | check:28'1                                                                                                                     with "box" equal to "1"
# |            28:  %2 = fir.zero_bits !fir.heap<!fir.array<?xi32>> 
# | check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            29:  %3 = fir.shape %c0 : (index) -> !fir.shape<1> 
# | check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            30:  %4 = fir.embox %2(%3) : (!fir.heap<!fir.array<?xi32>>, !fir.shape<1>) -> !fir.box<!fir.heap<!fir.array<?xi32>>> 
# | check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            31:  fir.store %4 to %1 : !fir.ref<!fir.box<!fir.heap<!fir.array<?xi32>>>> 
# | check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            32:  %5 = fir.declare %1 {fortran_attrs = #fir.var_attrs<allocatable>, uniq_name = "_QFtest_array_callEx"} : (!fir.ref<!fir.box<!fir.heap<!fir.array<?xi32>>>>) -> !fir.ref<!fir.box<!fir.heap<!fir.array<?xi32>>>> 
# | check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            33:  fir.call @_QPtest_array(%5) fastmath<contract> : (!fir.ref<!fir.box<!fir.heap<!fir.array<?xi32>>>>) -> () 
# | check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:28'2                                  ?                                                                              possible intended match
# |            34:  %6 = fir.load %5 : !fir.ref<!fir.box<!fir.heap<!fir.array<?xi32>>>> 
# | check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            35:  %7 = fir.box_addr %6 : (!fir.box<!fir.heap<!fir.array<?xi32>>>) -> !fir.heap<!fir.array<?xi32>> 
# | check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            36:  %8 = fir.convert %7 : (!fir.heap<!fir.array<?xi32>>) -> i64 
# | check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            37:  %9 = arith.cmpi ne, %8, %c0_i64 : i64 
# | check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            38:  fir.if %9 { 
# | check:28'0     ~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |            45:  } 
# | check:28'0     ~~~
# |            46:  func.func @_QPtest_char_scalar_deferred_call() { 
# | check:28'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            47:  %c0_i64 = arith.constant 0 : i64 
# |            48:  %c0 = arith.constant 0 : index 
# |            49:  %0 = fir.dummy_scope : !fir.dscope 
# |            50:  %1 = fir.alloca !fir.box<!fir.heap<!fir.char<1,?>>> {bindc_name = "x", uniq_name = "_QFtest_char_scalar_deferred_callEx"} 
# | check:41'0                                                                                                                               X error: no match found
# | check:41'1                                                                                                                                 with "box" equal to "1"
# |            51:  %2 = fir.zero_bits !fir.heap<!fir.char<1,?>> 
# | check:41'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            52:  %3 = fir.embox %2 typeparams %c0 : (!fir.heap<!fir.char<1,?>>, index) -> !fir.box<!fir.heap<!fir.char<1,?>>> 
# | check:41'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            53:  fir.store %3 to %1 : !fir.ref<!fir.box<!fir.heap<!fir.char<1,?>>>> 
# | check:41'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            54:  %4 = fir.declare %1 {fortran_attrs = #fir.var_attrs<allocatable>, uniq_name = "_QFtest_char_scalar_deferred_callEx"} : (!fir.ref<!fir.box<!fir.heap<!fir.char<1,?>>>>) -> !fir.ref<!fir.box<!fir.heap<!fir.char<1,?>>>> 
# | check:41'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:41'2                                                                     ?                                                                                                                                                         possible intended match
# |            55:  fir.call @_QPtest_char_scalar_deferred(%4) fastmath<contract> : (!fir.ref<!fir.box<!fir.heap<!fir.char<1,?>>>>) -> () 
# | check:41'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            56:  %5 = fir.load %4 : !fir.ref<!fir.box<!fir.heap<!fir.char<1,?>>>> 
# | check:41'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            57:  %6 = fir.box_addr %5 : (!fir.box<!fir.heap<!fir.char<1,?>>>) -> !fir.heap<!fir.char<1,?>> 
# | check:41'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            58:  %7 = fir.convert %6 : (!fir.heap<!fir.char<1,?>>) -> i64 
# | check:41'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            59:  %8 = arith.cmpi ne, %7, %c0_i64 : i64 
# | check:41'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |            74:  %2 = fir.alloca !fir.box<!fir.heap<!fir.char<1,10>>> {bindc_name = "x", uniq_name = "_QFtest_char_scalar_explicit_callEx"} 
# |            75:  %3 = fir.zero_bits !fir.heap<!fir.char<1,10>> 
# |            76:  %4 = fir.embox %3 : (!fir.heap<!fir.char<1,10>>) -> !fir.box<!fir.heap<!fir.char<1,10>>> 
# |            77:  fir.store %4 to %2 : !fir.ref<!fir.box<!fir.heap<!fir.char<1,10>>>> 
# |            78:  %5 = fir.declare %2 typeparams %c10 {fortran_attrs = #fir.var_attrs<allocatable>, uniq_name = "_QFtest_char_scalar_explicit_callEx"} : (!fir.ref<!fir.box<!fir.heap<!fir.char<1,10>>>>, index) -> !fir.ref<!fir.box<!fir.heap<!fir.char<1,10>>>> 
# |            79:  %6 = fir.alloca !fir.box<!fir.heap<!fir.char<1,?>>> {bindc_name = "x2", uniq_name = "_QFtest_char_scalar_explicit_callEx2"} 
# | check:57'0                                                                                                                                 X error: no match found
# | check:57'1                                                                                                                                   with "box" equal to "2"
# |            80:  %7 = fir.load %1 : !fir.ref<i32> 
# | check:57'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            81:  %8 = arith.cmpi sgt, %7, %c0_i32 : i32 
# | check:57'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            82:  %9 = arith.select %8, %7, %c0_i32 : i32 
# | check:57'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            83:  %10 = fir.zero_bits !fir.heap<!fir.char<1,?>> 
# | check:57'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            84:  %11 = fir.embox %10 typeparams %9 : (!fir.heap<!fir.char<1,?>>, i32) -> !fir.box<!fir.heap<!fir.char<1,?>>> 
# | check:57'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            85:  fir.store %11 to %6 : !fir.ref<!fir.box<!fir.heap<!fir.char<1,?>>>> 
# | check:57'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            86:  %12 = fir.declare %6 typeparams %9 {fortran_attrs = #fir.var_attrs<allocatable>, uniq_name = "_QFtest_char_scalar_explicit_callEx2"} : (!fir.ref<!fir.box<!fir.heap<!fir.char<1,?>>>>, i32) -> !fir.ref<!fir.box<!fir.heap<!fir.char<1,?>>>> 
# | check:57'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            87:  fir.call @_QPtest_char_scalar_explicit(%5) fastmath<contract> : (!fir.ref<!fir.box<!fir.heap<!fir.char<1,10>>>>) -> () 
# | check:57'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:57'2      ?                                                                                                                       possible intended match
# |            88:  %13 = fir.convert %12 : (!fir.ref<!fir.box<!fir.heap<!fir.char<1,?>>>>) -> !fir.ref<!fir.box<!fir.heap<!fir.char<1,10>>>> 
# | check:57'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            89:  fir.call @_QPtest_char_scalar_explicit(%13) fastmath<contract> : (!fir.ref<!fir.box<!fir.heap<!fir.char<1,10>>>>) -> () 
# | check:57'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            90:  %14 = fir.load %12 : !fir.ref<!fir.box<!fir.heap<!fir.char<1,?>>>> 
# | check:57'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            91:  %15 = fir.box_addr %14 : (!fir.box<!fir.heap<!fir.char<1,?>>>) -> !fir.heap<!fir.char<1,?>> 
# | check:57'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            92:  %16 = fir.convert %15 : (!fir.heap<!fir.char<1,?>>) -> i64 
# | check:57'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           111:  } 
# | check:57'0     ~~~
# |           112:  func.func @_QPtest_char_array_deferred_call() { 
# | check:57'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           113:  %c0_i64 = arith.constant 0 : i64 
# |           114:  %c0 = arith.constant 0 : index 
# |           115:  %0 = fir.dummy_scope : !fir.dscope 
# |           116:  %1 = fir.alloca !fir.box<!fir.heap<!fir.array<?x!fir.char<1,?>>>> {bindc_name = "x", uniq_name = "_QFtest_char_array_deferred_callEx"} 
# | check:73'0                                                                                                                                            X error: no match found
# | check:73'1                                                                                                                                              with "box" equal to "1"
# |           117:  %2 = fir.zero_bits !fir.heap<!fir.array<?x!fir.char<1,?>>> 
# | check:73'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           118:  %3 = fir.shape %c0 : (index) -> !fir.shape<1> 
# | check:73'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           119:  %4 = fir.embox %2(%3) typeparams %c0 : (!fir.heap<!fir.array<?x!fir.char<1,?>>>, !fir.shape<1>, index) -> !fir.box<!fir.heap<!fir.array<?x!fir.char<1,?>>>> 
# | check:73'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           120:  fir.store %4 to %1 : !fir.ref<!fir.box<!fir.heap<!fir.array<?x!fir.char<1,?>>>>> 
# | check:73'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           121:  %5 = fir.declare %1 {fortran_attrs = #fir.var_attrs<allocatable>, uniq_name = "_QFtest_char_array_deferred_callEx"} : (!fir.ref<!fir.box<!fir.heap<!fir.array<?x!fir.char<1,?>>>>>) -> !fir.ref<!fir.box<!fir.heap<!fir.array<?x!fir.char<1,?>>>>> 
# | check:73'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           122:  fir.call @_QPtest_char_array_deferred(%5) fastmath<contract> : (!fir.ref<!fir.box<!fir.heap<!fir.array<?x!fir.char<1,?>>>>>) -> () 
# | check:73'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:73'2      ?                                                                                                                                   possible intended match
# |           123:  %6 = fir.load %5 : !fir.ref<!fir.box<!fir.heap<!fir.array<?x!fir.char<1,?>>>>> 
# | check:73'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           124:  %7 = fir.box_addr %6 : (!fir.box<!fir.heap<!fir.array<?x!fir.char<1,?>>>>) -> !fir.heap<!fir.array<?x!fir.char<1,?>>> 
# | check:73'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           125:  %8 = fir.convert %7 : (!fir.heap<!fir.array<?x!fir.char<1,?>>>) -> i64 
# | check:73'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           126:  %9 = arith.cmpi ne, %8, %c0_i64 : i64 
# | check:73'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           127:  fir.if %9 { 
# | check:73'0     ~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           143:  %3 = fir.zero_bits !fir.heap<!fir.array<?x!fir.char<1,10>>> 
# |           144:  %4 = fir.shape %c0 : (index) -> !fir.shape<1> 
# |           145:  %5 = fir.embox %3(%4) : (!fir.heap<!fir.array<?x!fir.char<1,10>>>, !fir.shape<1>) -> !fir.box<!fir.heap<!fir.array<?x!fir.char<1,10>>>> 
# |           146:  fir.store %5 to %2 : !fir.ref<!fir.box<!fir.heap<!fir.array<?x!fir.char<1,10>>>>> 
# |           147:  %6 = fir.declare %2 typeparams %c10 {fortran_attrs = #fir.var_attrs<allocatable>, uniq_name = "_QFtest_char_array_explicit_callEx"} : (!fir.ref<!fir.box<!fir.heap<!fir.array<?x!fir.char<1,10>>>>>, index) -> !fir.ref<!fir.box<!fir.heap<!fir.array<?x!fir.char<1,10>>>>> 
# |           148:  %7 = fir.alloca !fir.box<!fir.heap<!fir.array<?x!fir.char<1,?>>>> {bindc_name = "x2", uniq_name = "_QFtest_char_array_explicit_callEx2"} 
# | check:89'0                                                                                                                                              X error: no match found
# | check:89'1                                                                                                                                                with "box" equal to "2"
# |           149:  %8 = fir.load %1 : !fir.ref<i32> 
# | check:89'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           150:  %9 = arith.cmpi sgt, %8, %c0_i32 : i32 
# | check:89'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           151:  %10 = arith.select %9, %8, %c0_i32 : i32 
# | check:89'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           152:  %11 = fir.zero_bits !fir.heap<!fir.array<?x!fir.char<1,?>>> 
# | check:89'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           153:  %12 = fir.embox %11(%4) typeparams %10 : (!fir.heap<!fir.array<?x!fir.char<1,?>>>, !fir.shape<1>, i32) -> !fir.box<!fir.heap<!fir.array<?x!fir.char<1,?>>>> 
# | check:89'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           185:  } 
# | check:89'0     ~~~
# |           186:  func.func private @_QPtest_array(!fir.ref<!fir.box<!fir.heap<!fir.array<?xi32>>>>) 
# | check:89'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           187:  func.func private @_QPtest_char_scalar_deferred(!fir.ref<!fir.box<!fir.heap<!fir.char<1,?>>>>) 
# | check:89'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           188:  func.func private @_QPtest_char_scalar_explicit(!fir.ref<!fir.box<!fir.heap<!fir.char<1,10>>>>) 
# | check:89'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           189:  func.func private @_QPtest_char_array_deferred(!fir.ref<!fir.box<!fir.heap<!fir.array<?x!fir.char<1,?>>>>>) 
# | check:89'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           190:  func.func private @_QPtest_char_array_explicit(!fir.ref<!fir.box<!fir.heap<!fir.array<?x!fir.char<1,10>>>>>) 
# | check:89'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:89'2                ?                                                                                                   possible intended match
# |           191: } 
# | check:89'0     ~~
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>Flang.Lower/allocatable-return.f90</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
bbc -emit-fir -I nowhere /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/allocatable-return.f90 -o - | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/allocatable-return.f90
# executed command: bbc -emit-fir -I nowhere /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/allocatable-return.f90 -o -
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/allocatable-return.f90:6:10: warning: Function result is never defined [-Wundefined-function-result]
# |   function test_alloc_return_scalar
# |            ^^^^^^^^^^^^^^^^^^^^^^^^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/allocatable-return.f90:24:10: warning: Function result is never defined [-Wundefined-function-result]
# |   function test_alloc_return_array
# |            ^^^^^^^^^^^^^^^^^^^^^^^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/allocatable-return.f90:50:10: warning: Function result is never defined [-Wundefined-function-result]
# |   function test_alloc_return_char_scalar
# |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/allocatable-return.f90:69:10: warning: Function result is never defined [-Wundefined-function-result]
# |   function test_alloc_return_char_array
# |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/allocatable-return.f90:96:10: warning: Function result is never defined [-Wundefined-function-result]
# |   function test_alloc_return_poly_scalar
# |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/allocatable-return.f90:130:10: warning: Function result is never defined [-Wundefined-function-result]
# |   function test_alloc_return_poly_array
# |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
# | bbc: could not find module file for __fortran_type_info
# `-----------------------------
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/allocatable-return.f90
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/allocatable-return.f90:107:10: error: CHECK: expected string not found in input
# | ! CHECK: %[[C1:.*]] = arith.constant 1 : index
# |          ^
# | <stdin>:76:31: note: scanning from here
# |  %false = arith.constant false
# |                               ^
# | <stdin>:87:2: note: possible intended match here
# |  %9 = fir.convert %7 : (!fir.tdesc<!fir.type<_QFtest_alloc_return_poly_scalarTt>>) -> !fir.ref<none>
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/allocatable-return.f90:145:10: error: CHECK: expected string not found in input
# | ! CHECK: %[[C1:.*]] = arith.constant 1 : index
# |          ^
# | <stdin>:104:32: note: scanning from here
# |  %c0 = arith.constant 0 : index
# |                                ^
# | <stdin>:116:2: note: possible intended match here
# |  %10 = fir.convert %8 : (!fir.tdesc<!fir.type<_QFtest_alloc_return_poly_arrayTt>>) -> !fir.ref<none>
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/allocatable-return.f90
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |             71:  } 
# |             72:  func.func @_QPtest_alloc_return_poly_scalar() -> !fir.class<!fir.heap<none>> { 
# |             73:  %c-1_i64 = arith.constant -1 : i64 
# |             74:  %c0_i32 = arith.constant 0 : i32 
# |             75:  %c100_i32 = arith.constant 100 : i32 
# |             76:  %false = arith.constant false 
# | check:107'0                                   X error: no match found
# |             77:  %0 = fir.dummy_scope : !fir.dscope 
# | check:107'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             78:  %1 = fir.alloca !fir.class<!fir.heap<none>> {bindc_name = "test_alloc_return_poly_scalar", uniq_name = "_QFtest_alloc_return_poly_scalarEtest_alloc_return_poly_scalar"} 
# | check:107'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             79:  %2 = fir.zero_bits !fir.heap<none> 
# | check:107'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             80:  %3 = fir.embox %2 : (!fir.heap<none>) -> !fir.class<!fir.heap<none>> 
# | check:107'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             81:  fir.store %3 to %1 : !fir.ref<!fir.class<!fir.heap<none>>> 
# | check:107'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             82:  %4 = fir.declare %1 {fortran_attrs = #fir.var_attrs<allocatable>, uniq_name = "_QFtest_alloc_return_poly_scalarEtest_alloc_return_poly_scalar"} : (!fir.ref<!fir.class<!fir.heap<none>>>) -> !fir.ref<!fir.class<!fir.heap<none>>> 
# | check:107'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             83:  %5 = fir.absent !fir.box<none> 
# | check:107'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             84:  %6 = fir.address_of(@_QQclX3c091fb62297dfa85d42e45449430aa5) : !fir.ref<!fir.char<1,97>> 
# | check:107'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             85:  %7 = fir.type_desc !fir.type<_QFtest_alloc_return_poly_scalarTt> 
# | check:107'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             86:  %8 = fir.convert %4 : (!fir.ref<!fir.class<!fir.heap<none>>>) -> !fir.ref<!fir.box<none>> 
# | check:107'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             87:  %9 = fir.convert %7 : (!fir.tdesc<!fir.type<_QFtest_alloc_return_poly_scalarTt>>) -> !fir.ref<none> 
# | check:107'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:107'1      ?                                                                                                    possible intended match
# |             88:  fir.call @_FortranAAllocatableInitDerivedForAllocate(%8, %9, %c0_i32, %c0_i32) fastmath<contract> : (!fir.ref<!fir.box<none>>, !fir.ref<none>, i32, i32) -> () 
# | check:107'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             89:  %10 = fir.convert %c-1_i64 : (i64) -> !fir.ref<i64> 
# | check:107'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             90:  %11 = fir.convert %6 : (!fir.ref<!fir.char<1,97>>) -> !fir.ref<i8> 
# | check:107'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             91:  %12 = fir.call @_FortranAAllocatableAllocate(%8, %10, %false, %5, %11, %c100_i32) fastmath<contract> : (!fir.ref<!fir.box<none>>, !fir.ref<i64>, i1, !fir.box<none>, !fir.ref<i8>, i32) -> i32 
# | check:107'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             92:  %13 = fir.load %4 : !fir.ref<!fir.class<!fir.heap<none>>> 
# | check:107'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |             99:  %c7_i32 = arith.constant 7 : i32 
# |            100:  %c0_i32 = arith.constant 0 : i32 
# |            101:  %c1_i32 = arith.constant 1 : i32 
# |            102:  %c134_i32 = arith.constant 134 : i32 
# |            103:  %false = arith.constant false 
# |            104:  %c0 = arith.constant 0 : index 
# | check:145'0                                    X error: no match found
# |            105:  %0 = fir.dummy_scope : !fir.dscope 
# | check:145'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            106:  %1 = fir.alloca !fir.class<!fir.heap<!fir.array<?xnone>>> {bindc_name = "test_alloc_return_poly_array", uniq_name = "_QFtest_alloc_return_poly_arrayEtest_alloc_return_poly_array"} 
# | check:145'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            107:  %2 = fir.zero_bits !fir.heap<!fir.array<?xnone>> 
# | check:145'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            108:  %3 = fir.shape %c0 : (index) -> !fir.shape<1> 
# | check:145'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            109:  %4 = fir.embox %2(%3) : (!fir.heap<!fir.array<?xnone>>, !fir.shape<1>) -> !fir.class<!fir.heap<!fir.array<?xnone>>> 
# | check:145'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            110:  fir.store %4 to %1 : !fir.ref<!fir.class<!fir.heap<!fir.array<?xnone>>>> 
# | check:145'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            111:  %5 = fir.declare %1 {fortran_attrs = #fir.var_attrs<allocatable>, uniq_name = "_QFtest_alloc_return_poly_arrayEtest_alloc_return_poly_array"} : (!fir.ref<!fir.class<!fir.heap<!fir.array<?xnone>>>>) -> !fir.ref<!fir.class<!fir.heap<!fir.array<?xnone>>>> 
# | check:145'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            112:  %6 = fir.absent !fir.box<none> 
# | check:145'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            113:  %7 = fir.address_of(@_QQclX3c091fb62297dfa85d42e45449430aa5) : !fir.ref<!fir.char<1,97>> 
# | check:145'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            114:  %8 = fir.type_desc !fir.type<_QFtest_alloc_return_poly_arrayTt> 
# | check:145'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            115:  %9 = fir.convert %5 : (!fir.ref<!fir.class<!fir.heap<!fir.array<?xnone>>>>) -> !fir.ref<!fir.box<none>> 
# | check:145'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            116:  %10 = fir.convert %8 : (!fir.tdesc<!fir.type<_QFtest_alloc_return_poly_arrayTt>>) -> !fir.ref<none> 
# | check:145'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:145'1      ?                                                                                                    possible intended match
# |            117:  fir.call @_FortranAAllocatableInitDerivedForAllocate(%9, %10, %c1_i32, %c0_i32) fastmath<contract> : (!fir.ref<!fir.box<none>>, !fir.ref<none>, i32, i32) -> () 
# | check:145'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            118:  %11 = fir.convert %c7_i32 : (i32) -> i64 
# | check:145'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            119:  %12 = fir.convert %c8_i32 : (i32) -> i64 
# | check:145'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            120:  fir.call @_FortranAAllocatableSetBounds(%9, %c0_i32, %11, %12) fastmath<contract> : (!fir.ref<!fir.box<none>>, i32, i64, i64) -> () 
# | check:145'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            121:  %13 = fir.convert %c-1_i64 : (i64) -> !fir.ref<i64> 
# | check:145'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>

If these failures are unrelated to your changes (for example tests are broken or flaky at HEAD), please open an issue at https://github.com/llvm/llvm-project/issues and add the `infrastructure` label.

https://github.com/llvm/llvm-project/pull/172246


More information about the flang-commits mailing list