From fe57fa399313a4714bfb65f93a0618df7be5f78d Mon Sep 17 00:00:00 2001 From: pierre Date: Wed, 1 Mar 2000 12:35:44 +0000 Subject: [PATCH] * fix for bug #855 --- compiler/cgai386.pas | 6 +++++- compiler/symdef.inc | 20 +++++++++++++++++--- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/compiler/cgai386.pas b/compiler/cgai386.pas index b5d4f8ef8e..488feef310 100644 --- a/compiler/cgai386.pas +++ b/compiler/cgai386.pas @@ -2124,6 +2124,7 @@ procedure mov_reg_to_dest(p : ptree; s : topsize; reg : tregister); begin parraydef(todef)^.genrangecheck; rstr:=parraydef(todef)^.getrangecheckstring; + doublebound:=(lto>hto); end; end; { get op and opsize } @@ -3781,7 +3782,10 @@ procedure mov_reg_to_dest(p : ptree; s : topsize; reg : tregister); end. { $Log$ - Revision 1.84 2000-03-01 00:03:12 pierre + Revision 1.85 2000-03-01 12:35:44 pierre + * fix for bug 855 + + Revision 1.84 2000/03/01 00:03:12 pierre * fixes for locals in inlined procedures fix for bug797 + stabs generation for inlined paras and locals diff --git a/compiler/symdef.inc b/compiler/symdef.inc index ad501f72b0..3dd629a6e0 100644 --- a/compiler/symdef.inc +++ b/compiler/symdef.inc @@ -1861,8 +1861,19 @@ datasegment^.concat(new(pai_symbol,initname_global(getrangecheckstring,8))) else datasegment^.concat(new(pai_symbol,initname(getrangecheckstring,8))); - datasegment^.concat(new(pai_const,init_32bit(lowrange))); - datasegment^.concat(new(pai_const,init_32bit(highrange))); + if lowrange<=highrange then + begin + datasegment^.concat(new(pai_const,init_32bit(lowrange))); + datasegment^.concat(new(pai_const,init_32bit(highrange))); + end + { for big arrays we need two bounds } + else + begin + datasegment^.concat(new(pai_const,init_32bit(lowrange))); + datasegment^.concat(new(pai_const,init_32bit($7fffffff))); + datasegment^.concat(new(pai_const,init_32bit($80000000))); + datasegment^.concat(new(pai_const,init_32bit(highrange))); + end; end; end; @@ -3932,7 +3943,10 @@ Const local_symtable_index : longint = $8001; { $Log$ - Revision 1.196 2000-02-14 20:58:43 marco + Revision 1.197 2000-03-01 12:35:45 pierre + * fix for bug 855 + + Revision 1.196 2000/02/14 20:58:43 marco * Basic structures for new sethandling implemented. Revision 1.195 2000/02/11 13:53:49 pierre