From 0dcbb4f1cc393de9c8b99983788f951c91eec330 Mon Sep 17 00:00:00 2001 From: nickysn Date: Sun, 7 Apr 2013 16:50:30 +0000 Subject: [PATCH] * refactored tunaryplusnode.pass_typecheck as well git-svn-id: branches/i8086@24185 - --- compiler/nmat.pas | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/compiler/nmat.pas b/compiler/nmat.pas index 5bea236cbc..6f985c1465 100644 --- a/compiler/nmat.pas +++ b/compiler/nmat.pas @@ -958,22 +958,19 @@ implementation result:=left; left:=nil; end -{$ifndef cpu64bitaddr} - else if is_64bit(left.resultdef) then + else if is_oversizedord(left.resultdef) then begin - inserttypeconv(left,s64inttype); + if is_64bit(left.resultdef) then + inserttypeconv(left,s64inttype) + else if is_32bit(left.resultdef) then + inserttypeconv(left,s32inttype) + else if is_16bit(left.resultdef) then + inserttypeconv(left,s16inttype) + else + internalerror(2013040702); result:=left; left:=nil; end -{$endif not cpu64bitaddr} -{$if defined(cpu16bitalu) or defined(cpu8bitalu)} - else if is_32bitint(left.resultdef) then - begin - inserttypeconv(left,s32inttype); - result:=left; - left:=nil; - end -{$endif cpu16bitalu or cpu8bitalu} else if (left.resultdef.typ=orddef) then begin inserttypeconv(left,sinttype);