[Bug ada/17953] New: Illegal program not detected, RM 3.9.2(9)
ludovic dot brenta at insalien dot org
gcc-bugzilla@gcc.gnu.org
Tue Oct 12 18:50:00 GMT 2004
Debian Bug #276224:
-- If the expected type for an expression or name is some specific
-- tagged type, then the expression or name shall not be dynamically
-- tagged unless it is a controlling operand in a call on a
-- dispatching operation.
procedure Test_121 is
package pak1 is
type T1 is tagged null record;
function f1 (x1: T1) return T1;
end pak1;
package body pak1 is
function f1 (x1: T1) return T1 is
begin
return x1;
end;
end pak1;
use pak1;
type T2 is record
a1: T1;
end record;
z0: T1'class := T1'(null record);
z1: T1 := f1(z0); -- ERROR: gnat correctly rejects
z2: T2 := (a1 => f1(z0)); -- ERROR: gnat mistakenly allows
begin
null;
end Test_121;
The output is:
test_121.adb:24:14: dynamically tagged expression not allowed
gnatmake: "test_121.adb" compilation error
The second error is not detected.
--
Summary: Illegal program not detected, RM 3.9.2(9)
Product: gcc
Version: 3.4.2
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: ada
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: ludovic dot brenta at insalien dot org
CC: gcc-bugs at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17953
More information about the Gcc-bugs
mailing list