comp.lang.ada
 help / color / mirror / Atom feed
From: Rod Kay <rodakay5@gmail.com>
Subject: Re: Extra information in the message string of exceptions.
Date: Sat, 29 Oct 2022 14:10:02 +1100	[thread overview]
Message-ID: <tji5i6$3bjhn$3@dont-email.me> (raw)
In-Reply-To: <371ba8ca-2304-4e8a-a77f-82548d706105n@googlegroups.com>

On 29/10/22 11:35, Jerry wrote:
 > On Thursday, October 27, 2022 at 4:57:08 AM UTC-7, roda...@gmail.com 
wrote:
 >> On 8/6/22 19:08, Dmitry A. Kazakov wrote:
 >>>
 >>> I noticed that it requires a user-defined [sub]type AND nested 
subprogram:
 >>>
 >>>     procedure Test (A : Integer) is
 >>>        subtype T is Integer range 0 .. 42;
 >>>        i : T;
 >>>     begin
 >>>        i := A; -- This will work
 >>>     end;
 >>> begin
 >>>     Test (-1);
 >>>
 >> Are you sure about this ?
 >>
 >> I tried ...
 >>
 >>
 >> procedure Example
 >> is
 >> X : Positive := 5;
 >> begin
 >> loop
 >> X := X - 1;
 >> end loop;
 >> end Example;
 >>
 >>
 >> ... with the -gnateE and saw this result ...
 >>
 >>
 >> [rod@orth example]$ ./example
 >>
 >> raised CONSTRAINT_ERROR : example.adb:6:14 range check failed
 >> value 0 not in 1..2147483647
 >> [./example]
 >> 0x55916975377f Example at example.adb:6
 >> 0x559169753b74 Main at b__example.adb:193
 >> [/usr/lib/libc.so.6]
 >> 0x7f9230be728e
 >> 0x7f9230be7348
 >> [./example]
 >> 0x559169753623 _start at start.S:115
 >> 0xfffffffffffffffe
 >
 > So -gnateE works part of the time?
 > Jerry

    I've not tested this extensively but assume the extra info would be 
shown in most cases.

    One exception is the following ...


procedure Example
is
    X : Positive := 0   with Unreferenced;
begin
    null;
end Example;


... which shows a compile time warning ...


gprbuild -d -P/home/rod/Desktop/sandbox/ada/example/example.gpr 
-XLace_Build_Mode=debug -XLace_Restrictions=xgc -XLace_OS=Linux 
-Xrestrictions=xgc
Compile
    [Ada]          example.adb
example.adb:3:20: warning: value not in range of type 
"Standard.Positive" [enabled by default]
example.adb:3:20: warning: Constraint_Error will be raised at run time 
[enabled by default]
Bind
    [gprbind]      example.bexch
    [Ada]          example.ali
Link
    [link]         example.adb
[2022-10-29 13:56:36] process terminated successfully, elapsed time: 00.60s


... and when run ...


[rod@orth example]$ ./example

raised CONSTRAINT_ERROR : example.adb:3 range check failed
[./example]
0x560439f23710 Example at example.adb:3
0x560439f23b00 Main at b__example.adb:193
[/usr/lib/libc.so.6]
0x7f746d52928e
0x7f746d529348
[./example]
0x560439f23623 _start at start.S:115
0xfffffffffffffffe


    I'm a little surprised that the compiler shows a warning rather than 
an error but I suppose there must be some reason for that.

  reply	other threads:[~2022-10-29  3:10 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-06 12:59 Extra information in the message string of exceptions Rod Kay
2022-06-06 13:40 ` Fabien Chouteau
2022-06-06 18:40   ` G.B.
2022-06-06 19:24     ` Dmitry A. Kazakov
2022-06-07 11:26   ` Rod Kay
2022-06-07 15:55   ` Fabien Chouteau
2022-06-07 16:41     ` Anh Vo
2022-06-08  7:31     ` Jerry
2022-06-08  8:04       ` Dmitry A. Kazakov
2022-06-09  2:39         ` Jerry
2022-06-08  9:08       ` Dmitry A. Kazakov
2022-10-27 11:56         ` Rod Kay
2022-10-29  0:35           ` Jerry
2022-10-29  3:10             ` Rod Kay [this message]
2022-10-29  6:30               ` Gautier write-only address
2022-10-29  8:59               ` G.B.
2022-11-01  0:05             ` Jerry
2022-06-06 14:31 ` Gautier write-only address
2022-06-07  2:33   ` Randy Brukardt
2022-06-07 11:47     ` Rod Kay
2022-06-07 11:29   ` Rod Kay
2022-06-06 20:14 ` Luke A. Guest
2022-06-07 11:51   ` Rod Kay
2022-06-07 21:06     ` Luke A. Guest
2022-06-06 20:49 ` DrPi
2022-06-06 23:17   ` Jerry
2022-06-07  1:53     ` Gautier write-only address
2022-06-07  2:35       ` Randy Brukardt
2022-06-07  8:07       ` Simon Wright
2022-06-08  7:14       ` Jerry
2022-06-09  8:21 ` Robin Vowels
replies disabled

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