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,803df5f3f60558d5 X-Google-Attributes: gid103376,public From: bobduff@world.std.com (Robert A Duff) Subject: Re: Uninitialized "out" parameters Date: 1996/07/24 Message-ID: #1/1 X-Deja-AN: 169950749 references: <4smh9i$gp5@krusty.irvine.com> <4ste71$hg8@felix.seas.gwu.edu> <4svba5$j2i@mulga.cs.mu.OZ.AU> <4t3o3s$kt9@felix.seas.gwu.edu> organization: The World Public Access UNIX, Brookline, MA newsgroups: comp.lang.ada Date: 1996-07-24T00:00:00+00:00 List-Id: There's a lot of stuff about warnings in this thread. With regard to uninit vars, the compiler can categorize each variable reference as one of (1) correct, (2) wrong, or (3) don't know. A goal, of course, is to make the compiler as smart as possible, so the likelihood of category (3) is as small as possible. The halting theorem tells we can't shrink (3) to zero (given the rules of Ada). Clearly, the compiler should warn for (2), not warn for (1). But what should it do for (3)? False warnings can be such a big pain as to make all the warnings useless. I don't want to clutter my code with useless initializations, in cases where I'm smart enough to prove it, but the compiler isn't. My experience is that most compilers leave a *lot* of cases in category (3). Opinions? - Bob