From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,a2a089cd92fbc353,start X-Google-Attributes: gid103376,public From: rracine@draper.com (Roger Racine) Subject: Uninitialized Variables Date: 1999/01/25 Message-ID: #1/1 X-Deja-AN: 436727942 Sender: nntp@news.draper.com (NNTP Master) Organization: Draper Laboratory Newsgroups: comp.lang.ada Date: 1999-01-25T00:00:00+00:00 List-Id: One of the few areas where Ada programs exhibit non-deterministic behavior (i.e. different behavior for different runs) is when variables are not set before their use. I am curious as to why the language designers did not think this was sufficiently common enough of an error to protect against it. I understand that having an initial value takes more memory and more CPU, but so do constraint checks. And there could always have been a pragma to allow uninitialized variables (akin to pragma SUPPRESS). By the way, I would be happy with a mechanism at link time that only complained about (or implicitly created initial values for) data that was determined might be used before being set. The problem is that different environments exhibit different behavior. Some environments put zeros in all of RAM as part of initialization. This sometimes masks the problem (which is fine if portability is not a concern). Some put zeros in all static (non-stack, non-heap) variables. Some even allow the user to specify the value to be put in RAM. And some do nothing at all. Does anyone know why there is not at least a required link-time warning message for variables possibly used before being set? Roger Racine