[cxx-abi-dev] Question about guard variable types

Martin v. Löwis martin at v.loewis.de
Fri Dec 6 17:16:11 UTC 2002


> I guess your point is that if there's no 64-bit integral type you
could
> make an array of characters and pass that around?

Nearly correct. You can make an array of characters, but you don't have
to pass that around. You only pass around its address, which has the
same value whether the data are a long long or a char[8].

> So, instead of using "__int64_t" I guess we could just say "some
> unspecified 64-bit type".  It would be nice if you at least created
> a typedef for it.

Sure.

> (Note that even though the __cxa_guard functions are extern "C" you
> can still observe their types; take their addresses.)

But that is not relevant for the ABI, is it?

> If we do what you suggest, G++ will have to change.  I'd prefer just
to
> match G++; there's nothing particularly wrong with "long long" and
> there aren't -- yet -- very many non-IPF implementations to worry
about.

In what way would you have to change g++? I.e. on what system does it
support a type long long which has not exactly 8 bytes?

I claim that g++ conforms to the ABI, as both the ABI and g++ are, in
this very moment.

Regards,
Martin




More information about the cxx-abi-dev mailing list