[Bug ada/32181] Legal program executes incorrectly, RM 3.4(27)

2015-12-05 Thread ebotcazou at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=32181 Eric Botcazou changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed|

[Bug ada/32181] Legal program executes incorrectly, RM 3.4(27)

2014-02-27 Thread nicolas.boulenguez at free dot fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32181 --- Comment #9 from nicolas.boulenguez at free dot fr --- 4.9.0 20140218 (experimental) [trunk revision 207856] (x86_64-linux-gnu) Program_Error exp_disp.adb:8456 explicit raise Error detected at test1.adb:21:4

[Bug ada/32181] Legal program executes incorrectly, RM 3.4(27)

2011-08-31 Thread nicolas.boulenguez at free dot fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32181 nicolas.boulenguez at free dot fr changed: What|Removed |Added CC||nicolas.boulenguez at

[Bug ada/32181] Legal program executes incorrectly, RM 3.4(27)

2008-04-24 Thread sam at gcc dot gnu dot org
--- Comment #5 from sam at gcc dot gnu dot org 2008-04-24 08:36 --- Ahn Vo: Pak2.Eq is *the same* as Pak1.Eq, that's the whole point. Thus both consider only T1 aspects of the objects. What you say would be true if the code had been: package Pak1 is type T1 is tagged null

[Bug ada/32181] Legal program executes incorrectly, RM 3.4(27)

2008-04-24 Thread ludovic at ludovic-brenta dot org
--- Comment #6 from ludovic at ludovic-brenta dot org 2008-04-24 09:55 --- (In reply to comment #4) Anh Vo, you are perfectly right up to a point: Pak1.Eq returns True and Pak2.Eq returns False, therefore comparing the two results yields False. Where you are wrong is where you think

[Bug ada/32181] Legal program executes incorrectly, RM 3.4(27)

2008-04-24 Thread anhvofrcaus at gmail dot com
--- Comment #7 from anhvofrcaus at gmail dot com 2008-04-24 15:37 --- Samuel and Ludovic, You both are right that GNAT has a bug, and the original test code was a good one. In fact, Pak2.Eq(Z1, Z2) would return True if GNAT worked correctly. --

[Bug ada/32181] Legal program executes incorrectly, RM 3.4(27)

2008-04-23 Thread anhvofrcaus at gmail dot com
--- Comment #1 from anhvofrcaus at gmail dot com 2008-04-23 21:59 --- The GNAT behaves correctly by printing FAILED because the test code has a problem. When converting Child type to the Parent type, any component(s) of the Child type will be lost. Therefore, Pak1.Eq(Pak1.T1(Z1),

[Bug ada/32181] Legal program executes incorrectly, RM 3.4(27)

2008-04-23 Thread sam at gcc dot gnu dot org
--- Comment #2 from sam at gcc dot gnu dot org 2008-04-23 23:21 --- Anh Vo: I think that you are wrong and that Ludovic is right. Note that Eq (T2, T2) is not a renaming of T2 = operator, it is, through inheritance, a renaming of T1 = operator with signature function = (X, Y : T1)

[Bug ada/32181] Legal program executes incorrectly, RM 3.4(27)

2008-04-23 Thread ludovic at ludovic-brenta dot org
--- Comment #3 from ludovic at ludovic-brenta dot org 2008-04-23 23:47 --- Exactly. The quoted portion of the ARM says that Pak2.Eq (Z1, Z2) should implicitly convert Z1 and Z2 to type T1, then call Pak1.Eq, then return True. Instead, it returns False as though GNAT synthesised a new

[Bug ada/32181] Legal program executes incorrectly, RM 3.4(27)

2008-04-23 Thread anhvofrcaus at gmail dot com
--- Comment #4 from anhvofrcaus at gmail dot com 2008-04-24 01:32 --- Samuel: Note that this function knows *nothing* about T2, so it cannot obviously compare new fields added in T2, it only compares fields already present in T1. That is exactly my point. Pak1.= operator only operates