* fix boolean range parsing false..true

* allow set of boolean

git-svn-id: trunk@1690 -
This commit is contained in:
peter 2005-11-08 09:11:39 +00:00
parent fbaa49fc9c
commit e00ef44479
4 changed files with 24 additions and 17 deletions

2
.gitattributes vendored
View File

@ -6349,8 +6349,10 @@ tests/webtbs/tw4398.pp svneol=native#text/plain
tests/webtbs/tw4427.pp svneol=native#text/plain
tests/webtbs/tw4428.pp svneol=native#text/plain
tests/webtbs/tw4450.pp svneol=native#text/plain
tests/webtbs/tw4477.pp svneol=native#text/plain
tests/webtbs/tw4487.pp -text svneol=unset#text/plain
tests/webtbs/tw4489.pp -text svneol=unset#text/plain
tests/webtbs/tw4496.pp svneol=native#text/plain
tests/webtbs/ub1873.pp svneol=native#text/plain
tests/webtbs/ub1883.pp svneol=native#text/plain
tests/webtbs/uw0555.pp svneol=native#text/plain

View File

@ -308,7 +308,7 @@ implementation
tt.setdef(torddef.create(uchar,lv,hv))
else
if is_boolean(pt1.resulttype.def) then
tt.setdef(torddef.create(bool8bit,l,hv))
tt.setdef(torddef.create(bool8bit,lv,hv))
else
tt.setdef(torddef.create(range_to_basetype(lv,hv),lv,hv));
end;
@ -556,22 +556,12 @@ implementation
Message(sym_e_ill_type_decl_set);
orddef :
begin
case torddef(tt2.def).typ of
uchar :
//!!! tt.setdef(tsetdef.create(tt2,0,255));
tt.setdef(tsetdef.create(tt2,255));
u8bit,u16bit,u32bit,
s8bit,s16bit,s32bit :
begin
if (torddef(tt2.def).low>=0) then
// !! tt.setdef(tsetdef.create(tt2,torddef(tt2.def).low,torddef(tt2.def).high))
tt.setdef(tsetdef.create(tt2,torddef(tt2.def).high))
else
Message(sym_e_ill_type_decl_set);
end;
else
Message(sym_e_ill_type_decl_set);
end;
if (torddef(tt2.def).typ<>uvoid) and
(torddef(tt2.def).low>=0) then
// !! tt.setdef(tsetdef.create(tt2,torddef(tt2.def).low,torddef(tt2.def).high))
tt.setdef(tsetdef.create(tt2,torddef(tt2.def).high))
else
Message(sym_e_ill_type_decl_set);
end;
else
Message(sym_e_ill_type_decl_set);

5
tests/webtbs/tw4477.pp Executable file
View File

@ -0,0 +1,5 @@
{ Source provided for Free Pascal Bug Report 4477 }
{ Submitted by "Alexey Moiseitsev" on 2005-10-30 }
{ e-mail: himeraster@gmail.com }
var f : set of boolean;
begin end.

10
tests/webtbs/tw4496.pp Executable file
View File

@ -0,0 +1,10 @@
type
//BoolDeriv = Boolean; //gives no internal error
BoolDeriv = false..true;
var
a: array[BoolDeriv] of char;
begin
a[true] := 'a'; //ierror 99080501 here
end.