* fixed wrong note about explictly valued enumeration types if the lower

bound is <= -1

git-svn-id: trunk@4182 -
This commit is contained in:
Jonas Maebe 2006-07-14 17:16:27 +00:00
parent 30ee3416e8
commit a12f293781
3 changed files with 15 additions and 2 deletions

1
.gitattributes vendored
View File

@ -5763,6 +5763,7 @@ tests/tbs/tb0498.pp svneol=native#text/plain
tests/tbs/tb0499.pp svneol=native#text/plain
tests/tbs/tb0500.pp svneol=native#text/plain
tests/tbs/tb0501.pp svneol=native#text/plain
tests/tbs/tb0502.pp svneol=native#text/plain
tests/tbs/ub0060.pp svneol=native#text/plain
tests/tbs/ub0069.pp svneol=native#text/plain
tests/tbs/ub0119.pp svneol=native#text/plain

View File

@ -590,7 +590,7 @@ implementation
p : tnode;
pd : tabstractprocdef;
is_func,
enumdupmsg : boolean;
enumdupmsg, first : boolean;
newtype : ttypesym;
oldlocalswitches : tlocalswitches;
begin
@ -603,6 +603,7 @@ implementation
_LKLAMMER:
begin
consume(_LKLAMMER);
first := true;
{ allow negativ value_str }
l:=-1;
enumdupmsg:=false;
@ -641,7 +642,7 @@ implementation
p.free;
{ please leave that a note, allows type save }
{ declarations in the win32 units ! }
if (v<=l) and (not enumdupmsg) then
if (not first) and (v<=l) and (not enumdupmsg) then
begin
Message(parser_n_duplicate_enum);
enumdupmsg:=true;
@ -650,6 +651,7 @@ implementation
end
else
inc(l);
first := false;
storepos:=akttokenpos;
akttokenpos:=defpos;
tstoredsymtable(aktenumdef.owner).insert(tenumsym.create(s,aktenumdef,l));

10
tests/tbs/tb0502.pp Normal file
View File

@ -0,0 +1,10 @@
{ %norun }
{ %opt=-Sen }
type
TRegister = (
TRegisterLowEnum := Low(longint),
TRegisterHighEnum := High(longint)
);
begin
end.