re PR fortran/86587 (Derived-type with attributes BIND(C) and PRIVATE raises an error...
authorSteven G. Kargl <kargl@gcc.gnu.org>
Thu, 20 Jun 2019 21:39:43 +0000 (21:39 +0000)
committerSteven G. Kargl <kargl@gcc.gnu.org>
Thu, 20 Jun 2019 21:39:43 +0000 (21:39 +0000)
2019-06-20  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/86587
* symbol.c (verify_bind_c_derived_type): Remove erroneous error
checking for BIND(C) and PRIVATE attributes.

2019-06-20  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/86587
* gfortran.dg/pr86587.f90: New test.

From-SVN: r272524

gcc/fortran/ChangeLog
gcc/fortran/symbol.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/pr86587.f90 [new file with mode: 0644]

index 30bf112bdabe74076e771cd98ddff5f2f4afe8c6..7b71ee43e0b4ac6fae1afe39231c0bb2cd136235 100644 (file)
@@ -1,3 +1,9 @@
+2019-06-20  Steven G. Kargl  <kargl@gcc.gnu.org>
+
+       PR fortran/86587
+       * symbol.c (verify_bind_c_derived_type): Remove erroneous error
+       checking for BIND(C) and PRIVATE attributes.
+
 2019-06-20  Thomas Koenig  <tkoenig@gcc.gnu.org>
 
        PR fortran/90937
index ec753229a986b6be965b419ac6b1bd62be22e71f..f4273633db74ef12d287c40185d4edf6fde09036 100644 (file)
@@ -4529,16 +4529,6 @@ verify_bind_c_derived_type (gfc_symbol *derived_sym)
       curr_comp = curr_comp->next;
     } while (curr_comp != NULL);
 
-
-  /* Make sure we don't have conflicts with the attributes.  */
-  if (derived_sym->attr.access == ACCESS_PRIVATE)
-    {
-      gfc_error ("Derived type %qs at %L cannot be declared with both "
-                 "PRIVATE and BIND(C) attributes", derived_sym->name,
-                 &(derived_sym->declared_at));
-      retval = false;
-    }
-
   if (derived_sym->attr.sequence != 0)
     {
       gfc_error ("Derived type %qs at %L cannot have the SEQUENCE "
index a3c2205da53dd1c44eba58dd953640fcfd023818..c6130e5eea25f32c646baf4d7e1f7b1ee1c43f1b 100644 (file)
@@ -1,3 +1,8 @@
+2019-06-20  Steven G. Kargl  <kargl@gcc.gnu.org>
+
+       PR fortran/86587
+       * gfortran.dg/pr86587.f90: New test.
+
 2019-06-20  Iain Sandoe  <iain@sandoe.co.uk>
 
        * obj-c++.dg/stubify-1.mm: Adjust options and scan-asm checks.
diff --git a/gcc/testsuite/gfortran.dg/pr86587.f90 b/gcc/testsuite/gfortran.dg/pr86587.f90
new file mode 100644 (file)
index 0000000..fb21335
--- /dev/null
@@ -0,0 +1,18 @@
+! { dg-do compile }
+! PR fortran/86587
+! Code contirubted by Valentin Clement <valentin.clement at env dot ethz dot ch>
+!
+module mod1
+   use iso_c_binding
+   type, bind(c), private :: mytype
+      integer(c_int) :: i1, i2
+   end type
+end module mod1
+
+module mod2
+  use iso_c_binding
+  private
+  type, bind(c) :: mytype
+    integer(c_int) :: i1, i2
+  end type
+end module mod2