runtime mangling
Jim Dehnert
dehnert at baalbek.engr.sgi.com
Thu Mar 9 21:26:30 UTC 2000
> Date: Thu, 9 Mar 2000 13:02:35 -0800
> From: Jason Merrill <jason at cygnus.com>
>
> Which of the runtime entry points specified by the ABI are extern "C", and
> which are extern "C++"? I've been assuming that most had "C" linkage, but
> Nathan seems to have assumed otherwise in implementing the new RTTI stuff,
> and we ought to specify...
You're right, we need to. I was making Nathan's assumption.
Specifically, with the exception of longjmp_unwind, which we expect
users to call from C, I was thinking in terms of using C++ linkage.
So, we need to identify the underlying principle. Mine was:
All runtime library entrypoints are extern "C++" except:
- Routines expected to be called frequently from C code,
e.g. longjmp_unwind.
I suspect your assumption would be captured by another exception:
- Routines called only from generated code, and likely
to be implemented in C, e.g. __cxa_vec_dtor (?).
Of course, in addition to a statement of the principles, we need to be
specific about each of the entrypoints, which I had intended to do by
referencing the ABI header file from the document.
What are people's preferences for the underlying principle? The method
of specification? We'll have a header file shortly from Nathan.
Jim
- Jim Dehnert dehnert at sgi.com
(650)933-4272
More information about the cxx-abi-dev
mailing list