Bogus warning caused by exception statement

C. van Reeuwijk C.vanReeuwijk@twi.tudelft.nl
Mon Jan 5 08:21:00 GMT 1998


Hello,

If this has been reported before, I couldn't find it.

The following code generates a bogus warning:

=-=-=-=
$ cat t.cc
#include "stdio.h"

void writeNote() throw( int )
{
    printf( "hello world\n" );
    try { }
    catch( int ){ throw; }
}
=-=-=-=

The warning is:
=-=-=-=
$ g++ -c -O2 -W t.cc
t.cc: In function `void writeNote()':
t.cc:8: warning: `struct cp_eh_info * __exception_info' might be used uninitialized in this function
=-=-=-=

The code is shrunk to its minimum: the explicit exception declaration
for writeNote() is necessary, as is the printf() statement.

In other code I've seen similar bogus warnings about local variables
of the function; they were also caused by a try statement.

I use egcs 1.0:
=-=-=-=
$ g++ -v
Reading specs from /usr/local/lib/gcc-lib/i586-pc-linux-gnulibc1/egcs-2.90.21/specs
gcc version egcs-2.90.21 971202 (egcs-1.00 release)
=-=-=-=

BTW, if I leave out the catch() line, the compiler gets quite confused;
a more to-the-point error message would perhaps be nice.

-- 
Kees van Reeuwijk, Delft University of Technology
http://pds.twi.tudelft.nl/~reeuwijk



More information about the Gcc-bugs mailing list