! Test that temps are always created of parenthesized arguments in ! calls. ! RUN: bbc -emit-hlfir %s -o - | FileCheck %s ! CHECK-LABEL: func @_QPfoo_num_scalar( subroutine foo_num_scalar(x) integer :: x call bar_num_scalar(x) ! CHECK-NOT: fir.load ! CHECK: fir.call @_QPbar_num_scalar( call bar_num_scalar((x)) ! CHECK: fir.load ! CHECK: fir.call @_QPbar_num_scalar( end subroutine ! CHECK-LABEL: func @_QPfoo_char_scalar( subroutine foo_char_scalar(x) character(5) :: x ! CHECK-NOT: hlfir.as_expr ! CHECK: fir.call @_QPbar_char_scalar( call bar_char_scalar(x) ! CHECK: hlfir.as_expr ! CHECK: fir.call @_QPbar_char_scalar( call bar_char_scalar((x)) end subroutine ! CHECK-LABEL: func @_QPfoo_num_array( subroutine foo_num_array(x) integer :: x(100) call bar_num_array(x) ! CHECK-NOT: hlfir.elemental ! CHECK: fir.call @_QPbar_num_array( call bar_num_array((x)) ! CHECK: hlfir.elemental ! CHECK: fir.call @_QPbar_num_array( end subroutine ! CHECK-LABEL: func @_QPfoo_char_array( subroutine foo_char_array(x) character(10) :: x(100) call bar_char_array(x) ! CHECK-NOT: hlfir.elemental ! CHECK: fir.call @_QPbar_char_array( call bar_char_array((x)) ! CHECK: hlfir.elemental ! CHECK: fir.call @_QPbar_char_array( end subroutine ! CHECK-LABEL: func @_QPfoo_num_array_box( subroutine foo_num_array_box(x) integer :: x(100) interface subroutine bar_num_array_box(x) integer :: x(:) end subroutine end interface call bar_num_array_box(x) ! CHECK-NOT: hlfir.elemental ! CHECK: fir.call @_QPbar_num_array_box( call bar_num_array_box((x)) ! CHECK: hlfir.elemental ! CHECK: fir.call @_QPbar_num_array_box( end subroutine ! CHECK-LABEL: func @_QPfoo_char_array_box( subroutine foo_char_array_box(x, n) integer :: n character(10) :: x(n) interface subroutine bar_char_array_box(x) character(*) :: x(:) end subroutine end interface call bar_char_array_box(x) ! CHECK-NOT: hlfir.elemental ! CHECK: fir.call @_QPbar_char_array_box( call bar_char_array_box((x)) ! CHECK: hlfir.elemental ! CHECK: fir.call @_QPbar_char_array_box( end subroutine