This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug ada/32181] New: Legal program executes incorrectly, RM 3.4(27)
- From: "ludovic at ludovic-brenta dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 1 Jun 2007 16:47:54 -0000
- Subject: [Bug ada/32181] New: Legal program executes incorrectly, RM 3.4(27)
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
The following program prints FAILED; it should print PASSED
as per RM 3.4(27), which states:
-- "For the execution of a call on an inherited subprogram,
-- a call on the corresponding primitive subprogram of the
-- parent or progenitor type is performed; the normal conversion
-- of each actual parameter to the subtype of the corresponding
-- formal parameter (see 6.4.1) performs any necessary type
-- conversion as well."
with Text_IO; use Text_IO;
procedure Test1 is
package Pak1 is
type T1 is tagged null record;
function Eq(X, Y: T1) return Boolean renames "=";
end Pak1;
package Pak2 is
type T2 is new Pak1.T1 with record
F1: Integer;
end record;
end Pak2;
Z1: Pak2.T2 := (F1 => 1);
Z2: Pak2.T2 := (F1 => 2);
begin
if Pak2.Eq(Z1, Z2) = Pak1.Eq(Pak1.T1(Z1), Pak1.T1(Z2))
then Put_Line("PASSED");
else Put_Line("FAILED");
end if;
end Test1;
--
Summary: Legal program executes incorrectly, RM 3.4(27)
Product: gcc
Version: 4.1.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: ada
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: ludovic at ludovic-brenta dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32181