The warning
argument 'obj' might be clobbered by 'longjmp' or 'vfork'
does not take into account the facts that
1) When longjmp() is called, setjmp() returns a non-null value,
2) In this case, when setjmp() returns a non-null value, 'obj' is
reset before being used.
$ gcc -v
Using built-in specs.
Target: powerpc-apple-darwin7.8.0
Configured with: /Users/bruno/data/work/gcc-4.0.0-20050410/configure
--prefix=/Volumes/UserData/experimental-macos --enable-shared
--enable-version-specific-runtime-libs --enable-languages=c,c++
Thread model: posix
gcc version 4.0.0 20050410 (prerelease)
$ gcc -W -O -c bug.c
bug.c: In function 'update_instance':
bug.c:220: warning: argument 'obj' might be clobbered by 'longjmp' or 'vfork'
Expected: no warning.
--
Summary: "clobbered by longjmp" warning ignores the data flow
Product: gcc
Version: 4.0.0
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: bruno at clisp dot org
CC: gcc-bugs at gcc dot gnu dot org
GCC build triplet: powerpc-apple-darwin7.8.0
GCC host triplet: powerpc-apple-darwin7.8.0
GCC target triplet: powerpc-apple-darwin7.8.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21161