This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/25399] New: Another bogus 'clobbered by longjmp' message
- From: "dalej at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 13 Dec 2005 22:04:00 -0000
- Subject: [Bug middle-end/25399] New: Another bogus 'clobbered by longjmp' message
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
(I don't think this is the same as any of the similar bugs, although I could be
wrong.)
In this case the field assignments cover all of u, so none of it is actually
live across
the call, but dataflow can't figure this out.
While this bogus warning is the only visible effect I know of, fixing this
would also
decrease register pressure and might result in improved code quality in some
cases.
struct ss { unsigned short a; unsigned short b; };
union uu { unsigned int all; struct ss parts; };
#include <setjmp.h>
extern void bar(union uu);
extern void baz();
void foo() {
for(;;)
{
union uu u;
jmp_buf env;
u.parts.a = 0;
u.parts.b = 0;
bar(u);
if (setjmp(env)==0)
baz();
else
baz();
}
}
--
Summary: Another bogus 'clobbered by longjmp' message
Product: gcc
Version: 4.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dalej at gcc dot gnu dot org
GCC build triplet: powerpc-apple-darwin8.0.0
GCC host triplet: powerpc-apple-darwin8.0.0
GCC target triplet: powerpc-apple-darwin8.0.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25399