------- Comment #7 from listor1 dot rombobeorn at comhem dot se 2005-12-09 22:35 ------- Subject: Re: Discriminant is left uninitialized.
> But the constraint_error for "OS of A1b" looks correct, and if commented > the one on "OS of A2b", it is a language mandated discriminant check > failing. But may be I'm missing something, could you explain why you think > an exception shouldn't be raised? The discriminant check fails because OS doesn't contain any of the valid values 0, 1 or 2 (for NT, OS2 and Linux). If there is random data in the memory I expect a 3/256 chance that it will get a valid value. The OS field shouldn't be random. It's fixed to Linux in the definition of Character_Encoding_A: This_OS : constant Known_OS := Linux; type Character_Encoding_A (Known : Boolean := False) is new Unified_Encoding_Record (Known => Known, OS => This_OS); All objects of this type should therefore have OS=Linux, so the discriminant would be valid and would pass the check. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25245