On Mon, Feb 12, 2007 at 10:06:11AM -0800, Mark Mitchell wrote: > Does it seem overly aggressive to you to assume "f" cannot throw > in "g", given: > > void f() {} > void g() { f(); } > > where this code is in a shared library?
Yes. If F is part of the exported (and overridable) interface of the shared library, one should be able to replace it with any valid function. If the shared library needs F to not be able to throw, then one can just as easily define the function interface to be void f() throw(); If F was mistakenly placed in the overridable interface of the shared library, then the fix is elsewhere. r~