Strange warning (variable might be clobbered by `longjmp' or `vfork')
Jim Wilson
wilson@chestnut.cygnus.com
Mon Sep 1 12:09:00 GMT 1997
It is not a bug in user programs. It is a bug in gcc'c EH support.
I have discussed this in other mesages, but the basic problem is that flow
can't understand the RTL emitted when exception handling is enabled. This
causes the dataflow info computed by flow to be incorrect. This incorrect
info is know to cause at least two problems:
1) Some C++ programs get compiler core dumps due to unallocated pseudos.
2) Some C++ programs get bogus warnings when -Wall is used.
Both of these are the same problem. The bogus warning is more common;
the core dump is more serious.
Other parts of the compiler that compute flow graphs suffer the same
problem, e.g. haifa-sched.c and profile.c, but since these are much less
critical than flow, we haven't noticed problems with them yet.
Until this problem is fixed, I can not say for sure whether any of
these warnings are legitimate.
In the short term, the easiest solution is probably to just admit that the
EH support isn't ready for production use yet, and make it disabled by
default. If people think it is important that we have EH support enabled
by default in the first EGCS release, then someone (me?) will have to spend
time looking into this real soon.
Jim
More information about the Gcc
mailing list