diff --git a/compiler/pdecsub.pas b/compiler/pdecsub.pas index fa233cdf04..a2132fc44a 100644 --- a/compiler/pdecsub.pas +++ b/compiler/pdecsub.pas @@ -121,7 +121,6 @@ implementation begin if (varspez<>vs_var) then Message(parser_h_c_arrays_are_references); - varspez:=vs_var; end; if assigned(vartype.def) and (is_array_of_const(vartype.def) or @@ -1569,10 +1568,18 @@ const begin if not tprocdef(def).has_mangledname then begin - if assigned(tprocdef(def)._class) then - tprocdef(def).setmangledname(target_info.Cprefix+tprocdef(def)._class.objrealname^+'_'+sym.realname) + if (po_external in def.procoptions) and + target_info.DllScanSupported then + begin + tprocdef(def).setmangledname(sym.realname); + end else - tprocdef(def).setmangledname(target_info.Cprefix+sym.realname); + begin + if assigned(tprocdef(def)._class) then + tprocdef(def).setmangledname(target_info.Cprefix+tprocdef(def)._class.objrealname^+'_'+sym.realname) + else + tprocdef(def).setmangledname(target_info.Cprefix+sym.realname); + end; end; if not assigned(tprocdef(def).parast) then internalerror(200110234); @@ -2080,7 +2087,10 @@ const end. { $Log$ - Revision 1.90 2002-12-17 22:19:33 peter + Revision 1.91 2002-12-23 20:58:52 peter + * cdecl array fix, hack to change it to vs_var is not needed + + Revision 1.90 2002/12/17 22:19:33 peter * fixed pushing of records>8 bytes with stdcall * simplified hightree loading