Skip to content
GitLab
  • Menu
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • sac2c sac2c
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 403
    • Issues 403
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 12
    • Merge requests 12
  • Deployments
    • Deployments
    • Releases
  • Wiki
    • Wiki
  • External wiki
    • External wiki
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • sac-group
  • sac2csac2c
  • Issues
  • #1443
Closed
Open
Created Apr 08, 2007 by Robert Bernecky@rbeDeveloper

Pawn to king 23

Bugzilla Link 354
Created on Apr 08, 2007 18:38
Resolution INVALID
Resolved on Apr 10, 2007 17:09
Version 1.00beta
OS Linux
Architecture PC
Attachments indexerror.sac

Extended Description

SAC's array bounds checking is broken. Specifically, although it
may check that an array offset lies within the ravel of an array,
egregious programming errors can slip through. Consider an
array X, of shape [20,30]. These expressions produce results, instead
of index errors, even in the presence of -check b:
 X[ [4, 31] ]
 X[ [4, -3] ]
This behavior is, IM(oh, so H)O, unacceptable semantics for an array language.
Presumably, the bounds checking is being performed in idx_sel, when it should
be performed as an explicit operation earlier. If IVEO did not split 
vect2offset operations, then vect2offset would be an ideal place to 
do this.
One possible way to resolve this problem is to leave vect2offset along,
introduce an array-bounds Checker-O-Meter node, which can be optimized out
of existence when static information allows that.
The IVEO split problem remains, as does the "iv - cv" overflow-on-split 
problem. More coffee is required.
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking