! RUN: bbc -emit-fir %s -o - | FileCheck %s ! Test propagation of Fortran attributes to FIR. ! CHECK-LABEL: func @_QPfoo1( ! CHECK-SAME: %arg0: !fir.ref {fir.bindc_name = "x", fir.optional}, ! CHECK-SAME: %arg1: !fir.box> {fir.bindc_name = "y", fir.optional}, ! CHECK-SAME: %arg2: !fir.ref>>> {fir.bindc_name = "i", fir.optional}, ! CHECK-SAME: %arg3: !fir.boxchar<1> {fir.bindc_name = "c", fir.optional} subroutine foo1(x, y, i, c) real, optional :: x, y(:) integer, allocatable, optional :: i(:) character, optional :: c end subroutine ! CHECK-LABEL: func @_QPfoo2( ! CHECK-SAME: %arg0: !fir.box> {fir.bindc_name = "x", fir.contiguous}, ! CHECK-SAME: %arg1: !fir.ref>>> {fir.bindc_name = "i", fir.contiguous} subroutine foo2(x, i) real, contiguous :: x(:) integer, pointer, contiguous :: i(:) end subroutine ! CHECK-LABEL: func @_QPfoo3 ! CHECK-SAME: %arg0: !fir.box> {fir.bindc_name = "x", fir.contiguous, fir.optional} subroutine foo3(x) real, optional, contiguous :: x(:) end subroutine