diff --git a/.gitattributes b/.gitattributes index 39a7657443..2cebaccc81 100644 --- a/.gitattributes +++ b/.gitattributes @@ -8624,6 +8624,7 @@ tests/webtbs/tw1251b.pp svneol=native#text/plain tests/webtbs/tw1255.pp svneol=native#text/plain tests/webtbs/tw12575.pp svneol=native#text/plain tests/webtbs/tw12597.pp svneol=native#text/plain +tests/webtbs/tw12614.pp svneol=native#text/plain tests/webtbs/tw1269.pp svneol=native#text/plain tests/webtbs/tw1275.pp svneol=native#text/plain tests/webtbs/tw1279.pp svneol=native#text/plain diff --git a/compiler/defcmp.pas b/compiler/defcmp.pas index 4518192aa9..068354da60 100644 --- a/compiler/defcmp.pas +++ b/compiler/defcmp.pas @@ -245,15 +245,15 @@ implementation else begin if cdo_explicit in cdoptions then - doconv:=basedefconvertsexplicit[basedeftbl[torddef(def_from).ordtype],basedeftbl[torddef(def_to).ordtype]] + doconv:=basedefconvertsexplicit[basedeftbl[torddef(def_from).ordtype],basedeftbl[torddef(def_to).ordtype]] else - doconv:=basedefconvertsimplicit[basedeftbl[torddef(def_from).ordtype],basedeftbl[torddef(def_to).ordtype]]; + doconv:=basedefconvertsimplicit[basedeftbl[torddef(def_from).ordtype],basedeftbl[torddef(def_to).ordtype]]; if (doconv=tc_not_possible) then eq:=te_incompatible else if (not is_in_limit(def_from,def_to)) then { "punish" bad type conversions :) (JM) } eq:=te_convert_l3 - else + else eq:=te_convert_l1; end; end; diff --git a/compiler/ppcarm.lpi b/compiler/ppcarm.lpi index 881de3653d..41bb794884 100644 --- a/compiler/ppcarm.lpi +++ b/compiler/ppcarm.lpi @@ -2,7 +2,7 @@ - + @@ -26,7 +26,7 @@ - + @@ -37,10 +37,19 @@ + + + + + + + + + - + @@ -52,7 +61,6 @@ - diff --git a/tests/webtbs/tw12614.pp b/tests/webtbs/tw12614.pp new file mode 100644 index 0000000000..3df842fe25 --- /dev/null +++ b/tests/webtbs/tw12614.pp @@ -0,0 +1,15 @@ +{$mode objfpc} +program testb; + +Function IntRes : int64; + +begin + Result:=3; +end; + +Var + B : WordBool; + +begin + B:=WordBool(IntRes); +end.