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: Question about std::terminate() in __cxa_pure_virtual()


Hi Jonathan,

That's quite helpful. Thanks very much.

BR,
Tony

On 21 May 2015 at 17:03, Jonathan Wakely <jwakely.gcc@gmail.com> wrote:
> On 21 May 2015 at 09:28, Tony Liu wrote:
>> Hi,
>>
>> Currently the implementation of __cxa_pure_vitual() function is:
>> extern "C" void
>> __cxxabiv1::__cxa_pure_virtual (void)
>> {
>>    writestr ("pure virtual method called\n");
>>    std::terminate ();
>> }
>>
>> However this version will result to quite large code size of user
>> programme, if use std::abort() instead of std::terminate(), the code
>> size drops significantly: 47080 vs 3056 in my case.
>> In the embedded system, the size of memory are quite limited. Would it
>> be possible to replace the terminate() by abort(), or replace it just
>> in some cases (e.g. -fno-exceptions enabled while building libstdc++
>> )?
>
> If you build GCC with --disable-libstdcxx-verbose then the terminate
> handler is simply std::abort, are you doing that?


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