* gcc-2.95.3 exception handler table corruption
@ 2002-01-11 15:15 Michael Eager
0 siblings, 0 replies; only message in thread
From: Michael Eager @ 2002-01-11 15:15 UTC (permalink / raw)
To: gcc-help
I'm using gcc-2.95.3, built for 586, with -O.
I've run into a strange G++ bug which is sensitive to the path to the
current build directory. The symptom is that the exception handler
table is built incorrectly. In the failing case, one entry in the
table is being deleted when it should not be. This results in throw
from the affected block not being caught.
The only difference between a working and failing test case is the path
in the # <linenum> <filename> directive. I have two preprocessed source
files which differ only in three or four characters in the path name on
a single # directive.
In flow.c, when delete_block deletes a block, it calls remove_handler
(in except.c) to search for any handlers which reference the deleted block.
The working and failing test cases appear to work almost identically.
In the failing case, one of the calls to remove_handler finds two entries
for handlers, with different labels, while in the correct case it only
finds one.
Has anyone seen anything similar to this? Any ideas what might be happening?
--
Michael Eager eager@mvista.com 408-328-8426
MontaVista Software, Inc. 1237 E. Arques Ave., Sunnyvale, CA 94085
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2002-01-11 23:15 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-01-11 15:15 gcc-2.95.3 exception handler table corruption Michael Eager
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).