This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

EH in egcs


Although EH is much better than before, it still needs some improvement,
especially what happens after the exception is caught. There are 2
test cases which show the problem. That is nested throw/catch doesn't
work. That is because __eh_value/__eh_type are used throughout
EH and the new ones will override the old ones. I was wondering if
we could do this in the catch region:

Treat the caught exception as a local variable. That is make

	catch (type caught)
	{
	}

equivalent to

	foo ()
	{
	  type caught;
	}

Can we use __eh_value/__eh_type to make it to work? After that,
caught will be handled just like any other local variables.
If there is another exception thrown inside foo (), caught  
will be cleared appropriately. Otherwise, it will be cleared
when exception is out of scope.


-- 
H.J. Lu (hjl@gnu.ai.mit.edu)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]