Prechádzať zdrojové kódy

Merged revisions 7377,7389,7396-7397 via svnmerge from
svn+ssh://[email protected]/FPC/svn/fpc/trunk

........
r7377 | jonas | 2007-05-17 15:36:00 +0200 (Thu, 17 May 2007) | 2 lines

* fixed mode switch (objpas -> objfpc)

........
r7389 | jonas | 2007-05-18 13:14:43 +0200 (Fri, 18 May 2007) | 2 lines

* allow to load the address of a bitpacked array in assembler code

........
r7396 | jonas | 2007-05-19 19:24:11 +0200 (Sat, 19 May 2007) | 2 lines

* fixed 64 bit compilation

........
r7397 | jonas | 2007-05-19 20:10:22 +0200 (Sat, 19 May 2007) | 3 lines

* mwpascal is also a clearstack_pocall (fixes e.g. calling
CGAffineTransformMakeRotation on Darwin/i386)

........

git-svn-id: branches/fixes_2_2@7400 -

Jonas Maebe 18 rokov pred
rodič
commit
64a0e25083

+ 2 - 3
compiler/rautils.pas

@@ -859,9 +859,8 @@ Begin
                 SetSize(harrdef.elesize,false)
                else
                  begin
-                   if (harrdef.elepackedbitsize mod 8) <> 0 then
-                     Message(asmr_e_packed_element);
-                   SetSize((harrdef.elepackedbitsize + 7) div 8,false);
+                   if (harrdef.elepackedbitsize mod 8) = 0 then
+                     SetSize(harrdef.elepackedbitsize div 8,false);
                  end;
             end;
         end;

+ 1 - 1
compiler/symconst.pas

@@ -474,7 +474,7 @@ const
    inherited_objectoptions : tobjectoptions = [oo_has_virtual,oo_has_private,oo_has_protected,
                 oo_has_strictprotected,oo_has_strictprivate,oo_has_constructor,oo_has_destructor];
    clearstack_pocalls = [
-     pocall_cdecl,pocall_cppdecl,pocall_syscall
+     pocall_cdecl,pocall_cppdecl,pocall_syscall,pocall_mwpascal
    ];
 
    pushleftright_pocalls : tproccalloptions = [pocall_register,pocall_pascal];

+ 1 - 1
tests/test/tset4.pp

@@ -1,4 +1,4 @@
-{$mode objpas}
+{$mode objfpc}
 {$packset 1}
 uses
   sysutils;

+ 1 - 1
tests/webtbs/tw8177.pp

@@ -762,7 +762,7 @@ begin
  c:=#0;
  // make sure the statement after this does not write to a read-only location
  GlobalStrValidate28 := c;
- PInteger(Integer(GlobalStrValidate28)-4)^ := 0; //Set Length to 0
+ PSizeInt(Pointer(GlobalStrValidate28)-sizeof(SizeInt))^ := 0; //Set Length to 0
  try
   StrToInt(GlobalStrValidate28);
   ErrorTrap(VALIDATENO, GlobalStrValidate28);