This is the mail archive of the ecos-maintainers@sources.redhat.com mailing list for the eCos 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: [APPROVE] __cxa_pure_virtual()


Bart Veer wrote:
"Jifl" == Jonathan Larmour <jifl at eCosCentric dot com> writes:


Jifl> Bart Veer wrote:
>> I have just committed a patch to CYGPKG_INFRA to provide an
>> implementation of __cxa_pure_virtual() that is appropriate for eCos,
>> overriding the one in libsupc++. >> >> http://sources.redhat.com/ml/ecos-patches/2003-03/msg00209.html


    Jifl> No objection in principle, although I think you could add a
    Jifl> diag_printf after the CYG_FAIL saying the same thing so
    Jifl> there is some potential diagnostic if people don't have
    Jifl> asserts enabled.

    Jifl> Perhaps even
    Jifl> #ifdef CYGDBG_USE_ASSERTS
    Jifl> CYG_FAIL
    Jifl> #else
    Jifl> diag_printf
    Jifl> #endif

No. __cxa_pure_virtual() should never get called. Even when still
debugging, there are very few applications sufficiently broken that
__cxa_pure_virtual() would get called. In non-debug builds we want a
minimal implementation, and having a diag_printf() in there would be a
waste of code space.

Fair point.


Arguably we should go even further and in non-debug builds alias this
to cyg_assert_fail() or some other dummy function, saving a couple
more bytes.

Well, in the future we should have a general way to deal with program termination/abort whatever. abort() has too many existing semantic requirements, but to achieve that sort of effect, particularly when a ROM monitor is present and you want to return to it, or whatever other (configurable) behaviour. But for much later (beyond 2.1 probably in practice).


Jifl
--
eCosCentric    http://www.eCosCentric.com/    The eCos and RedBoot experts
--[ "You can complain because roses have thorns, or you ]--
--[  can rejoice because thorns have roses." -Lincoln   ]-- Opinions==mine


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