From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeffrey A Law To: jbuck@synopsys.com (Joe Buck) Cc: wilson@cygnus.com (Jim Wilson), iskra@student.uci.agh.edu.pl, egcs@cygnus.com Subject: Re: Strange warning (variable might be clobbered by `longjmp' or `vfork') Date: Sat, 01 Nov 1997 21:24:00 -0000 Message-id: <8784.878448226@hurl.cygnus.com> References: <9709010239.AA21568@beeblebrox-84.synopsys.com> X-SW-Source: 1997-11/msg00029.html In message <9709010239.AA21568@beeblebrox-84.synopsys.com>you write: > It is not clear to me that it represents an actual bug (that is, that in > the execution of the programs where we've seen these messages, that any > flow is possible that accesses the automatic variables being warned about > after setjmp catches a longjmp. The compiler issues the warning because > it cannot prove this; it may be being overly conservative. Just a note -- I've fixed the flow control problems, so many/most of the bogus warnings about clobbered by setjmp and such should be gone in the next snapshot. > For example, cd to egcs-97XXXX/libstdc++/tests and say > > gcc -c -O -Wall tmap.cc Well, I get the following on my linux box after fixing the flow control problems. So, there's still at least one problem with the flow control graph, but it's a whole lot better than before! /usr/egcs/include/g++/tree.h: In method `struct __rb_tree_node > * rb_tree,select1st >,int_less,__default_alloc_template >::create_node(const struct pair &)': /usr/egcs/include/g++/tree.h:447: warning: control reaches end of non-void function `rb_tree,select1st >,int_less,__default_alloc_template >::create_node(const pair &)' /usr/egcs/include/g++/tree.h: In method `struct __rb_tree_node > * rb_tree,select1st >,str_less,__default_alloc_template >::create_node(const struct pair &)': /usr/egcs/include/g++/tree.h:447: warning: control reaches end of non-void function `rb_tree,select1st >,str_less,__default_alloc_template >::create_node(const pair &)' % Jeff