On 01/29/2013 03:21 AM, Jerry wrote:
>
> Hi Orion,
>
> This is puzzling. I can't see what could possibly be causing this. (By "this"
> I mean the x02.adb example, as I haven't looked any of the others.) I have
> not set ranges for any of the entities involved. (In Ada, you can specify an
> allowed range for a variable. For instance, one could specify that r1 is
> constrained between 0.0 and 1.0 and any attempt to assign a value outside
> that range would raise an overflow (I think) exception.) So I don't see where
> there is an opportunity to overflow either r1, a 64-bit float or r( ), a
> 32-bit integer.
>
> FWIW, GNAT does something a little controversial--it defaults to disabling
> overflow checking. The controversy is that this compiler is then, by default,
> not an Ada compiler. But I don't see how that is apropos to this situation.
>
> Can you try running this program and report the results?
>
>
> with Ada.Text_IO; use Ada.Text_IO;
> procedure Test_Overflow is
> r : Integer;
> r1 : Long_Float := 0.3;
> begin
> Put_Line("Running....");
> r := Integer((r1 * 255.001) - 0.499999999999999);
> end Test_Overflow;
>
>
> Compile and run:
>
> $ gnatmake Test_Overflow.adb
> $./test_overflow
>
> I also tried it with overflow checking turned on:
>
> $ gnatmake -gnato Test_Overflow.adb
> $./test_overflow
>
> It works either way on my system.
[orion@vmrawhide ~]$ gnatmake Test_Overflow.adb
gcc -c Test_Overflow.adb
Test_Overflow.adb:2:11: warning: file name does not match unit name, should be
"test_overflow.adb"
gnatbind -x Test_Overflow.ali
gnatlink Test_Overflow.ali
[orion@vmrawhide ~]$ ./Test_Overflow
Running....
raised CONSTRAINT_ERROR : Test_Overflow.adb:7 overflow check failed
[[orion@vmrawhide ~]$ rm Test_Overflow Test_Overflow.o Test_Overflow.ali
[orion@vmrawhide ~]$ gnatmake -gnato Test_Overflow.adb
gcc -c -gnato Test_Overflow.adb
Test_Overflow.adb:2:11: warning: file name does not match unit name, should be
"test_overflow.adb"
gnatbind -x Test_Overflow.ali
gnatlink Test_Overflow.ali
[orion@vmrawhide ~]$ ./Test_Overflow
Running....
raised CONSTRAINT_ERROR : Test_Overflow.adb:7 overflow check failed
--
Orion Poplawski
Technical Manager 303-415-9701 x222
NWRA, Boulder Office FAX: 303-415-9702
3380 Mitchell Lane [email protected]
Boulder, CO 80301 http://www.nwra.com
------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_jan
_______________________________________________
Plplot-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/plplot-devel