Просмотр исходного кода

* fixed object constructor handling for 64 bit CPUs

git-svn-id: trunk@4465 -
florian 19 лет назад
Родитель
Сommit
bc5e1be7b1
3 измененных файлов с 10 добавлено и 2 удалено
  1. 4 0
      compiler/pdecobj.pas
  2. 4 0
      compiler/pdecsub.pas
  3. 2 2
      compiler/psystem.pas

+ 4 - 0
compiler/pdecobj.pas

@@ -78,7 +78,11 @@ implementation
            if is_class(pd._class) then
              pd.rettype.setdef(pd._class)
            else
+{$ifdef CPU64bit}
+             pd.rettype:=bool64type;
+{$else CPU64bit}
              pd.rettype:=bool32type;
+{$endif CPU64bit}
            constructor_head:=pd;
         end;
 

+ 4 - 0
compiler/pdecsub.pas

@@ -1015,7 +1015,11 @@ implementation
                   if is_class(pd._class) then
                     pd.rettype.setdef(pd._class)
                   else
+{$ifdef CPU64bit}
+                    pd.rettype:=bool64type;
+{$else CPU64bit}
                     pd.rettype:=bool32type;
+{$endif CPU64bit}
                 end;
             end;
 

+ 2 - 2
compiler/psystem.pas

@@ -291,7 +291,7 @@ implementation
         addtype('$boolean',booltype);
         addtype('$boolean16',bool16type);
         addtype('$boolean32',bool32type);
-        addtype('$boolean64',bool32type);
+        addtype('$boolean64',bool64type);
         addtype('$void_pointer',voidpointertype);
         addtype('$char_pointer',charpointertype);
         addtype('$widechar_pointer',widecharpointertype);
@@ -376,7 +376,7 @@ implementation
         loadtype('boolean',booltype);
         loadtype('boolean16',bool16type);
         loadtype('boolean32',bool32type);
-        loadtype('boolean64',bool32type);
+        loadtype('boolean64',bool64type);
         loadtype('void_pointer',voidpointertype);
         loadtype('char_pointer',charpointertype);
         loadtype('widechar_pointer',widecharpointertype);