[Patch, Fortran, OOP] PR 48095: Invalid assignment to procedure pointer component not rejected

Tobias Burnus burnus@net-b.de
Wed Sep 7 21:15:00 GMT 2011


Janus Weil wrote:
> the attached patch fixes this accepts-valid OOP PR. It consists of two parts:
> 1) resolve_structure_cons is being extended to check the interface of
> proc-ptr components (comment #7).
> 2) A small fix to allow for correct parsing of structure constructors
> including proc-ptr components (comment #8).

Thanks for the patch!



> +	  if (s2&&  !gfc_compare_interfaces (comp->ts.interface, s2, name, 0, 1,
> +					     err, sizeof(err)))

Space after sizeof.

> +	      gfc_error ("In derived type constructor at %L: Interface mismatch"
> +			 " in procedure pointer component '%s': %s",
> +			&cons->expr->where, comp->name, err);

Somehow, I find the words clumsy with too many colons. "derived type 
constructor" - I'd use a hyphen ("derived-type") and I want to note that 
the standard calls it "structure constructor"; I also would use "for ... 
component" and not "in ... component" and add a hyphen to "procedure 
pointer".

How about a simpler: "Interface mismatch for procedure-pointer component 
'%s' at %L: %s"? I think it should be clear from the context that it is 
about a structure constructor. Or for the long version, how about: 
"Interface mismatch for procedure-pointer component '%s' in structure 
constructor at %L: %s"?

OK with fixing the sizeof nit and after considering the text changes.

Tobias



More information about the Gcc-patches mailing list