bounds_check_fail_2.f90

来自「用于进行gcc测试」· F90 代码 · 共 40 行

F90
40
字号
! { dg-do run }! { dg-options "-fbounds-check" }! { dg-shouldfail "foo" }!! PR 31119module sub_modcontains  elemental subroutine set_optional(i,idef,iopt)    integer, intent(out)          :: i    integer, intent(in)           :: idef    integer, intent(in), optional :: iopt    if (present(iopt)) then      i = iopt    else      i = idef    end if  end subroutine set_optional  subroutine sub(ivec)    integer          , intent(in), optional :: ivec(:)    integer                                 :: ivec_(2)    call set_optional(ivec_,(/1,2/))    if (any (ivec_ /= (/1,2/))) call abort    call set_optional(ivec_,(/1,2/),ivec)    if (present (ivec)) then      if (any (ivec_ /= ivec)) call abort    else      if (any (ivec_ /= (/1,2/))) call abort    end if  end subroutine subend module sub_modprogram main  use sub_mod, only: sub  call sub()  call sub((/4,5/))  call sub((/4/))end program main! { dg-output "Fortran runtime error: Array bound mismatch" }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?