Actions

icon Post
text/html Subscribe
text/html Unsubscribe

[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