re PR fortran/32957 (C/Fortran interoperability and -fdefault-integer-8)
authorDominique d'Humieres <dominiq@gcc.gnu.org>
Mon, 26 Feb 2018 09:55:39 +0000 (10:55 +0100)
committerDominique d'Humieres <dominiq@gcc.gnu.org>
Mon, 26 Feb 2018 09:55:39 +0000 (10:55 +0100)
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

gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/c_f_pointer_shape_tests_2.f03
gcc/testsuite/gfortran.dg/c_f_pointer_shape_tests_4.f03
gcc/testsuite/gfortran.dg/c_funloc_tests_3.f03
gcc/testsuite/gfortran.dg/c_loc_test.f90
gcc/testsuite/gfortran.dg/c_loc_tests_2.f03
gcc/testsuite/gfortran.dg/proc_decl_17.f90
gcc/testsuite/gfortran.dg/proc_ptr_8.f90

index 37ae7517e327daff4cc455ca57e524e4dfb4016a..3e0299c2f692586da592cf32a794432b433dd121 100644 (file)
@@ -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
index 5ba1cb640e12d6ef9630614d42391a3b22eb3c99..79cf2c1bae3d24908be17bd133f8d0d26aada4fb 100644 (file)
@@ -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
index 8ee79a3b7ea3c743c251ca756c77884994c9b77e..3f60f17e4bb8b63e6c8997316d50dc3bf9301673 100644 (file)
@@ -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
index b08d35187f4f270c4bdf06bdb2db6254ea6d3492..2b6885825521bc900c6c7b58d7344ca40ac461db 100644 (file)
@@ -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
index 9b120dc9cd2f4087e0edcfa42ccff6f1a581dbfb..598a426abfd7ebd01bad9935307262927735aad2 100644 (file)
@@ -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
index 8a2911e3d9f8ee79dc26166a9f80ea0b89b0b07d..289b6eb97a9f96a0391d70fdcf67291a92c53ac0 100644 (file)
@@ -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
index 36e0f29c6a217c104a6f71b990bc53f655a5f68b..8c897cf24f0d2793e1159cf6c53b5237feabec56 100644 (file)
@@ -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))
 
index c1d69246faf1b8d39bc5bfccb253ca8cb410dd2e..2e7a3779722923c4b0b1e3b9bb84b5058a3193eb 100644 (file)
@@ -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