This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PRs 34547/50375] Fixes to NULL with MOLD= check


On Wed, Sep 14, 2011 at 12:12:36AM +0200, Tobias Burnus wrote:
> NULL requires a MOLD argument if the mold cannot be determined from the 
> context:
> 
> a) print *, null()   - was ICEing
> b) call foo(null()) - [implicit interface] was accepted but no dummy is 
> available to get the type
> c) call generic(null()) - need to reject it, if it would match several 
> specific functions
> d) null(allocatable) - now allowed (F2003), was rejected before.
> 
> (c) is PR 50375, the rest is PR 34547; see PR for the quote from the 
> standards.
> 
> Build and regtested on x86-64-linux.
> OK for the trunk?

Yes.

I was wondering if we need to change the error message
in the following code to include procedure pointer?

-  if (!attr.pointer && !attr.proc_pointer)
+  if (!attr.pointer && !attr.proc_pointer && !attr.allocatable)
     {
-      gfc_error ("'%s' argument of '%s' intrinsic at %L must be a POINTER",
-                gfc_current_intrinsic_arg[0]->name,
+      gfc_error ("'%s' argument of '%s' intrinsic at %L must be a POINTER or "
+                "ALLOCATABLE", gfc_current_intrinsic_arg[0]->name,
                 gfc_current_intrinsic, &mold->where);
       return FAILURE;
     }

Should this be "... a POINTER, ALLOCATABLE, or PROCEDURE POINTER..."?


-- 
Steve


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]