https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112893

--- Comment #3 from Gaius Mulley <gaius at gcc dot gnu.org> ---
Created attachment 56822
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=56822&action=edit
Proposed fix v1

Here is version 1 of a bugfix which catches an actual parameter of type address
as a mismatch with a formal parameter of type cardinal.  It treats all
procedures without () as an address.  This satisfies ISO modula-2 but not the
PIM variants.

Version 2 should improve the type checker (M2Check) module by changing the
assumption that a procedure without () is an address to a pointer of a fully
formed proc type.  In turn SymbolTable.GetType should be changed to return the
pointer to proc type.  Every call to SymbolTable.GetType would need to be
eyeball checked and maybe replaced by GetReturnType if necessary.

Reply via email to