Browse Source

* cdecl array fix, hack to change it to vs_var is not needed

peter 22 years ago
parent
commit
1c3ac34aa8
1 changed files with 15 additions and 5 deletions
  1. 15 5
      compiler/pdecsub.pas

+ 15 - 5
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