[Bug ada/23354] New: Normalize_Scalars and enumeration types with holes
fw at deneb dot enyo dot de
gcc-bugzilla@gcc.gnu.org
Fri Aug 12 14:31:00 GMT 2005
Objects are unnecessarily initialized to valid values. The initialization
algorithm is described here:
`Enumeration types'
Objects of an enumeration type are initialized to all one-bits,
i.e. to the value `2 ** typ'Size - 1' unless the subtype excludes
the literal whose Pos value is zero, in which case a code of zero
is used. This choice will always generate an invalid value if one
exists.
But the conclusion is wrong because it does not consider enumeration types with
holes.
-- Run through gnatchop. Compile with -O2.
pragma Normalize_Scalars;
with Ada.Text_IO; use Ada.Text_IO;
procedure Bug4 is
type T is (A, B);
for T use (A => 1, B => 255);
for T'Size use 8;
X : T;
begin
if X'Valid then
Put_Line ("FAIL");
else
Put_Line ("PASS");
end if;
end Bug4;
--
Summary: Normalize_Scalars and enumeration types with holes
Product: gcc
Version: 4.0.1
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: ada
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: fw at deneb dot enyo dot de
CC: gcc-bugs at gcc dot gnu dot org
GCC build triplet: i686-pc-linux-gnu
GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23354
More information about the Gcc-bugs
mailing list