------- Comment #3 from sgk at troutmask dot apl dot washington dot edu  
2008-05-16 22:10 -------
Subject: Re:  PUBLIC and PRIVATE abuse

On Fri, May 16, 2008 at 09:58:47PM -0000, burnus at gcc dot gnu dot org wrote:
> 
> And using
> 
>   bind(C) :: a

Nice catch.

> gives even an ICE. For PUBLIC and PRIVATE, see the patch below. "save"
> and "value" are not needed they give already the error "Cannot change
> attributes of USE-associated symbol a". (My hope was that one gets a
> better error message, but one does not.)

Your patch is similar to my initial patch, and I also found the
error message to be less than informative.  Here, my alternative.

Index: symbol.c
===================================================================
--- symbol.c    (revision 135407)
+++ symbol.c    (working copy)
@@ -361,6 +361,13 @@
   if (where == NULL)
     where = &gfc_current_locus;

+  if (attr->flavor == FL_MODULE
+      && (attr->access == ACCESS_PUBLIC || attr->access == ACCESS_PRIVATE))
+    {
+      a1 = attr->access == ACCESS_PUBLIC ? public : private;
+      gfc_warning ("%s attribute applied to MODULE %s at %L", a1, name,
where);
+    }
+

I chose a warning instead of an error because this issue doesn't
seem to effect anything.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36251

Reply via email to