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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [Patch] libstdc++/14493


Howard Hinnant <hhinnant@apple.com> writes:

| On Jan 30, 2007, at 1:46 PM, Paolo Carlini wrote:
| 
| > Paolo Carlini wrote:
| >
| >> Well, I may agree, in principle. However, all the existing
| >> std::bad_alloc, bad_cast, bad_typeid, bad_exception, and exception
| >> symbols were already exported together with the other generic
| >> library symbols, see for example the entry std::ba[a-r]* which I'm
| >> commenting out.
| >
| > Oh, yes, another data point, maybe obvious to you: the various
| > operator new and delete, also strictly speaking declared and defined
| > in libsupc++, are also exported together with the other generic
| > library symbols, now maybe the whole picture makes more sense to
| > me...
| >
| > Paolo.
| 
| ABI concerns?  Say a client that derived from bad_alloc and overloaded
| what()?  Wouldn't his what() get corrupted (call the wrong what())?

Why would it?  

If it is an *overload*, then this patch will not change the overload set.

If it is an *overriding*, the overrider from the client's what() will get
called, because it is the overrider from the most derived class.

-- Gaby


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