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
next prev parent 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