public inbox for gcc-help@gcc.gnu.org
 help / color / mirror / Atom feed
* 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).