re PR fortran/52016 ([OOP] Polymorphism and elemental: missing diagnostic)
authorTobias Burnus <burnus@net-b.de>
Fri, 27 Jan 2012 13:59:04 +0000 (14:59 +0100)
committerTobias Burnus <burnus@gcc.gnu.org>
Fri, 27 Jan 2012 13:59:04 +0000 (14:59 +0100)
2012-01-27  Tobias Burnus  <burnus@net-b.de>

        PR fortran/52016
        * resolve.c (resolve_formal_arglist): Fix elemental
        constraint checks for polymorphic dummies also for
        pointers.

From-SVN: r183625

gcc/fortran/ChangeLog
gcc/fortran/resolve.c

index 6a6b05cbedc56e8bd8ef88eb94d1fd7b54f2c4ae..b54ad3d6a1a03c7ee03303a48523ca86a35c6b12 100644 (file)
@@ -1,3 +1,10 @@
+2012-01-27  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/52016
+       * resolve.c (resolve_formal_arglist): Fix elemental
+       constraint checks for polymorphic dummies also for
+       pointers.
+       
 2012-01-27  Tobias Burnus  <burnus@net-b.de>
 
        PR fortran/51970
index 2e5100471437e82d8342228c6fc0e90249f490de..2a967120d29fec5569dbb97393b02cf68cf39193 100644 (file)
@@ -401,7 +401,9 @@ resolve_formal_arglist (gfc_symbol *proc)
              continue;
            }
 
-         if (sym->attr.pointer)
+         if (sym->attr.pointer
+             || (sym->ts.type == BT_CLASS && CLASS_DATA (sym)
+                 && CLASS_DATA (sym)->attr.class_pointer))
            {
              gfc_error ("Argument '%s' of elemental procedure at %L cannot "
                         "have the POINTER attribute", sym->name,