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.