coarray_38.f90: Expect error message.
authorAndre Vehreschild <vehre@gcc.gnu.org>
Fri, 14 Oct 2016 08:52:10 +0000 (10:52 +0200)
committerAndre Vehreschild <vehre@gcc.gnu.org>
Fri, 14 Oct 2016 08:52:10 +0000 (10:52 +0200)
gcc/testsuite/ChangeLog:

2016-10-14  Andre Vehreschild  <vehre@gcc.gnu.org>

* gfortran.dg/coarray_38.f90: Expect error message.

gcc/fortran/ChangeLog:

2016-10-14  Andre Vehreschild  <vehre@gcc.gnu.org>

* resolve.c (resolve_symbol): Add unimplemented message for
polymorphic types with allocatable/pointer components and coarray=lib.

From-SVN: r241150

gcc/fortran/ChangeLog
gcc/fortran/resolve.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/coarray_38.f90

index 82ab03de14da9218a8a0a508ac6a340f196c5644..a3e1f49c3f2955ae43f969a977421ded7a47baba 100644 (file)
@@ -1,3 +1,8 @@
+2016-10-14  Andre Vehreschild  <vehre@gcc.gnu.org>
+
+       * resolve.c (resolve_symbol): Add unimplemented message for
+       polymorphic types with allocatable/pointer components and coarray=lib.
+
 2016-10-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
 
        * trans-intrinsic.c: Include memmodel.h.
index 4645b57c78d01672c2fa1a40e7577e5af1e9bd72..e03979e1710c44013b7777138c6b14f2c7c80bb3 100644 (file)
@@ -13787,6 +13787,19 @@ resolve_symbol (gfc_symbol *sym)
      (just like derived type declaration symbols have flavor FL_DERIVED). */
   gcc_assert (sym->ts.type != BT_UNION);
 
+  /* Coarrayed polymorphic objects with allocatable or pointer components are
+     yet unsupported for -fcoarray=lib.  */
+  if (flag_coarray == GFC_FCOARRAY_LIB && sym->ts.type == BT_CLASS
+      && sym->ts.u.derived && CLASS_DATA (sym)
+      && CLASS_DATA (sym)->attr.codimension
+      && (sym->ts.u.derived->attr.alloc_comp
+         || sym->ts.u.derived->attr.pointer_comp))
+    {
+      gfc_error ("Sorry, allocatable/pointer components in polymorphic (CLASS) "
+                "type coarrays at %L are unsupported", &sym->declared_at);
+      return;
+    }
+
   if (sym->attr.artificial)
     return;
 
index ce1b6fdba3bd589ef34c867cba1e74350128a97b..9596d77e362e4a9d6c214a51d50bd1940fd2b296 100644 (file)
@@ -1,3 +1,7 @@
+2016-10-14  Andre Vehreschild  <vehre@gcc.gnu.org>
+
+       * gfortran.dg/coarray_38.f90: Expect error message.
+
 2016-10-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
 
        * gcc.target/aarch64/spellcheck_1.c: New test.
index 31155c53f01162ac29631bd3b1225852fae0c57c..c8011d447078bc47a87b1d920de7ac5a1d28c3f3 100644 (file)
@@ -71,7 +71,7 @@ end type t
 type t2
   class(t), allocatable :: caf2[:]
 end type t2
-class(t), allocatable :: caf[:]
+class(t), allocatable :: caf[:] ! { dg-error "Sorry, allocatable/pointer components in polymorphic" }
 type(t) :: x
 type(t2) :: y