[cxx-abi-dev] Language-specific data area format

Jason Merrill jason at redhat.com
Tue Dec 4 10:55:29 UTC 2001


>>>>> "Christophe" == Christophe de Dinechin <ddd at cup.hp.com> writes:

> Someone at HP recently pointed out to me that there is no documentation
> of the language-specific data area at all in the current C++ ABI
> documentation hosted by CodeSourcery. I guess this was lost when we
> switched from "my" document to the HTML format.

Yep.  The process lost momentum before the document was finished.

> So I attached the relevant section from the original EH document (I hope
> this will go through the mailing list). Unfortunately, I'm no longer
> working on the C++ EH often enough to validate from memory if the overview
> given there is still accurate, or if it's completely off-base. I suspect
> it's still largely valid, but the type-info representation, at the very
> least, probably needs revision.

Indeed.  Our implementation basically follows the specification in your
document, though we use a variety of encodings (pc-relative,
section-relative, indirect, etc.) for the pointers between different
sections depending on the capabilities of the target, and so have added
fields to tell the personality routine about the encoding.

One hole in your specification that we ran into while implementing this was
how to represent the three different cases of:

1) call must not throw
2) throw from call should just keep unwinding
3) throw from call should run cleanups and keep unwinding

We decided to implement these as

1) lsda present, no call site entry
2) omit lsda if possible, or call site entry with no landing pad
3) landing pad, no action record

There was some feeling that a missing call site entry should indicate case
2, and that an entry with no landing pad case 1, but the above seemed to
match your document better.

> Once this has been validated, I propose that we do the following:

> - In the interim, place a link to this PDF file in place of the Level III
> "Suggested Implementation" paragraph 3.2 "Data Structures" which currently
> reads "To be supplied"

> - In the long-term, convert the original text from its current format to
> HTML + GIF.

Agreed.

Jason



More information about the cxx-abi-dev mailing list