diff --git a/compiler/hcgdata.pas b/compiler/hcgdata.pas index 93bb5c582e..293730133f 100644 --- a/compiler/hcgdata.pas +++ b/compiler/hcgdata.pas @@ -129,9 +129,9 @@ implementation else begin if p^.p^.messageinf.iat^.p^.messageinf.i then - insertstr(p,at^.r) + insertint(p,at^.r) else Message1(parser_e_duplicate_message_label,tostr(p^.p^.messageinf.i)); end; @@ -558,12 +558,19 @@ implementation end. { $Log$ - Revision 1.12 1999-07-08 10:40:37 peter + Revision 1.13 1999-07-11 20:10:23 peter + * merged + + Revision 1.12 1999/07/08 10:40:37 peter * merged Revision 1.11 1999/06/15 13:27:06 pierre * bug0260 fixed + Revision 1.10.2.2 1999/07/11 20:07:38 peter + * message crash fixed + * no error if self is used with non-string message + Revision 1.10.2.1 1999/07/08 10:38:32 peter * fixed insertint diff --git a/compiler/psub.pas b/compiler/psub.pas index 3a2c89f058..df5b1aad0e 100644 --- a/compiler/psub.pas +++ b/compiler/psub.pas @@ -832,7 +832,17 @@ begin current_module^.uses_imports:=true; importlib^.preparelib(current_module^.modulename^); end; - importlib^.importprocedure(aktprocsym^.mangledname,import_dll,import_nr,import_name) + if not(m_repeat_forward in aktmodeswitches) then + begin + { we can only have one overloaded here ! } + if assigned(aktprocsym^.definition^.nextoverloaded) then + importlib^.importprocedure(aktprocsym^.definition^.nextoverloaded^.mangledname, + import_dll,import_nr,import_name) + else + importlib^.importprocedure(aktprocsym^.mangledname,import_dll,import_nr,import_name); + end + else + importlib^.importprocedure(aktprocsym^.mangledname,import_dll,import_nr,import_name); end else begin @@ -1226,7 +1236,7 @@ begin { this is also wrong (PM) aktprocsym^.definition^.setmangledname(hd^.mangledname);} end - else + else begin { If mangled names are equal, therefore } { they have the same number of parameters } @@ -1644,7 +1654,8 @@ begin dec(lexlevel); dispose(anames,done); if ((aktprocsym^.definition^.options and pocontainsself)<>0) and - ((aktprocsym^.definition^.options and pomsgstr)=0) then + ((aktprocsym^.definition^.options and pomsgstr)=0) and + ((aktprocsym^.definition^.options and pomsgint)=0) then message(parser_e_self_in_non_message_handler); end; @@ -1825,12 +1836,22 @@ end. { $Log$ - Revision 1.3 1999-07-02 13:02:24 peter + Revision 1.4 1999-07-11 20:10:24 peter + * merged + + Revision 1.3 1999/07/02 13:02:24 peter * merged Revision 1.2 1999/06/17 13:19:56 pierre * merged from 0_99_12 branch + Revision 1.1.2.4 1999/07/11 20:07:39 peter + * message crash fixed + * no error if self is used with non-string message + + Revision 1.1.2.3 1999/07/11 20:04:05 pierre + * fix for problem with external without parameters in Delphi mode + Revision 1.1.2.2 1999/07/02 12:59:52 peter * fixed parsing of message directive