From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16032 invoked by alias); 22 Jun 2004 20:44:20 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 16017 invoked from network); 22 Jun 2004 20:44:19 -0000 Received: from unknown (HELO vlsi1.ultra.nyu.edu) (128.122.140.213) by sourceware.org with SMTP; 22 Jun 2004 20:44:19 -0000 Received: by vlsi1.ultra.nyu.edu (4.1/1.34) id AA10901; Tue, 22 Jun 04 16:45:51 EDT Date: Tue, 22 Jun 2004 21:30:00 -0000 From: kenner@vlsi1.ultra.nyu.edu (Richard Kenner) Message-Id: <10406222045.AA10901@vlsi1.ultra.nyu.edu> To: paul@codesourcery.com Subject: Re: Patch to allow Ada to work with tree-ssa Cc: gcc-patches@gcc.gnu.org X-SW-Source: 2004-06/txt/msg01799.txt.bz2 Basically what we need is ARRAY_REF (or implicitly via ARRAY_TYPE) which allows you to specify the array stride. In C terms this means sizeof(a[0]) != (a[1] - a[0]). In fact sizeof(a[0]) may not be meaningful if it is and outer reference of a multi-dimensional array. Well the critical question is whether this is always a constant or not. If it's always a constant, then you always have the option of making up an appropriate ARRAY_TYPE. If it's a *variable*, then you don't have the option of getting the value implicitly from the type and have to put it someplace explicitly in the node.