Path: utzoo!utgpu!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!mailrus!bbn!inmet!ishmael!inmet!stt
From: stt@inmet
Newsgroups: comp.lang.ada
Subject: Re: Collective response to := messa
Message-ID: <124000022@inmet>
Date: 6 Dec 88 19:16:00 GMT
References: <10959@ulysses.homer.nj.att.com>
Lines: 24
Nf-ID: #R:ulysses.homer.nj.att.com:-1095900:inmet:124000022:000:695
Nf-From: inmet!stt    Dec  6 14:16:00 1988


Here is another example of assignment leaving
uninitialized components:
    type Rec is record
        F : Positive;
        G : Positive := 5;
    end record;

    X : Rec;
    Y : Rec;
begin
    Y := X;

In this example predefined assignment, the compiler is NOT required to
perform any constraint checks, and it is quite possible
that Y.F is < 0 after the indicated assignment.
It would be erroneous to use the value of Y.F, and it would
be erroneous to use Y as a whole as an operand to "=" or "/=",
but the assignment itself is not erroneous.  (See LRM 3.2.1:18 for
discussion of erroneous use of uninitialized scalar subcomponents).

S. Tucker Taft
Intermetrics, Inc
Cambridge, MA  02138