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~