internal_pack_4.f90
来自「用于进行gcc测试」· F90 代码 · 共 32 行
F90
32 行
! { dg-do run }! { dg-options "-fdump-tree-original" }!! PR fortran/36132!! Before invalid memory was accessed because an absent, optional! argument was packed before passing it as absent actual.! Getting it to crash is difficult, but valgrind shows the problem.!MODULE M1 INTEGER, PARAMETER :: dp=KIND(0.0D0)CONTAINS SUBROUTINE S1(a) REAL(dp), DIMENSION(45), INTENT(OUT), & OPTIONAL :: a if (present(a)) call abort() END SUBROUTINE S1 SUBROUTINE S2(a) REAL(dp), DIMENSION(:, :), INTENT(OUT), & OPTIONAL :: a CALL S1(a) END SUBROUTINEEND MODULE M1USE M1CALL S2()END! { dg-final { scan-tree-dump-times "a != 0B \\? _gfortran_internal_pack" 1 "original" } }! { dg-final { scan-tree-dump-times "if \\(a != 0B &&" 1 "original" } }! { dg-final { cleanup-tree-dump "original" } }
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?