diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/c_f_pointer_tests_3.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/c_f_pointer_tests_3.f90 | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/gcc/testsuite/gfortran.dg/c_f_pointer_tests_3.f90 b/gcc/testsuite/gfortran.dg/c_f_pointer_tests_3.f90 index f7d6fa78eb..29072b814f 100644 --- a/gcc/testsuite/gfortran.dg/c_f_pointer_tests_3.f90 +++ b/gcc/testsuite/gfortran.dg/c_f_pointer_tests_3.f90 @@ -21,14 +21,21 @@ program test call c_f_procpointer(cfunptr, fprocptr) end program test -! Make sure there is only a single function call: -! { dg-final { scan-tree-dump-times "c_f" 1 "original" } } -! { dg-final { scan-tree-dump-times "c_f_pointer" 1 "original" } } -! { dg-final { scan-tree-dump-times "c_f_pointer_i4" 1 "original" } } +! Make sure there is no function call: +! { dg-final { scan-tree-dump-times "c_f" 0 "original" } } +! { dg-final { scan-tree-dump-times "c_f_pointer" 0 "original" } } +! { dg-final { scan-tree-dump-times "c_f_pointer_i4" 0 "original" } } ! ! Check scalar c_f_pointer ! { dg-final { scan-tree-dump-times " fptr = .integer.kind=4. .. cptr" 1 "original" } } ! +! Array c_f_pointer: +! +! { dg-final { scan-tree-dump-times " fptr_array.data = cptr;" 1 "original" } } +! { dg-final { scan-tree-dump-times " fptr_array.dim\\\[S..\\\].lbound = 1;" 1 "original" } } +! { dg-final { scan-tree-dump-times " fptr_array.dim\\\[S..\\\].ubound = " 1 "original" } } +! { dg-final { scan-tree-dump-times " fptr_array.dim\\\[S..\\\].stride = " 1 "original" } } +! ! Check c_f_procpointer ! { dg-final { scan-tree-dump-times " fprocptr = .integer.kind=4. .\\*<.*>. ... cfunptr;" 1 "original" } } ! |