missing_optional_dummy_1.f90
来自「用于进行gcc测试」· F90 代码 · 共 50 行
F90
50 行
! { dg-do run }! Test the fix for PR26891, in which an optional argument, whose actual! is a missing dummy argument would cause a segfault.!! Contributed by Paul Thomas <pault@gcc.gnu.org>! logical :: back =.false.! This was the case that would fail - PR case was an intrinsic call. if (scan ("A quick brown fox jumps over the lazy dog", "lazy", back) & .ne. myscan ("A quick brown fox jumps over the lazy dog", "lazy")) & call abort ()! Check that the patch works with non-intrinsic functions. if (myscan ("A quick brown fox jumps over the lazy dog", "fox", back) & .ne. thyscan ("A quick brown fox jumps over the lazy dog", "fox")) & call abort ()! Check that missing, optional character actual arguments are OK. if (scan ("A quick brown fox jumps over the lazy dog", "over", back) & .ne. thyscan ("A quick brown fox jumps over the lazy dog")) & call abort ()contains integer function myscan (str, substr, back) character(*), intent(in) :: str, substr logical, optional, intent(in) :: back myscan = scan (str, substr, back) end function myscan integer function thyscan (str, substr, back) character(*), intent(in) :: str character(*), optional, intent(in) :: substr logical, optional, intent(in) :: back thyscan = isscan (str, substr, back) end function thyscan integer function isscan (str, substr, back) character(*), intent(in) :: str character(*), optional :: substr logical, optional, intent(in) :: back if (.not.present(substr)) then isscan = myscan (str, "over", back) else isscan = myscan (str, substr, back) end if end function isscanend
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?