brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.7 KiB · 938cdcc Raw
54 lines · plain
1! Test that dummy argument positions are tracked in hlfir.declare2! RUN: bbc -emit-hlfir -o - %s | FileCheck %s3 4! CHECK-LABEL: func.func @_QPsingle_arg(5subroutine single_arg(n)6  integer :: n7  ! CHECK: hlfir.declare %{{.*}} dummy_scope %{{.*}} arg 1 {uniq_name = "_QFsingle_argEn"}8  print *, n9end subroutine10 11! CHECK-LABEL: func.func @_QPmultiple_args(12subroutine multiple_args(a, b, c)13  integer :: a, b, c14  ! CHECK-DAG: hlfir.declare %{{.*}} dummy_scope %{{.*}} arg 1 {uniq_name = "_QFmultiple_argsEa"}15  ! CHECK-DAG: hlfir.declare %{{.*}} dummy_scope %{{.*}} arg 2 {uniq_name = "_QFmultiple_argsEb"}16  ! CHECK-DAG: hlfir.declare %{{.*}} dummy_scope %{{.*}} arg 3 {uniq_name = "_QFmultiple_argsEc"}17  print *, a, b, c18end subroutine19 20! CHECK-LABEL: func.func @_QPchar_arg(21subroutine char_arg(str)22  character(len=5) :: str23  ! CHECK: hlfir.declare %{{.*}} typeparams %{{.*}} dummy_scope %{{.*}} arg 1 {uniq_name = "_QFchar_argEstr"}24  print *, str25end subroutine26 27! CHECK-LABEL: func.func @_QParray_arg(28subroutine array_arg(arr)29  integer :: arr(:)30  ! CHECK: hlfir.declare %{{.*}} dummy_scope %{{.*}} arg 1 {uniq_name = "_QFarray_argEarr"}31  print *, arr(1)32end subroutine33 34! Test that local variables do NOT get arg numbers35! CHECK-LABEL: func.func @_QPlocal_var()36subroutine local_var()37  integer :: x38  ! CHECK: hlfir.declare %{{[0-9]+}} {uniq_name = "_QFlocal_varEx"}39  x = 1040  print *, x41end subroutine42 43! Test mixed arguments and locals44! CHECK-LABEL: func.func @_QPmixed(45subroutine mixed(n)46  integer :: n47  integer :: local_x48  ! CHECK-DAG: hlfir.declare %{{[0-9]+}} {uniq_name = "_QFmixedElocal_x"}49  ! CHECK-DAG: hlfir.declare {{.*}} dummy_scope {{.*}} arg 1 {uniq_name = "_QFmixedEn"}50  local_x = n + 151  print *, local_x52end subroutine53 54