comp.lang.ada
 help / color / mirror / Atom feed
From: Adam Beneschan <adam@irvine.com>
Subject: Re: Why this error, value not in range of subtype of "Standard.Integer"?
Date: Tue, 26 Jun 2012 10:20:39 -0700 (PDT)
Date: 2012-06-26T10:20:39-07:00	[thread overview]
Message-ID: <b68ce7c8-caf6-46a6-a24a-d91cc711595f@googlegroups.com> (raw)
In-Reply-To: <jsclls$3bv$1@speranza.aioe.org>

On Tuesday, June 26, 2012 8:49:18 AM UTC-7, Nasser M. Abbasi wrote:
> experts;
> 
> If I write this, I get an error as show: (notice the B
> matrix declaration, that is where the problem is)
> 
> -------------- this does not work ------
> with Ada.Numerics.Real_Arrays;  use Ada.Numerics.Real_Arrays;
> 
> procedure foo2 is
>      A : constant Real_Matrix :=
>               (( 1.0,  2.0,  3.0),
>                ( 4.0,  5.0,  6.0),
>                ( 7.0,  8.0,  9.0));
>      B : Real_Matrix(1 .. 3,1 .. 3);  -- this is the problem
> begin
> 
>      FOR I in A'range(1) LOOP
>            FOR J in A'range(2) LOOP
>                B(I,J) := 1.0;
>            END LOOP;
>      END LOOP;
>      
> end foo2;
> -------------------------------
> 
> >gnatmake foo2.adb
> gcc-4.6 -c foo2.adb
> foo2.adb:13:17: warning: value not in range of subtype of "Standard.Integer" defined at line 8
> foo2.adb:13:17: warning: "Constraint_Error" will be raised at run time
> foo2.adb:13:19: warning: value not in range of subtype of "Standard.Integer" defined at line 8
> foo2.adb:13:19: warning: "Constraint_Error" will be raised at run time
> gnatbind -x foo2.ali
> gnatlink foo2.ali
> 
> But if I change the declaration of B from
>       B : Real_Matrix(1 .. 3,1 .. 3);
> to
>       B : Real_Matrix(A'RANGE(1), A'RANGE(2));
> 
> then Ada is happy now.
> 
> Isn't A'RANGE(1) the same as 1 .. 3 and A'RANGE(2) the same as 1 .. 3?
> or is this one of those typing issues?

A'Range(1) is the same as A'First(1) .. A'Last(1), which is in this case -2147483648 .. -2147483646, not 1 .. 3.  I've said more about this in my response on another thread.

                             -- Adam



  reply	other threads:[~2012-06-26 18:02 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-26 15:49 Why this error, value not in range of subtype of "Standard.Integer"? Nasser M. Abbasi
2012-06-26 17:20 ` Adam Beneschan [this message]
2012-06-26 18:00 ` Niklas Holsti
2012-06-26 21:39 ` Robert A Duff
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox