Forráskód Böngészése

- Fix result type of SizeOf and BitSizeOf to use sizesint instead of sint.

git-svn-id: trunk@42337 -
Jeppe Johansen 6 éve
szülő
commit
7dc515b62c
2 módosított fájl, 10 hozzáadás és 10 törlés
  1. 6 6
      compiler/ninl.pas
  2. 4 4
      compiler/pexpr.pas

+ 6 - 6
compiler/ninl.pas

@@ -2963,13 +2963,13 @@ implementation
                      if assigned(hightree) then
                      if assigned(hightree) then
                       begin
                       begin
                         hp:=caddnode.create(addn,hightree,
                         hp:=caddnode.create(addn,hightree,
-                                         cordconstnode.create(1,sinttype,false));
+                                         cordconstnode.create(1,sizesinttype,false));
                         if (left.resultdef.typ=arraydef) then
                         if (left.resultdef.typ=arraydef) then
                           if not is_packed_array(tarraydef(left.resultdef)) then
                           if not is_packed_array(tarraydef(left.resultdef)) then
                             begin
                             begin
                               if (tarraydef(left.resultdef).elesize<>1) then
                               if (tarraydef(left.resultdef).elesize<>1) then
                                 hp:=caddnode.create(muln,hp,cordconstnode.create(tarraydef(
                                 hp:=caddnode.create(muln,hp,cordconstnode.create(tarraydef(
-                                  left.resultdef).elesize,sinttype,true));
+                                  left.resultdef).elesize,sizesinttype,true));
                             end
                             end
                           else if (tarraydef(left.resultdef).elepackedbitsize <> 8) then
                           else if (tarraydef(left.resultdef).elepackedbitsize <> 8) then
                             begin
                             begin
@@ -2977,24 +2977,24 @@ implementation
                               if (hp.nodetype <> ordconstn) then
                               if (hp.nodetype <> ordconstn) then
                                 internalerror(2006081511);
                                 internalerror(2006081511);
                               hp.free;
                               hp.free;
-                              hp := cordconstnode.create(left.resultdef.size,sinttype,true);
+                              hp := cordconstnode.create(left.resultdef.size,sizesinttype,true);
 {
 {
                               hp:=
                               hp:=
-                                 ctypeconvnode.create_explicit(sinttype,
+                                 ctypeconvnode.create_explicit(sizesinttype,
                                    cmoddivnode.create(divn,
                                    cmoddivnode.create(divn,
                                      caddnode.create(addn,
                                      caddnode.create(addn,
                                        caddnode.create(muln,hp,cordconstnode.create(tarraydef(
                                        caddnode.create(muln,hp,cordconstnode.create(tarraydef(
                                          left.resultdef).elepackedbitsize,s64inttype,true)),
                                          left.resultdef).elepackedbitsize,s64inttype,true)),
                                        cordconstnode.create(a,s64inttype,true)),
                                        cordconstnode.create(a,s64inttype,true)),
                                      cordconstnode.create(8,s64inttype,true)),
                                      cordconstnode.create(8,s64inttype,true)),
-                                   sinttype);
+                                   sizesinttype);
 }
 }
                             end;
                             end;
                         result:=hp;
                         result:=hp;
                       end;
                       end;
                    end
                    end
                   else
                   else
-                   resultdef:=sinttype;
+                   resultdef:=sizesinttype;
                 end;
                 end;
 
 
               in_typeof_x:
               in_typeof_x:

+ 4 - 4
compiler/pexpr.pas

@@ -445,7 +445,7 @@ implementation
                   statement_syssym:=geninlinenode(in_sizeof_x,false,p1);
                   statement_syssym:=geninlinenode(in_sizeof_x,false,p1);
                   { no packed bit support for these things }
                   { no packed bit support for these things }
                   if l=in_bitsizeof_x then
                   if l=in_bitsizeof_x then
-                    statement_syssym:=caddnode.create(muln,statement_syssym,cordconstnode.create(8,sinttype,true));
+                    statement_syssym:=caddnode.create(muln,statement_syssym,cordconstnode.create(8,sizesinttype,true));
                 end
                 end
               else
               else
                begin
                begin
@@ -460,12 +460,12 @@ implementation
                      not((p1.nodetype = subscriptn) and
                      not((p1.nodetype = subscriptn) and
                          is_packed_record_or_object(tsubscriptnode(p1).left.resultdef))) then
                          is_packed_record_or_object(tsubscriptnode(p1).left.resultdef))) then
                    begin
                    begin
-                     statement_syssym:=cordconstnode.create(p1.resultdef.size,sinttype,true);
+                     statement_syssym:=cordconstnode.create(p1.resultdef.size,sizesinttype,true);
                      if (l = in_bitsizeof_x) then
                      if (l = in_bitsizeof_x) then
-                       statement_syssym:=caddnode.create(muln,statement_syssym,cordconstnode.create(8,sinttype,true));
+                       statement_syssym:=caddnode.create(muln,statement_syssym,cordconstnode.create(8,sizesinttype,true));
                    end
                    end
                  else
                  else
-                   statement_syssym:=cordconstnode.create(p1.resultdef.packedbitsize,sinttype,true);
+                   statement_syssym:=cordconstnode.create(p1.resultdef.packedbitsize,sizesinttype,true);
                  { p1 not needed !}
                  { p1 not needed !}
                  p1.destroy;
                  p1.destroy;
                end;
                end;