[ Date Prev][ Date Next][ Thread Prev][ Thread Next][ Date Index][ Thread Index]
Question about guard variable types
- To: cxx-abi-dev@xxxxxxxxxxxxxxxx
- Subject: Question about guard variable types
- From: Mark Mitchell <mark@xxxxxxxxxxxxxxxx>
- Date: Thu, 5 Dec 2002 11:51:14 -0800
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@xxxxxxxxxxxxxxxx
CodeSourcery, LLC http://www.codesourcery.com
|