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,start X-Google-Attributes: gid103376,public From: adam@irvine.com (Adam Beneschan) Subject: Re: Uninitialized "out" parameters Date: 1996/07/18 Message-ID: <4smh9i$gp5@krusty.irvine.com>#1/1 X-Deja-AN: 168773628 references: <31EEACDA.64880EEB@sage.inel.gov> organization: /z/news/newsctl/organization newsgroups: comp.lang.ada Date: 1996-07-18T00:00:00+00:00 List-Id: Paul Whittington writes: >In the following Ada program, should either the compiler or the run-time >get some kind of error because the out parameter is not initialized? > >procedure Testit is > > procedure SubP (op : out Integer) is > begin > op := op+1; > end SubP; > > I : Integer; > >begin > SubP (I); >end Testit; Well, you can't read an "out" parameter at all, so it's illegal to use "op" in the right-hand side of your assignment. So the compiler should give you an error. Also, in Ada83, you'll get an error because I needs to be declared before the code for SubP appears. If you change op to an "in out" parameter, you'll be reading an uninitialized variable, but typically neither the compiler nor the runtime will complain. -- Adam