[flang-commits] [flang] [flang][debug] Supply missing subprogram attributes (PR #181425)

via flang-commits flang-commits at lists.llvm.org
Thu Feb 19 04:50:11 PST 2026


github-actions[bot] wrote:

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

* 4010 tests passed
* 201 tests skipped
* 4 tests failed

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

### Flang
<details>
<summary>Flang.Lower/OpenMP/declare-target-func-and-subr.f90</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/flang -fc1 -emit-hlfir -fopenmp -fopenmp-version=52 /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-func-and-subr.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/OpenMP/declare-target-func-and-subr.f90 --check-prefixes ALL,HOST
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/flang -fc1 -emit-hlfir -fopenmp -fopenmp-version=52 /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-func-and-subr.f90 -o -
# .---command stderr------------
# | warning: OpenMP support for version 52 in flang is still incomplete
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-func-and-subr.f90:11:22: warning: The usage of TO clause on DECLARE TARGET directive has been deprecated. Use ENTER clause instead. [-Wopen-mp-usage]
# |   !$omp declare target to(FUNC_T_DEVICE) device_type(nohost)
# |                        ^^^^^^^^^^^^^^^^^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-func-and-subr.f90:27:22: warning: The usage of TO clause on DECLARE TARGET directive has been deprecated. Use ENTER clause instead. [-Wopen-mp-usage]
# |   !$omp declare target to(FUNC_T_HOST) device_type(host)
# |                        ^^^^^^^^^^^^^^^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-func-and-subr.f90:43:22: warning: The usage of TO clause on DECLARE TARGET directive has been deprecated. Use ENTER clause instead. [-Wopen-mp-usage]
# |   !$omp declare target to(FUNC_T_ANY) device_type(any)
# |                        ^^^^^^^^^^^^^^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-func-and-subr.f90:59:22: warning: The usage of TO clause on DECLARE TARGET directive has been deprecated. Use ENTER clause instead. [-Wopen-mp-usage]
# |   !$omp declare target to(FUNC_DEFAULT_T_ANY)
# |                        ^^^^^^^^^^^^^^^^^^^^^^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-func-and-subr.f90:104:22: warning: The usage of TO clause on DECLARE TARGET directive has been deprecated. Use ENTER clause instead. [-Wopen-mp-usage]
# |   !$omp declare target to(SUBR_T_DEVICE) device_type(nohost)
# |                        ^^^^^^^^^^^^^^^^^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-func-and-subr.f90:116:22: warning: The usage of TO clause on DECLARE TARGET directive has been deprecated. Use ENTER clause instead. [-Wopen-mp-usage]
# |   !$omp declare target to(SUBR_T_HOST) device_type(host)
# |                        ^^^^^^^^^^^^^^^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-func-and-subr.f90:128:22: warning: The usage of TO clause on DECLARE TARGET directive has been deprecated. Use ENTER clause instead. [-Wopen-mp-usage]
# |   !$omp declare target to(SUBR_T_ANY) device_type(any)
# |                        ^^^^^^^^^^^^^^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-func-and-subr.f90:140:22: warning: The usage of TO clause on DECLARE TARGET directive has been deprecated. Use ENTER clause instead. [-Wopen-mp-usage]
# |   !$omp declare target to(SUBR_DEFAULT_T_ANY)
# |                        ^^^^^^^^^^^^^^^^^^^^^^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-func-and-subr.f90:166:22: warning: The usage of TO clause on DECLARE TARGET directive has been deprecated. Use ENTER clause instead. [-Wopen-mp-usage]
# |   !$omp declare target to(RECURSIVE_DECLARE_TARGET) device_type(nohost)
# |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
# `-----------------------------
# 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/OpenMP/declare-target-func-and-subr.f90 --check-prefixes ALL,HOST
# note: command had no output on stdout or stderr
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/flang -fc1 -emit-hlfir -fopenmp -fopenmp-version=52 -fopenmp-is-device /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-func-and-subr.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/OpenMP/declare-target-func-and-subr.f90 --check-prefixes ALL,DEVICE
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/flang -fc1 -emit-hlfir -fopenmp -fopenmp-version=52 -fopenmp-is-device /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-func-and-subr.f90 -o -
# .---command stderr------------
# | warning: OpenMP support for version 52 in flang is still incomplete
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-func-and-subr.f90:11:22: warning: The usage of TO clause on DECLARE TARGET directive has been deprecated. Use ENTER clause instead. [-Wopen-mp-usage]
# |   !$omp declare target to(FUNC_T_DEVICE) device_type(nohost)
# |                        ^^^^^^^^^^^^^^^^^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-func-and-subr.f90:27:22: warning: The usage of TO clause on DECLARE TARGET directive has been deprecated. Use ENTER clause instead. [-Wopen-mp-usage]
# |   !$omp declare target to(FUNC_T_HOST) device_type(host)
# |                        ^^^^^^^^^^^^^^^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-func-and-subr.f90:43:22: warning: The usage of TO clause on DECLARE TARGET directive has been deprecated. Use ENTER clause instead. [-Wopen-mp-usage]
# |   !$omp declare target to(FUNC_T_ANY) device_type(any)
# |                        ^^^^^^^^^^^^^^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-func-and-subr.f90:59:22: warning: The usage of TO clause on DECLARE TARGET directive has been deprecated. Use ENTER clause instead. [-Wopen-mp-usage]
# |   !$omp declare target to(FUNC_DEFAULT_T_ANY)
# |                        ^^^^^^^^^^^^^^^^^^^^^^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-func-and-subr.f90:104:22: warning: The usage of TO clause on DECLARE TARGET directive has been deprecated. Use ENTER clause instead. [-Wopen-mp-usage]
# |   !$omp declare target to(SUBR_T_DEVICE) device_type(nohost)
# |                        ^^^^^^^^^^^^^^^^^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-func-and-subr.f90:116:22: warning: The usage of TO clause on DECLARE TARGET directive has been deprecated. Use ENTER clause instead. [-Wopen-mp-usage]
# |   !$omp declare target to(SUBR_T_HOST) device_type(host)
# |                        ^^^^^^^^^^^^^^^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-func-and-subr.f90:128:22: warning: The usage of TO clause on DECLARE TARGET directive has been deprecated. Use ENTER clause instead. [-Wopen-mp-usage]
# |   !$omp declare target to(SUBR_T_ANY) device_type(any)
# |                        ^^^^^^^^^^^^^^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-func-and-subr.f90:140:22: warning: The usage of TO clause on DECLARE TARGET directive has been deprecated. Use ENTER clause instead. [-Wopen-mp-usage]
# |   !$omp declare target to(SUBR_DEFAULT_T_ANY)
# |                        ^^^^^^^^^^^^^^^^^^^^^^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-func-and-subr.f90:166:22: warning: The usage of TO clause on DECLARE TARGET directive has been deprecated. Use ENTER clause instead. [-Wopen-mp-usage]
# |   !$omp declare target to(RECURSIVE_DECLARE_TARGET) device_type(nohost)
# |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
# `-----------------------------
# 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/OpenMP/declare-target-func-and-subr.f90 --check-prefixes ALL,DEVICE
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-func-and-subr.f90:164:16: error: DEVICE-SAME: expected string not found in input
# | ! DEVICE-SAME: {{.*}}attributes {omp.declare_target = #omp.declaretarget<device_type = (nohost), capture_clause = (to), automap = false>{{.*}}
# |                ^
# | <stdin>:115:40: note: scanning from here
# |  func.func @_QPrecursive_declare_target(%arg0: !fir.ref<i32> {fir.bindc_name = "increment"}) -> i32 attributes {fir.proc_attrs = #fir.proc_attrs<recursive>, omp.declare_target = #omp.declaretarget<device_type = (nohost), capture_clause = (to), automap = false>} {
# |                                        ^
# | <stdin>:115:145: note: possible intended match here
# |  func.func @_QPrecursive_declare_target(%arg0: !fir.ref<i32> {fir.bindc_name = "increment"}) -> i32 attributes {fir.proc_attrs = #fir.proc_attrs<recursive>, omp.declare_target = #omp.declaretarget<device_type = (nohost), capture_clause = (to), automap = false>} {
# |                                                                                                                                                 ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-func-and-subr.f90:176:16: error: DEVICE-SAME: expected string not found in input
# | ! DEVICE-SAME: {{.*}}attributes {omp.declare_target = #omp.declaretarget<device_type = (nohost), capture_clause = (enter), automap = false>{{.*}}
# |                ^
# | <stdin>:138:46: note: scanning from here
# |  func.func @_QPrecursive_declare_target_enter(%arg0: !fir.ref<i32> {fir.bindc_name = "increment"}) -> i32 attributes {fir.proc_attrs = #fir.proc_attrs<recursive>, omp.declare_target = #omp.declaretarget<device_type = (nohost), capture_clause = (enter), automap = false>} {
# |                                              ^
# | <stdin>:138:151: note: possible intended match here
# |  func.func @_QPrecursive_declare_target_enter(%arg0: !fir.ref<i32> {fir.bindc_name = "increment"}) -> i32 attributes {fir.proc_attrs = #fir.proc_attrs<recursive>, omp.declare_target = #omp.declaretarget<device_type = (nohost), capture_clause = (enter), automap = false>} {
# |                                                                                                                                                       ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-func-and-subr.f90
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |           110:  } 
# |           111:  func.func @_QPsubr_default_extendedlist() attributes {omp.declare_target = #omp.declaretarget<device_type = (any), capture_clause = (to), automap = false>} { 
# |           112:  %0 = fir.dummy_scope : !fir.dscope 
# |           113:  return 
# |           114:  } 
# |           115:  func.func @_QPrecursive_declare_target(%arg0: !fir.ref<i32> {fir.bindc_name = "increment"}) -> i32 attributes {fir.proc_attrs = #fir.proc_attrs<recursive>, omp.declare_target = #omp.declaretarget<device_type = (nohost), capture_clause = (to), automap = false>} { 
# | same:164'0                                            X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# | same:164'1                                                                                                                                                     ?                                                                                                                        possible intended match
# |           116:  %0 = fir.dummy_scope : !fir.dscope 
# | same:164'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           117:  %1:2 = hlfir.declare %arg0 dummy_scope %0 arg 1 {uniq_name = "_QFrecursive_declare_targetEincrement"} : (!fir.ref<i32>, !fir.dscope) -> (!fir.ref<i32>, !fir.ref<i32>) 
# | same:164'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           118:  %2 = fir.alloca i32 {bindc_name = "k", uniq_name = "_QFrecursive_declare_targetEk"} 
# | same:164'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           119:  %3:2 = hlfir.declare %2 {uniq_name = "_QFrecursive_declare_targetEk"} : (!fir.ref<i32>) -> (!fir.ref<i32>, !fir.ref<i32>) 
# | same:164'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           120:  %4 = fir.load %1#0 : !fir.ref<i32> 
# | same:164'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           133:  hlfir.end_associate %9#1, %9#2 : !fir.ref<i32>, i1 
# | same:164'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           134:  } 
# | same:164'0     ~~~
# |           135:  %6 = fir.load %3#0 : !fir.ref<i32> 
# | same:164'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           136:  return %6 : i32 
# | same:164'0     ~~~~~~~~~~~~~~~~~
# |           137:  } 
# | same:164'0     ~~~
# |           138:  func.func @_QPrecursive_declare_target_enter(%arg0: !fir.ref<i32> {fir.bindc_name = "increment"}) -> i32 attributes {fir.proc_attrs = #fir.proc_attrs<recursive>, omp.declare_target = #omp.declaretarget<device_type = (nohost), capture_clause = (enter), automap = false>} { 
# | same:164'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | same:176'0                                                  X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# | same:176'1                                                                                                                                                           ?                                                                                                                           possible intended match
# |           139:  %0 = fir.dummy_scope : !fir.dscope 
# | same:176'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           140:  %1:2 = hlfir.declare %arg0 dummy_scope %0 arg 1 {uniq_name = "_QFrecursive_declare_target_enterEincrement"} : (!fir.ref<i32>, !fir.dscope) -> (!fir.ref<i32>, !fir.ref<i32>) 
# | same:176'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           141:  %2 = fir.alloca i32 {bindc_name = "k", uniq_name = "_QFrecursive_declare_target_enterEk"} 
# | same:176'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           142:  %3:2 = hlfir.declare %2 {uniq_name = "_QFrecursive_declare_target_enterEk"} : (!fir.ref<i32>) -> (!fir.ref<i32>, !fir.ref<i32>) 
# | same:176'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           143:  %4 = fir.load %1#0 : !fir.ref<i32> 
# | same:176'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>Flang.Lower/OpenMP/declare-target-implicit-func-and-subr-cap-enter.f90</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/flang -fc1 -emit-hlfir -fopenmp -fopenmp-version=52 /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-implicit-func-and-subr-cap-enter.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/OpenMP/declare-target-implicit-func-and-subr-cap-enter.f90
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/flang -fc1 -emit-hlfir -fopenmp -fopenmp-version=52 /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-implicit-func-and-subr-cap-enter.f90 -o -
# .---command stderr------------
# | warning: OpenMP support for version 52 in flang is still incomplete
# `-----------------------------
# 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/OpenMP/declare-target-implicit-func-and-subr-cap-enter.f90
# note: command had no output on stdout or stderr
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/flang -fc1 -emit-hlfir -fopenmp -fopenmp-version=52 -fopenmp-is-target-device /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-implicit-func-and-subr-cap-enter.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/OpenMP/declare-target-implicit-func-and-subr-cap-enter.f90  --check-prefix=DEVICE
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/flang -fc1 -emit-hlfir -fopenmp -fopenmp-version=52 -fopenmp-is-target-device /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-implicit-func-and-subr-cap-enter.f90 -o -
# .---command stderr------------
# | warning: OpenMP support for version 52 in flang is still incomplete
# `-----------------------------
# 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/OpenMP/declare-target-implicit-func-and-subr-cap-enter.f90 --check-prefix=DEVICE
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-implicit-func-and-subr-cap-enter.f90:108:16: error: DEVICE-SAME: expected string not found in input
# | ! DEVICE-SAME: {{.*}}attributes {omp.declare_target = #omp.declaretarget<device_type = (any), capture_clause = (enter), automap = false>{{.*}}}
# |                ^
# | <stdin>:124:59: note: scanning from here
# |  func.func @_QPimplicitly_captured_with_dev_type_recursive(%arg0: !fir.ref<i32> {fir.bindc_name = "increment"}) -> i32 attributes {fir.proc_attrs = #fir.proc_attrs<recursive>, omp.declare_target = #omp.declaretarget<device_type = (any), capture_clause = (enter), automap = false>} {
# |                                                           ^
# | <stdin>:124:164: note: possible intended match here
# |  func.func @_QPimplicitly_captured_with_dev_type_recursive(%arg0: !fir.ref<i32> {fir.bindc_name = "increment"}) -> i32 attributes {fir.proc_attrs = #fir.proc_attrs<recursive>, omp.declare_target = #omp.declaretarget<device_type = (any), capture_clause = (enter), automap = false>} {
# |                                                                                                                                                                    ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-implicit-func-and-subr-cap-enter.f90:177:16: error: DEVICE-SAME: expected string not found in input
# | ! DEVICE-SAME: {{.*}}attributes {omp.declare_target = #omp.declaretarget<device_type = (nohost), capture_clause = (enter), automap = false>{{.*}}}
# |                ^
# | <stdin>:201:45: note: scanning from here
# |  func.func @_QPimplicitly_captured_recursive(%arg0: !fir.ref<i32> {fir.bindc_name = "increment"}) attributes {fir.proc_attrs = #fir.proc_attrs<recursive>, omp.declare_target = #omp.declaretarget<device_type = (nohost), capture_clause = (enter), automap = false>} {
# |                                             ^
# | <stdin>:201:143: note: possible intended match here
# |  func.func @_QPimplicitly_captured_recursive(%arg0: !fir.ref<i32> {fir.bindc_name = "increment"}) attributes {fir.proc_attrs = #fir.proc_attrs<recursive>, omp.declare_target = #omp.declaretarget<device_type = (nohost), capture_clause = (enter), automap = false>} {
# |                                                                                                                                               ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-implicit-func-and-subr-cap-enter.f90
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |           119:  %8 = arith.addi %6, %7 : i32 
# |           120:  hlfir.assign %8 to %4#0 : i32, !fir.ref<i32> 
# |           121:  %9 = fir.load %4#0 : !fir.ref<i32> 
# |           122:  return %9 : i32 
# |           123:  } 
# |           124:  func.func @_QPimplicitly_captured_with_dev_type_recursive(%arg0: !fir.ref<i32> {fir.bindc_name = "increment"}) -> i32 attributes {fir.proc_attrs = #fir.proc_attrs<recursive>, omp.declare_target = #omp.declaretarget<device_type = (any), capture_clause = (enter), automap = false>} { 
# | same:108'0                                                               X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# | same:108'1                                                                                                                                                                        ?                                                                                                                        possible intended match
# |           125:  %0 = fir.dummy_scope : !fir.dscope 
# | same:108'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           126:  %1:2 = hlfir.declare %arg0 dummy_scope %0 arg 1 {uniq_name = "_QFimplicitly_captured_with_dev_type_recursiveEincrement"} : (!fir.ref<i32>, !fir.dscope) -> (!fir.ref<i32>, !fir.ref<i32>) 
# | same:108'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           127:  %2 = fir.alloca i32 {bindc_name = "k", uniq_name = "_QFimplicitly_captured_with_dev_type_recursiveEk"} 
# | same:108'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           128:  %3:2 = hlfir.declare %2 {uniq_name = "_QFimplicitly_captured_with_dev_type_recursiveEk"} : (!fir.ref<i32>) -> (!fir.ref<i32>, !fir.ref<i32>) 
# | same:108'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           129:  %4 = fir.load %1#0 : !fir.ref<i32> 
# | same:108'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           196:  %8 = arith.addi %6, %7 : i32 
# |           197:  hlfir.assign %8 to %4#0 : i32, !fir.ref<i32> 
# |           198:  %9 = fir.load %4#0 : !fir.ref<i32> 
# |           199:  return %9 : i32 
# |           200:  } 
# |           201:  func.func @_QPimplicitly_captured_recursive(%arg0: !fir.ref<i32> {fir.bindc_name = "increment"}) attributes {fir.proc_attrs = #fir.proc_attrs<recursive>, omp.declare_target = #omp.declaretarget<device_type = (nohost), capture_clause = (enter), automap = false>} { 
# | same:177'0                                                 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# | same:177'1                                                                                                                                                   ?                                                                                                                           possible intended match
# |           202:  %0 = fir.dummy_scope : !fir.dscope 
# | same:177'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           203:  %1:2 = hlfir.declare %arg0 dummy_scope %0 arg 1 {uniq_name = "_QFimplicitly_captured_recursiveEincrement"} : (!fir.ref<i32>, !fir.dscope) -> (!fir.ref<i32>, !fir.ref<i32>) 
# | same:177'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           204:  %2 = fir.load %1#0 : !fir.ref<i32> 
# | same:177'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           205:  %c10_i32 = arith.constant 10 : i32 
# | same:177'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           206:  %3 = arith.cmpi eq, %2, %c10_i32 : i32 
# | same:177'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>Flang.Lower/OpenMP/declare-target-implicit-func-and-subr-cap.f90</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/flang -fc1 -emit-hlfir -fopenmp -fopenmp-version=50 /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-implicit-func-and-subr-cap.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/OpenMP/declare-target-implicit-func-and-subr-cap.f90
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/flang -fc1 -emit-hlfir -fopenmp -fopenmp-version=50 /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-implicit-func-and-subr-cap.f90 -o -
# .---command stderr------------
# | warning: OpenMP support for version 50 in flang is still incomplete
# `-----------------------------
# 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/OpenMP/declare-target-implicit-func-and-subr-cap.f90
# note: command had no output on stdout or stderr
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/flang -fc1 -emit-hlfir -fopenmp -fopenmp-version=50 -fopenmp-is-target-device /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-implicit-func-and-subr-cap.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/OpenMP/declare-target-implicit-func-and-subr-cap.f90  --check-prefix=DEVICE
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/flang -fc1 -emit-hlfir -fopenmp -fopenmp-version=50 -fopenmp-is-target-device /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-implicit-func-and-subr-cap.f90 -o -
# .---command stderr------------
# | warning: OpenMP support for version 50 in flang is still incomplete
# `-----------------------------
# 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/OpenMP/declare-target-implicit-func-and-subr-cap.f90 --check-prefix=DEVICE
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-implicit-func-and-subr-cap.f90:134:16: error: DEVICE-SAME: expected string not found in input
# | ! DEVICE-SAME: {{.*}}attributes {omp.declare_target = #omp.declaretarget<device_type = (any), capture_clause = (to), automap = false>{{.*}}}
# |                ^
# | <stdin>:159:59: note: scanning from here
# |  func.func @_QPimplicitly_captured_with_dev_type_recursive(%arg0: !fir.ref<i32> {fir.bindc_name = "increment"}) -> i32 attributes {fir.proc_attrs = #fir.proc_attrs<recursive>, omp.declare_target = #omp.declaretarget<device_type = (any), capture_clause = (to), automap = false>} {
# |                                                           ^
# | <stdin>:159:164: note: possible intended match here
# |  func.func @_QPimplicitly_captured_with_dev_type_recursive(%arg0: !fir.ref<i32> {fir.bindc_name = "increment"}) -> i32 attributes {fir.proc_attrs = #fir.proc_attrs<recursive>, omp.declare_target = #omp.declaretarget<device_type = (any), capture_clause = (to), automap = false>} {
# |                                                                                                                                                                    ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-implicit-func-and-subr-cap.f90:203:16: error: DEVICE-SAME: expected string not found in input
# | ! DEVICE-SAME: {{.*}}attributes {omp.declare_target = #omp.declaretarget<device_type = (nohost), capture_clause = (to), automap = false>{{.*}}}
# |                ^
# | <stdin>:236:45: note: scanning from here
# |  func.func @_QPimplicitly_captured_recursive(%arg0: !fir.ref<i32> {fir.bindc_name = "increment"}) attributes {fir.proc_attrs = #fir.proc_attrs<recursive>, omp.declare_target = #omp.declaretarget<device_type = (nohost), capture_clause = (to), automap = false>} {
# |                                             ^
# | <stdin>:236:143: note: possible intended match here
# |  func.func @_QPimplicitly_captured_recursive(%arg0: !fir.ref<i32> {fir.bindc_name = "increment"}) attributes {fir.proc_attrs = #fir.proc_attrs<recursive>, omp.declare_target = #omp.declaretarget<device_type = (nohost), capture_clause = (to), automap = false>} {
# |                                                                                                                                               ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-implicit-func-and-subr-cap.f90
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |           154:  %8 = arith.addi %6, %7 : i32 
# |           155:  hlfir.assign %8 to %4#0 : i32, !fir.ref<i32> 
# |           156:  %9 = fir.load %4#0 : !fir.ref<i32> 
# |           157:  return %9 : i32 
# |           158:  } 
# |           159:  func.func @_QPimplicitly_captured_with_dev_type_recursive(%arg0: !fir.ref<i32> {fir.bindc_name = "increment"}) -> i32 attributes {fir.proc_attrs = #fir.proc_attrs<recursive>, omp.declare_target = #omp.declaretarget<device_type = (any), capture_clause = (to), automap = false>} { 
# | same:134'0                                                               X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# | same:134'1                                                                                                                                                                        ?                                                                                                                     possible intended match
# |           160:  %0 = fir.dummy_scope : !fir.dscope 
# | same:134'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           161:  %1:2 = hlfir.declare %arg0 dummy_scope %0 arg 1 {uniq_name = "_QFimplicitly_captured_with_dev_type_recursiveEincrement"} : (!fir.ref<i32>, !fir.dscope) -> (!fir.ref<i32>, !fir.ref<i32>) 
# | same:134'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           162:  %2 = fir.alloca i32 {bindc_name = "k", uniq_name = "_QFimplicitly_captured_with_dev_type_recursiveEk"} 
# | same:134'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           163:  %3:2 = hlfir.declare %2 {uniq_name = "_QFimplicitly_captured_with_dev_type_recursiveEk"} : (!fir.ref<i32>) -> (!fir.ref<i32>, !fir.ref<i32>) 
# | same:134'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           164:  %4 = fir.load %1#0 : !fir.ref<i32> 
# | same:134'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           231:  %8 = arith.addi %6, %7 : i32 
# |           232:  hlfir.assign %8 to %4#0 : i32, !fir.ref<i32> 
# |           233:  %9 = fir.load %4#0 : !fir.ref<i32> 
# |           234:  return %9 : i32 
# |           235:  } 
# |           236:  func.func @_QPimplicitly_captured_recursive(%arg0: !fir.ref<i32> {fir.bindc_name = "increment"}) attributes {fir.proc_attrs = #fir.proc_attrs<recursive>, omp.declare_target = #omp.declaretarget<device_type = (nohost), capture_clause = (to), automap = false>} { 
# | same:203'0                                                 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# | same:203'1                                                                                                                                                   ?                                                                                                                        possible intended match
# |           237:  %0 = fir.dummy_scope : !fir.dscope 
# | same:203'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           238:  %1:2 = hlfir.declare %arg0 dummy_scope %0 arg 1 {uniq_name = "_QFimplicitly_captured_recursiveEincrement"} : (!fir.ref<i32>, !fir.dscope) -> (!fir.ref<i32>, !fir.ref<i32>) 
# | same:203'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           239:  %2 = fir.load %1#0 : !fir.ref<i32> 
# | same:203'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           240:  %c10_i32 = arith.constant 10 : i32 
# | same:203'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           241:  %3 = arith.cmpi eq, %2, %c10_i32 : i32 
# | same:203'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>Flang.Lower/OpenMP/declare-target-implicit-tarop-cap.f90</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/flang -fc1 -emit-hlfir -fopenmp -fopenmp-version=52 /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-implicit-tarop-cap.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/OpenMP/declare-target-implicit-tarop-cap.f90
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/flang -fc1 -emit-hlfir -fopenmp -fopenmp-version=52 /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-implicit-tarop-cap.f90 -o -
# .---command stderr------------
# | warning: OpenMP support for version 52 in flang is still incomplete
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-implicit-tarop-cap.f90:33:22: warning: The usage of TO clause on DECLARE TARGET directive has been deprecated. Use ENTER clause instead. [-Wopen-mp-usage]
# |   !$omp declare target to(implicitly_captured_one_twice) device_type(host)
# |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
# `-----------------------------
# 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/OpenMP/declare-target-implicit-tarop-cap.f90
# note: command had no output on stdout or stderr
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/flang -fc1 -emit-hlfir -fopenmp -fopenmp-version=52 -fopenmp-is-device /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-implicit-tarop-cap.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/OpenMP/declare-target-implicit-tarop-cap.f90  --check-prefix=DEVICE
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/flang -fc1 -emit-hlfir -fopenmp -fopenmp-version=52 -fopenmp-is-device /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-implicit-tarop-cap.f90 -o -
# .---command stderr------------
# | warning: OpenMP support for version 52 in flang is still incomplete
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-implicit-tarop-cap.f90:33:22: warning: The usage of TO clause on DECLARE TARGET directive has been deprecated. Use ENTER clause instead. [-Wopen-mp-usage]
# |   !$omp declare target to(implicitly_captured_one_twice) device_type(host)
# |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
# `-----------------------------
# 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/OpenMP/declare-target-implicit-tarop-cap.f90 --check-prefix=DEVICE
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-implicit-tarop-cap.f90:70:16: error: DEVICE-SAME: expected string not found in input
# | ! DEVICE-SAME: {{.*}}attributes {omp.declare_target = #omp.declaretarget<device_type = (nohost), capture_clause = (to), automap = false>{{.*}}}
# |                ^
# | <stdin>:74:45: note: scanning from here
# |  func.func @_QPimplicitly_captured_recursive(%arg0: !fir.ref<i32> {fir.bindc_name = "increment"}) -> i32 attributes {fir.proc_attrs = #fir.proc_attrs<recursive>, omp.declare_target = #omp.declaretarget<device_type = (nohost), capture_clause = (to), automap = false>} {
# |                                             ^
# | <stdin>:97:47: note: possible intended match here
# |  func.func @_QPtarget_function_recurse() -> i32 attributes {omp.declare_target = #omp.declaretarget<device_type = (host), capture_clause = (to), automap = false>} {
# |                                               ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/flang/test/Lower/OpenMP/declare-target-implicit-tarop-cap.f90
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            .
# |            .
# |            .
# |           69:  omp.terminator 
# |           70:  } 
# |           71:  %8 = fir.undefined i32 
# |           72:  return %8 : i32 
# |           73:  } 
# |           74:  func.func @_QPimplicitly_captured_recursive(%arg0: !fir.ref<i32> {fir.bindc_name = "increment"}) -> i32 attributes {fir.proc_attrs = #fir.proc_attrs<recursive>, omp.declare_target = #omp.declaretarget<device_type = (nohost), capture_clause = (to), automap = false>} { 
# | same:70'0                                                 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# |           75:  %0 = fir.dummy_scope : !fir.dscope 
# | same:70'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           76:  %1:2 = hlfir.declare %arg0 dummy_scope %0 arg 1 {uniq_name = "_QFimplicitly_captured_recursiveEincrement"} : (!fir.ref<i32>, !fir.dscope) -> (!fir.ref<i32>, !fir.ref<i32>) 
# | same:70'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           77:  %2 = fir.alloca i32 {bindc_name = "k", uniq_name = "_QFimplicitly_captured_recursiveEk"} 
# | same:70'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           78:  %3:2 = hlfir.declare %2 {uniq_name = "_QFimplicitly_captured_recursiveEk"} : (!fir.ref<i32>) -> (!fir.ref<i32>, !fir.ref<i32>) 
# | same:70'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           79:  %4 = fir.load %1#0 : !fir.ref<i32> 
# | same:70'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            .
# |            .
# |            .
# |           92:  hlfir.end_associate %9#1, %9#2 : !fir.ref<i32>, i1 
# | same:70'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           93:  } 
# | same:70'0     ~~~
# |           94:  %6 = fir.load %3#0 : !fir.ref<i32> 
# | same:70'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           95:  return %6 : i32 
# | same:70'0     ~~~~~~~~~~~~~~~~~
# |           96:  } 
# | same:70'0     ~~~
# |           97:  func.func @_QPtarget_function_recurse() -> i32 attributes {omp.declare_target = #omp.declaretarget<device_type = (host), capture_clause = (to), automap = false>} { 
# | same:70'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | same:70'1                                                   ?                                                                                                                       possible intended match
# |           98:  %0 = fir.alloca i1 
# | same:70'0     ~~~~~~~~~~~~~~~~~~~~
# |           99:  %1 = fir.convert %0 : (!fir.ref<i1>) -> !fir.ref<i32> 
# | same:70'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          100:  %2:2 = hlfir.declare %1 {uniq_name = "_QFtarget_function_recurseEi"} : (!fir.ref<i32>) -> (!fir.ref<i32>, !fir.ref<i32>) 
# | same:70'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          101:  %3 = omp.map.info var_ptr(%2#1 : !fir.ref<i32>, i32) map_clauses(tofrom) capture(ByRef) -> !fir.ref<i32> {name = "i"} 
# | same:70'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |          102:  omp.target map_entries(%3 -> %arg0 : !fir.ref<i32>) { 
# | same:70'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/181425


More information about the flang-commits mailing list