Question about guard variable types
Mark Mitchell
mark at codesourcery.com
Thu Dec 5 19:51:14 UTC 2002
The ABI document describes guard variables (2.8) and gaurd variable
routines (3.3.2).
The variables are required to have a 64-bit type (which type is not
specified), while the routines take an "__int64_t *" as a paramter.
On IPF systems, __int64_t is "long long"; that is why the mangling
indicates that those two types should have the same mangled name. (The
"__int64_t" type is an IPF-specific type; the C99 standard describes
"int64_t".)
It's a bit odd to require 64-bit types on all platforms; some may not
have them.
In trying to make the ABI platform-independent, I think we should just
use "long long" on all platforms. This is not a change on IPF
platforms, but is sensible on all platforms. G++ already uses "long
long" on all platforms.
It's true that a C++ compiler is not required to support long long,
but using any other type would be a change on IPF platforms.
Thoughts, objections?
Comments from people with non-64 bit implementations?
--
Mark Mitchell mark at codesourcery.com
CodeSourcery, LLC http://www.codesourcery.com
More information about the cxx-abi-dev
mailing list