re PR fortran/32957 (C/Fortran interoperability and -fdefault-integer-8)
2018-02-26 Dominique d'Humieres <dominiq@gcc.gnu.org> PR fortran/32957 * gfortran.dg/c_f_pointer_shape_tests_2.f03: Use explicit KIND c_int. * gfortran.dg/c_f_pointer_shape_tests_4.f03: Likewise. * gfortran.dg/c_funloc_tests_3.f03: Likewise. * gfortran.dg/c_loc_test.f90: Likewise. * gfortran.dg/c_loc_tests_2.f03: Likewise. * gfortran.dg/proc_decl_17.f90: Likewise. * gfortran.dg/proc_ptr_8.f90: Likewise. From-SVN: r257985
This commit is contained in:
parent
af3b4514fc
commit
f87f88974b
8 changed files with 38 additions and 26 deletions
|
@ -1,3 +1,14 @@
|
|||
2018-02-26 Dominique d'Humieres <dominiq@gcc.gnu.org>
|
||||
|
||||
PR fortran/32957
|
||||
* gfortran.dg/c_f_pointer_shape_tests_2.f03: Use explicit KIND c_int.
|
||||
* gfortran.dg/c_f_pointer_shape_tests_4.f03: Likewise.
|
||||
* gfortran.dg/c_funloc_tests_3.f03: Likewise.
|
||||
* gfortran.dg/c_loc_test.f90: Likewise.
|
||||
* gfortran.dg/c_loc_tests_2.f03: Likewise.
|
||||
* gfortran.dg/proc_decl_17.f90: Likewise.
|
||||
* gfortran.dg/proc_ptr_8.f90: Likewise.
|
||||
|
||||
2018-02-26 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
|
||||
|
||||
PR target/84521
|
||||
|
|
|
@ -12,7 +12,7 @@ contains
|
|||
use, intrinsic :: iso_c_binding
|
||||
type(c_ptr), value :: cPtr
|
||||
integer(c_int), value :: num_elems
|
||||
integer, dimension(:), pointer :: myArrayPtr
|
||||
integer(c_int), dimension(:), pointer :: myArrayPtr
|
||||
integer(c_long_long), dimension(1) :: shape
|
||||
integer :: i
|
||||
|
||||
|
@ -28,7 +28,7 @@ contains
|
|||
type(c_ptr), value :: cPtr
|
||||
integer(c_int), value :: num_rows
|
||||
integer(c_int), value :: num_cols
|
||||
integer, dimension(:,:), pointer :: myArrayPtr
|
||||
integer(c_int), dimension(:,:), pointer :: myArrayPtr
|
||||
integer(c_long_long), dimension(2) :: shape
|
||||
integer :: i,j
|
||||
|
||||
|
@ -46,7 +46,7 @@ contains
|
|||
use, intrinsic :: iso_c_binding
|
||||
type(c_ptr), value :: cPtr
|
||||
integer(c_int), value :: num_elems
|
||||
integer, dimension(:), pointer :: myArrayPtr
|
||||
integer(c_int), dimension(:), pointer :: myArrayPtr
|
||||
integer(c_long), dimension(1) :: shape
|
||||
integer :: i
|
||||
|
||||
|
@ -61,7 +61,7 @@ contains
|
|||
use, intrinsic :: iso_c_binding
|
||||
type(c_ptr), value :: cPtr
|
||||
integer(c_int), value :: num_elems
|
||||
integer, dimension(:), pointer :: myArrayPtr
|
||||
integer(c_int), dimension(:), pointer :: myArrayPtr
|
||||
integer(c_int), dimension(1) :: shape
|
||||
integer :: i
|
||||
|
||||
|
@ -76,7 +76,7 @@ contains
|
|||
use, intrinsic :: iso_c_binding
|
||||
type(c_ptr), value :: cPtr
|
||||
integer(c_int), value :: num_elems
|
||||
integer, dimension(:), pointer :: myArrayPtr
|
||||
integer(c_int), dimension(:), pointer :: myArrayPtr
|
||||
integer(c_short), dimension(1) :: shape
|
||||
integer :: i
|
||||
|
||||
|
@ -91,7 +91,7 @@ contains
|
|||
use, intrinsic :: iso_c_binding
|
||||
type(c_ptr), value :: cPtr
|
||||
integer(c_int), value :: num_elems
|
||||
integer, dimension(:), pointer :: myArrayPtr
|
||||
integer(c_int), dimension(:), pointer :: myArrayPtr
|
||||
integer(c_int), dimension(1) :: shape1
|
||||
integer(c_long_long), dimension(1) :: shape2
|
||||
integer :: i
|
||||
|
|
|
@ -12,7 +12,7 @@ contains
|
|||
use, intrinsic :: iso_c_binding
|
||||
type(c_ptr), value :: cPtr
|
||||
integer(c_int), value :: num_elems
|
||||
integer, dimension(:), pointer :: myArrayPtr
|
||||
integer(c_int), dimension(:), pointer :: myArrayPtr
|
||||
integer(c_long_long), dimension(1) :: shape
|
||||
integer :: i
|
||||
|
||||
|
@ -28,7 +28,7 @@ contains
|
|||
type(c_ptr), value :: cPtr
|
||||
integer(c_int), value :: num_rows
|
||||
integer(c_int), value :: num_cols
|
||||
integer, dimension(:,:), pointer :: myArrayPtr
|
||||
integer(c_int), dimension(:,:), pointer :: myArrayPtr
|
||||
integer(c_long_long), dimension(3) :: shape
|
||||
integer :: i,j
|
||||
|
||||
|
@ -47,7 +47,7 @@ contains
|
|||
use, intrinsic :: iso_c_binding
|
||||
type(c_ptr), value :: cPtr
|
||||
integer(c_int), value :: num_elems
|
||||
integer, dimension(:), pointer :: myArrayPtr
|
||||
integer(c_int), dimension(:), pointer :: myArrayPtr
|
||||
integer(c_long), dimension(1) :: shape
|
||||
integer :: i
|
||||
|
||||
|
@ -62,7 +62,7 @@ contains
|
|||
use, intrinsic :: iso_c_binding
|
||||
type(c_ptr), value :: cPtr
|
||||
integer(c_int), value :: num_elems
|
||||
integer, dimension(:), pointer :: myArrayPtr
|
||||
integer(c_int), dimension(:), pointer :: myArrayPtr
|
||||
integer(c_int), dimension(1) :: shape
|
||||
integer :: i
|
||||
|
||||
|
@ -77,7 +77,7 @@ contains
|
|||
use, intrinsic :: iso_c_binding
|
||||
type(c_ptr), value :: cPtr
|
||||
integer(c_int), value :: num_elems
|
||||
integer, dimension(:), pointer :: myArrayPtr
|
||||
integer(c_int), dimension(:), pointer :: myArrayPtr
|
||||
integer(c_short), dimension(1) :: shape
|
||||
integer :: i
|
||||
|
||||
|
@ -92,7 +92,7 @@ contains
|
|||
use, intrinsic :: iso_c_binding
|
||||
type(c_ptr), value :: cPtr
|
||||
integer(c_int), value :: num_elems
|
||||
integer, dimension(:), pointer :: myArrayPtr
|
||||
integer(c_int), dimension(:), pointer :: myArrayPtr
|
||||
integer(c_int), dimension(1) :: shape1
|
||||
integer(c_long_long), dimension(1) :: shape2
|
||||
integer :: i
|
||||
|
|
|
@ -9,11 +9,11 @@ contains
|
|||
use iso_c_binding, only: c_funptr, c_int
|
||||
integer(c_int) :: ffunc
|
||||
integer(c_int), value :: j
|
||||
ffunc = -17*j
|
||||
ffunc = -17_c_int*j
|
||||
end function ffunc
|
||||
end module c_funloc_tests_3
|
||||
program main
|
||||
use iso_c_binding, only: c_funptr, c_funloc
|
||||
use iso_c_binding, only: c_funptr, c_funloc, c_int
|
||||
use c_funloc_tests_3, only: ffunc
|
||||
implicit none
|
||||
interface
|
||||
|
@ -29,7 +29,7 @@ program main
|
|||
end interface
|
||||
type(c_funptr) :: p
|
||||
p = returnFunc()
|
||||
call callFunc(p, 13,3*13)
|
||||
call callFunc(p, 13_c_int, 3_c_int*13_c_int)
|
||||
p = c_funloc(ffunc)
|
||||
call callFunc(p, 21,-17*21)
|
||||
call callFunc(p, 21_c_int, -17_c_int*21_c_int)
|
||||
end program main
|
||||
|
|
|
@ -7,7 +7,7 @@ contains
|
|||
subroutine test0() bind(c)
|
||||
use, intrinsic :: iso_c_binding
|
||||
implicit none
|
||||
integer, target :: x
|
||||
integer(c_int), target :: x
|
||||
type(c_ptr) :: my_c_ptr
|
||||
interface
|
||||
subroutine test_address(x, expected_value) bind(c)
|
||||
|
@ -16,8 +16,8 @@ contains
|
|||
integer(c_int), value :: expected_value
|
||||
end subroutine test_address
|
||||
end interface
|
||||
x = 100
|
||||
x = 100_c_int
|
||||
my_c_ptr = c_loc(x)
|
||||
call test_address(my_c_ptr, 100)
|
||||
call test_address(my_c_ptr, 100_c_int)
|
||||
end subroutine test0
|
||||
end module c_loc_test
|
||||
|
|
|
@ -44,13 +44,13 @@ contains
|
|||
end subroutine test0
|
||||
|
||||
subroutine test1() bind(c)
|
||||
integer, target, dimension(100) :: int_array_tar
|
||||
integer(c_int), target, dimension(100) :: int_array_tar
|
||||
type(c_ptr) :: my_c_ptr_1 = c_null_ptr
|
||||
type(c_ptr) :: my_c_ptr_2 = c_null_ptr
|
||||
|
||||
int_array_tar = 100
|
||||
int_array_tar = 100_c_int
|
||||
my_c_ptr_1 = c_loc(int_array_tar)
|
||||
if(test_array_address(my_c_ptr_1, 100) .ne. 1) then
|
||||
if(test_array_address(my_c_ptr_1, 100_c_int) .ne. 1) then
|
||||
STOP 3
|
||||
end if
|
||||
end subroutine test1
|
||||
|
|
|
@ -35,7 +35,8 @@ contains
|
|||
end function
|
||||
|
||||
subroutine check(p,a)
|
||||
integer a(:)
|
||||
use ISO_C_BINDING
|
||||
integer(C_INT) a(:)
|
||||
procedure(abs_fun) :: p
|
||||
character(size(my_message),C_CHAR) :: c(size(a))
|
||||
integer k,l,m
|
||||
|
@ -55,7 +56,7 @@ program prog
|
|||
|
||||
use m
|
||||
|
||||
integer :: i(4) = (/0,6,12,18/)
|
||||
integer(C_INT) :: i(4) = (/0,6,12,18/)
|
||||
|
||||
allocate(my_message(1:6))
|
||||
|
||||
|
|
|
@ -27,11 +27,11 @@ PROCEDURE(mytype), POINTER :: ptype,ptype2
|
|||
|
||||
CALL init()
|
||||
CALL C_F_PROCPOINTER(funpointer,ptype)
|
||||
if (ptype(3) /= 9) STOP 1
|
||||
if (ptype(3_c_int) /= 9) STOP 1
|
||||
|
||||
! the stuff below was added with PR 42072
|
||||
call setpointer(ptype2)
|
||||
if (ptype2(4) /= 12) STOP 2
|
||||
if (ptype2(4_c_int) /= 12) STOP 2
|
||||
|
||||
contains
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue