> Some people use exceptions to propagate "low memory" up which > made me increase the size of the EH emergency pool (which is > used when malloc cannot even allocate the EH data itself) ... > > So yes, people care. There absolutely has to be a path in > unwinding that allocates no (as little as possible) memory.
note that I would not allocate at all in the unwinding path. I would allocate memory when new frames are registered, but unwinding would be without any allocations. Of course there is a trade-off here. We could delay allocating the lookup structures until the first exception occurs, in order to speed up programs that never throw any exceptions. But that would effectively force us to implement a "no memory" fallback, for exactly the reason you gave, as something like bad_alloc might be the first exception that we encounter. Thomas