[flang-commits] [flang] [flang][OpenMP][CUDA] Set allocator_idx on privatized allocatable device array descriptors (PR #186945)
via flang-commits
flang-commits at lists.llvm.org
Tue Mar 17 09:29:36 PDT 2026
github-actions[bot] wrote:
<!--PREMERGE ADVISOR COMMENT: Windows-->
# :window: Windows x64 Test Results
* 4042 tests passed
* 245 tests skipped
* 5 tests failed
## Failed Tests
(click on a test name to see its output)
### Flang
<details>
<summary>Flang.Lower/OpenMP/DelayedPrivatization/target-private-allocatable.f90</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 3
c:\_work\llvm-project\llvm-project\build\bin\flang.exe -fc1 -emit-hlfir -fopenmp -mmlir --enable-delayed-privatization-staging -o - C:\_work\llvm-project\llvm-project\flang\test\Lower\OpenMP\DelayedPrivatization\target-private-allocatable.f90 2>&1 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\flang\test\Lower\OpenMP\DelayedPrivatization\target-private-allocatable.f90 --check-prefix=CPU
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\flang.exe' -fc1 -emit-hlfir -fopenmp -mmlir --enable-delayed-privatization-staging -o - 'C:\_work\llvm-project\llvm-project\flang\test\Lower\OpenMP\DelayedPrivatization\target-private-allocatable.f90'
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\flang\test\Lower\OpenMP\DelayedPrivatization\target-private-allocatable.f90' --check-prefix=CPU
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\flang\test\Lower\OpenMP\DelayedPrivatization\target-private-allocatable.f90:42:13: error: CPU-NEXT: expected string not found in input
# | ! CPU-NEXT: %[[ZERO_BOX:.*]] = fir.embox %[[PRIV_ARG_BOX]] : (!fir.heap<i32>) -> [[DESC_TYPE]]
# | ^
# | <stdin>:9:13: note: scanning from here
# | fir.if %3 {
# | ^
# | <stdin>:9:13: note: with "PRIV_ARG_BOX" equal to "1"
# | fir.if %3 {
# | ^
# | <stdin>:9:13: note: with "DESC_TYPE" equal to "!fir.box<!fir.heap<i32>>"
# | fir.if %3 {
# | ^
# | <stdin>:14:2: note: possible intended match here
# | %5 = fir.embox %4 : (!fir.heap<i32>) -> !fir.box<!fir.heap<i32>>
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\flang\test\Lower\OpenMP\DelayedPrivatization\target-private-allocatable.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" = "w", "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:w-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", llvm.ident = "flang version 23.0.0 (https://github.com/llvm/llvm-project 61eb5c863145212c30d1afdc205790c46f3c9a0a)", llvm.target_triple = "x86_64-pc-windows-msvc", omp.is_gpu = false, omp.is_target_device = false, omp.requires = #omp<clause_requires none>, omp.target_triples = [], omp.version = #omp.version<version = 31>} {
# | 2: omp.private {type = private} @_QFtarget_allocatableEalloc_var_private_box_heap_i32 : !fir.box<!fir.heap<i32>> init {
# | 3: ^bb0(%arg0: !fir.ref<!fir.box<!fir.heap<i32>>>, %arg1: !fir.ref<!fir.box<!fir.heap<i32>>>):
# | 4: %0 = fir.load %arg0 : !fir.ref<!fir.box<!fir.heap<i32>>>
# | 5: %1 = fir.box_addr %0 : (!fir.box<!fir.heap<i32>>) -> !fir.heap<i32>
# | 6: %2 = fir.convert %1 : (!fir.heap<i32>) -> i64
# | 7: %c0_i64 = arith.constant 0 : i64
# | 8: %3 = arith.cmpi eq, %2, %c0_i64 : i64
# | 9: fir.if %3 {
# | next:42'0 X error: no match found
# | next:42'1 with "PRIV_ARG_BOX" equal to "1"
# | next:42'2 with "DESC_TYPE" equal to "!fir.box<!fir.heap<i32>>"
# | 10: %4 = fir.embox %1 {allocator_idx = 0 : i32} : (!fir.heap<i32>) -> !fir.box<!fir.heap<i32>>
# | next:42'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 11: fir.store %4 to %arg1 : !fir.ref<!fir.box<!fir.heap<i32>>>
# | next:42'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 12: } else {
# | next:42'0 ~~~~~~~~~~
# | 13: %4 = fir.allocmem i32 {bindc_name = "", uniq_name = ""}
# | next:42'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 14: %5 = fir.embox %4 : (!fir.heap<i32>) -> !fir.box<!fir.heap<i32>>
# | next:42'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:42'3 ? possible intended match
# | 15: fir.store %5 to %arg1 : !fir.ref<!fir.box<!fir.heap<i32>>>
# | next:42'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 16: }
# | next:42'0 ~~~
# | 17: omp.yield(%arg1 : !fir.ref<!fir.box<!fir.heap<i32>>>)
# | next:42'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 18: } dealloc {
# | next:42'0 ~~~~~~~~~~~~~
# | 19: ^bb0(%arg0: !fir.ref<!fir.box<!fir.heap<i32>>>):
# | next:42'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>Flang.Lower/OpenMP/DelayedPrivatization/target-private-multiple-variables.f90</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 3
c:\_work\llvm-project\llvm-project\build\bin\flang.exe -fc1 -emit-hlfir -fopenmp -mmlir --enable-delayed-privatization-staging -o - C:\_work\llvm-project\llvm-project\flang\test\Lower\OpenMP\DelayedPrivatization\target-private-multiple-variables.f90 2>&1 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\flang\test\Lower\OpenMP\DelayedPrivatization\target-private-multiple-variables.f90
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\flang.exe' -fc1 -emit-hlfir -fopenmp -mmlir --enable-delayed-privatization-staging -o - 'C:\_work\llvm-project\llvm-project\flang\test\Lower\OpenMP\DelayedPrivatization\target-private-multiple-variables.f90'
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\flang\test\Lower\OpenMP\DelayedPrivatization\target-private-multiple-variables.f90'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\flang\test\Lower\OpenMP\DelayedPrivatization\target-private-multiple-variables.f90:108:15: error: CHECK-NEXT: expected string not found in input
# | ! CHECK-NEXT: %[[ZERO_BOX:.*]] = fir.embox %[[PRIV_ARG_BOX]] : (!fir.heap<i32>) -> !fir.box<!fir.heap<i32>>
# | ^
# | <stdin>:58:13: note: scanning from here
# | fir.if %3 {
# | ^
# | <stdin>:58:13: note: with "PRIV_ARG_BOX" equal to "1"
# | fir.if %3 {
# | ^
# | <stdin>:63:2: note: possible intended match here
# | %5 = fir.embox %4 : (!fir.heap<i32>) -> !fir.box<!fir.heap<i32>>
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\flang\test\Lower\OpenMP\DelayedPrivatization\target-private-multiple-variables.f90
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 53: %0 = fir.load %arg0 : !fir.ref<!fir.box<!fir.heap<i32>>>
# | 54: %1 = fir.box_addr %0 : (!fir.box<!fir.heap<i32>>) -> !fir.heap<i32>
# | 55: %2 = fir.convert %1 : (!fir.heap<i32>) -> i64
# | 56: %c0_i64 = arith.constant 0 : i64
# | 57: %3 = arith.cmpi eq, %2, %c0_i64 : i64
# | 58: fir.if %3 {
# | next:108'0 X error: no match found
# | next:108'1 with "PRIV_ARG_BOX" equal to "1"
# | 59: %4 = fir.embox %1 {allocator_idx = 0 : i32} : (!fir.heap<i32>) -> !fir.box<!fir.heap<i32>>
# | next:108'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 60: fir.store %4 to %arg1 : !fir.ref<!fir.box<!fir.heap<i32>>>
# | next:108'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 61: } else {
# | next:108'0 ~~~~~~~~~~
# | 62: %4 = fir.allocmem i32 {bindc_name = "", uniq_name = ""}
# | next:108'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 63: %5 = fir.embox %4 : (!fir.heap<i32>) -> !fir.box<!fir.heap<i32>>
# | next:108'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:108'2 ? possible intended match
# | 64: fir.store %5 to %arg1 : !fir.ref<!fir.box<!fir.heap<i32>>>
# | next:108'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 65: }
# | next:108'0 ~~~
# | 66: omp.yield(%arg1 : !fir.ref<!fir.box<!fir.heap<i32>>>)
# | next:108'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 67: } dealloc {
# | next:108'0 ~~~~~~~~~~~~~
# | 68: ^bb0(%arg0: !fir.ref<!fir.box<!fir.heap<i32>>>):
# | next:108'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>Flang.Lower/OpenMP/delayed-privatization-allocatable-private.f90</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 3
c:\_work\llvm-project\llvm-project\build\bin\flang.exe -fc1 -emit-hlfir -fopenmp -mmlir --enable-delayed-privatization -o - C:\_work\llvm-project\llvm-project\flang\test\Lower\OpenMP\delayed-privatization-allocatable-private.f90 2>&1 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\flang\test\Lower\OpenMP\delayed-privatization-allocatable-private.f90
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\flang.exe' -fc1 -emit-hlfir -fopenmp -mmlir --enable-delayed-privatization -o - 'C:\_work\llvm-project\llvm-project\flang\test\Lower\OpenMP\delayed-privatization-allocatable-private.f90'
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\flang\test\Lower\OpenMP\delayed-privatization-allocatable-private.f90'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\flang\test\Lower\OpenMP\delayed-privatization-allocatable-private.f90:29:15: error: CHECK-NEXT: expected string not found in input
# | ! CHECK-NEXT: %[[ZERO_BOX:.*]] = fir.embox %[[PRIV_ARG_BOX]] : (!fir.heap<i32>) -> !fir.box<!fir.heap<i32>>
# | ^
# | <stdin>:9:13: note: scanning from here
# | fir.if %3 {
# | ^
# | <stdin>:9:13: note: with "PRIV_ARG_BOX" equal to "1"
# | fir.if %3 {
# | ^
# | <stdin>:14:2: note: possible intended match here
# | %5 = fir.embox %4 : (!fir.heap<i32>) -> !fir.box<!fir.heap<i32>>
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\flang\test\Lower\OpenMP\delayed-privatization-allocatable-private.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" = "w", "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:w-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128", llvm.ident = "flang version 23.0.0 (https://github.com/llvm/llvm-project 61eb5c863145212c30d1afdc205790c46f3c9a0a)", llvm.target_triple = "x86_64-pc-windows-msvc", omp.is_gpu = false, omp.is_target_device = false, omp.target_triples = [], omp.version = #omp.version<version = 31>} {
# | 2: omp.private {type = private} @_QFdelayed_privatization_allocatableEvar1_private_box_heap_i32 : !fir.box<!fir.heap<i32>> init {
# | 3: ^bb0(%arg0: !fir.ref<!fir.box<!fir.heap<i32>>>, %arg1: !fir.ref<!fir.box<!fir.heap<i32>>>):
# | 4: %0 = fir.load %arg0 : !fir.ref<!fir.box<!fir.heap<i32>>>
# | 5: %1 = fir.box_addr %0 : (!fir.box<!fir.heap<i32>>) -> !fir.heap<i32>
# | 6: %2 = fir.convert %1 : (!fir.heap<i32>) -> i64
# | 7: %c0_i64 = arith.constant 0 : i64
# | 8: %3 = arith.cmpi eq, %2, %c0_i64 : i64
# | 9: fir.if %3 {
# | next:29'0 X error: no match found
# | next:29'1 with "PRIV_ARG_BOX" equal to "1"
# | 10: %4 = fir.embox %1 {allocator_idx = 0 : i32} : (!fir.heap<i32>) -> !fir.box<!fir.heap<i32>>
# | next:29'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 11: fir.store %4 to %arg1 : !fir.ref<!fir.box<!fir.heap<i32>>>
# | next:29'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 12: } else {
# | next:29'0 ~~~~~~~~~~
# | 13: %4 = fir.allocmem i32 {bindc_name = "", uniq_name = ""}
# | next:29'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 14: %5 = fir.embox %4 : (!fir.heap<i32>) -> !fir.box<!fir.heap<i32>>
# | next:29'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:29'2 ? possible intended match
# | 15: fir.store %5 to %arg1 : !fir.ref<!fir.box<!fir.heap<i32>>>
# | next:29'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 16: }
# | next:29'0 ~~~
# | 17: omp.yield(%arg1 : !fir.ref<!fir.box<!fir.heap<i32>>>)
# | next:29'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 18: } dealloc {
# | next:29'0 ~~~~~~~~~~~~~
# | 19: ^bb0(%arg0: !fir.ref<!fir.box<!fir.heap<i32>>>):
# | next:29'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>Flang.Lower/OpenMP/parallel-private-clause-fixes.f90</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 3
bbc -fopenmp -emit-hlfir C:\_work\llvm-project\llvm-project\flang\test\Lower\OpenMP\parallel-private-clause-fixes.f90 -o - | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\flang\test\Lower\OpenMP\parallel-private-clause-fixes.f90
# executed command: bbc -fopenmp -emit-hlfir 'C:\_work\llvm-project\llvm-project\flang\test\Lower\OpenMP\parallel-private-clause-fixes.f90' -o -
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\flang\test\Lower\OpenMP\parallel-private-clause-fixes.f90'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\flang\test\Lower\OpenMP\parallel-private-clause-fixes.f90:15:10: error: CHECK: expected string not found in input
# | ! CHECK: %[[VAL_17:.*]] = fir.embox %[[VAL_6]] typeparams %[[ELESIZE]] : (!fir.heap<!fir.char<1,?>>, index) -> !fir.box<!fir.heap<!fir.char<1,?>>>
# | ^
# | <stdin>:39:13: note: scanning from here
# | fir.if %4 {
# | ^
# | <stdin>:39:13: note: with "VAL_6" equal to "2"
# | fir.if %4 {
# | ^
# | <stdin>:39:13: note: with "ELESIZE" equal to "1"
# | fir.if %4 {
# | ^
# | <stdin>:44:2: note: possible intended match here
# | %6 = fir.embox %5 typeparams %1 : (!fir.heap<!fir.char<1,?>>, index) -> !fir.box<!fir.heap<!fir.char<1,?>>>
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\flang\test\Lower\OpenMP\parallel-private-clause-fixes.f90
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 34: %1 = fir.box_elesize %0 : (!fir.box<!fir.heap<!fir.char<1,?>>>) -> index
# | 35: %2 = fir.box_addr %0 : (!fir.box<!fir.heap<!fir.char<1,?>>>) -> !fir.heap<!fir.char<1,?>>
# | 36: %3 = fir.convert %2 : (!fir.heap<!fir.char<1,?>>) -> i64
# | 37: %c0_i64 = arith.constant 0 : i64
# | 38: %4 = arith.cmpi eq, %3, %c0_i64 : i64
# | 39: fir.if %4 {
# | check:15'0 X error: no match found
# | check:15'1 with "VAL_6" equal to "2"
# | check:15'2 with "ELESIZE" equal to "1"
# | 40: %5 = fir.embox %2 typeparams %1 {allocator_idx = 0 : i32} : (!fir.heap<!fir.char<1,?>>, index) -> !fir.box<!fir.heap<!fir.char<1,?>>>
# | check:15'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 41: fir.store %5 to %arg1 : !fir.ref<!fir.box<!fir.heap<!fir.char<1,?>>>>
# | check:15'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 42: } else {
# | check:15'0 ~~~~~~~~~~
# | 43: %5 = fir.allocmem !fir.char<1,?>(%1 : index) {bindc_name = "", uniq_name = ""}
# | check:15'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 44: %6 = fir.embox %5 typeparams %1 : (!fir.heap<!fir.char<1,?>>, index) -> !fir.box<!fir.heap<!fir.char<1,?>>>
# | check:15'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:15'3 ? possible intended match
# | 45: fir.store %6 to %arg1 : !fir.ref<!fir.box<!fir.heap<!fir.char<1,?>>>>
# | check:15'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 46: }
# | check:15'0 ~~~
# | 47: omp.yield(%arg1 : !fir.ref<!fir.box<!fir.heap<!fir.char<1,?>>>>)
# | check:15'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 48: } dealloc {
# | check:15'0 ~~~~~~~~~~~~~
# | 49: ^bb0(%arg0: !fir.ref<!fir.box<!fir.heap<!fir.char<1,?>>>>):
# | check:15'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>Flang.Lower/OpenMP/parallel-private-clause-str.f90</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 4
bbc -fopenmp -emit-hlfir C:\_work\llvm-project\llvm-project\flang\test\Lower\OpenMP\parallel-private-clause-str.f90 -o - | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\flang\test\Lower\OpenMP\parallel-private-clause-str.f90
# executed command: bbc -fopenmp -emit-hlfir 'C:\_work\llvm-project\llvm-project\flang\test\Lower\OpenMP\parallel-private-clause-str.f90' -o -
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\flang\test\Lower\OpenMP\parallel-private-clause-str.f90'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\flang\test\Lower\OpenMP\parallel-private-clause-str.f90:18:9: error: CHECK: expected string not found in input
# | !CHECK: omp.private {type = private} @[[STR_ARR_PRIVATIZER:_QFtest_allocatable_string_arrayEc_private_box_heap_Uxc8xU]] : [[TYPE:.*]] init {
# | ^
# | <stdin>:175:94: note: scanning from here
# | %5 = fir.alloca i32 {bindc_name = "i", uniq_name = "_QFtest_allocatable_fixed_len_stringEi"}
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\flang\test\Lower\OpenMP\parallel-private-clause-str.f90
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 170: %c42 = arith.constant 42 : index
# | 171: %2 = fir.zero_bits !fir.heap<!fir.char<1,42>>
# | 172: %3 = fir.embox %2 : (!fir.heap<!fir.char<1,42>>) -> !fir.box<!fir.heap<!fir.char<1,42>>>
# | 173: fir.store %3 to %1 : !fir.ref<!fir.box<!fir.heap<!fir.char<1,42>>>>
# | 174: %4:2 = hlfir.declare %1 typeparams %c42 {fortran_attrs = #fir.var_attrs<allocatable>, uniq_name = "_QFtest_allocatable_fixed_len_stringEfixed_len_str"} : (!fir.ref<!fir.box<!fir.heap<!fir.char<1,42>>>>, index) -> (!fir.ref<!fir.box<!fir.heap<!fir.char<1,42>>>>, !fir.ref<!fir.box<!fir.heap<!fir.char<1,42>>>>)
# | 175: %5 = fir.alloca i32 {bindc_name = "i", uniq_name = "_QFtest_allocatable_fixed_len_stringEi"}
# | check:18 X error: no match found
# | 176: %6:2 = hlfir.declare %5 {uniq_name = "_QFtest_allocatable_fixed_len_stringEi"} : (!fir.ref<i32>) -> (!fir.ref<i32>, !fir.ref<i32>)
# | check:18 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 177: omp.parallel {
# | check:18 ~~~~~~~~~~~~~~~~
# | 178: %c1_i32 = arith.constant 1 : i32
# | check:18 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 179: %c10_i32 = arith.constant 10 : i32
# | check:18 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 180: %c1_i32_0 = arith.constant 1 : i32
# | check:18 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# 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/186945
More information about the flang-commits
mailing list