Related articles |
---|
array bounds checking drizzle76@gmail.com (dz) (2005-11-26) |
Re: array bounds checking nmm1@cus.cam.ac.uk (2005-11-27) |
Re: array bounds checking sudeshc@noida.hcltech.com (Sudesh Chandna, Noida) (2005-11-29) |
Re: array bounds checking gah@ugcs.caltech.edu (glen herrmannsfeldt) (2005-12-03) |
Re: array bounds checking neal.wang@gmail.com (2005-12-08) |
Re: Array bounds checking pardo@june.cs.washington.edu (1990-06-15) |
From: | "Sudesh Chandna, Noida" <sudeshc@noida.hcltech.com> |
Newsgroups: | comp.compilers |
Date: | 29 Nov 2005 16:09:05 -0500 |
Organization: | Compilers Central |
References: | 05-11-121 |
Keywords: | debug |
Posted-Date: | 29 Nov 2005 16:09:05 EST |
Hi,
> I am wondering if anybody knew how array bounds checks worked when
>they are references through multiple indirections of pointers. Eg: p =
>A ; q= &p; ***q+100=0; So q is referencing A. And hence I would like a
>check inserted there.
> Do array bounds checking handle these cases, because
>this also would need pointer analysis.
This can be easily done by having a data structure commonly known as
"descriptor" for pointer which can hold lower bound, upper bound, stride
corresponding to all dimensions of the array. Also descriptor should have rank
( dimension ) and address of the array. Now for languages such as FORTRAN
where its possible to say
Ptr => ary(1:10:2)
Descriptor values lower bound would be 1
Upper bound would be 5
Stride would be say 8 (2*size of element)
Rank would be 1
And addr will hold starting address.
This information can be used at runtime to do bounds checking.
Thanks & Best Regards,
Sudesh Chandna
Senior Member Technical Staff
Return to the
comp.compilers page.
Search the
comp.compilers archives again.