Richard Henderson wrote: > 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.
I understand that people do this for C code (e.g., replace memcpy, or other bits of the C library). Those routines aren't generally manipulating global data; they're often stand-alone APIs that just happened to be grouped together into a single library. But, aren't big C++ shared libraries rather different? Does KDE actually use throw() everywhere, or visibility attributes? But, presumably, most people don't replace the implementation of ScrollBar::ScrollUp or whatever. I'd be happy to know I'm wrong here, but I'd be surprised if there aren't large amounts of legacy code that would be hurt by this change. Do you disagree? Thanks, -- Mark Mitchell CodeSourcery [EMAIL PROTECTED] (650) 331-3385 x713