Message-Id: Comments: Authenticated sender is From: "Salvador Eduardo Tropea (SET)" Organization: INTI To: "A.Appleyard" Date: Wed, 5 Mar 1997 14:57:08 +0000 MIME-Version: 1.0 Content-type: text/plain; charset=US-ASCII Content-transfer-encoding: 7BIT Subject: Re: False alarm of variable used uninitialized CC: djgpp AT delorie DOT com A.Appleyard wrote: > C:\AM>type __.cc > #include > void zxcvbnm(int A,int B){int C; > if(A==2 ?: (C=A+B)<5) return; > printf("%1d\n",C);} > /*-----*/ > main(){zxcvbnm(5,6);;} > > C:\AM>gcc __.cc -O2 -Wall > __.cc: In function `void zxcvbnm(int, int)': > __.cc:2: warning: `int C' might be used uninitialized in this function > > There seems to be a logical fault in deciding when C `might be used > uninitialized in this function', as the if-branch `A==2' (which does not set > C) here leads straight to a return and not to anything mentioning C again. I saw other situations where a human can analyze that the variable will be initialized but GCC claims that not. Seems that this part of GCC is a little weak. When I come to these situations I simply force an initialization to avoid the warning, I think that 3 o 4 extra assigments in 500Kb of code aren't so bad but of course could be better if GCC worked better. You can post your wish to the GNU/FSF people. SET --------------- 0 -------------------------------- Salvador Eduardo Tropea (SET). Address: Curapaligue 2124, Caseros, 3 de Febrero Buenos Aires, (1678), ARGENTINA TE: +(541) 759 0013