This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Does "complex xxx" work?


On Sat, Jun 21, 2003 at 10:02:58PM +0100, Joseph S. Myers wrote:
> On Sat, 21 Jun 2003, H. J. Lu wrote:
> 
> > If I added
> > 
> >   record_builtin_type (RID_LONG, "__int64",
> >                        long_integer_type_node);
> >  
> > should the parser accept "unsigned __int64"? If somehow I make it
> 
> No, at least not properly in all cases, because the parser knows which
> keywords are type specifiers; __int64 seems to be designed as a keyword,
> and implementing it as something else isn't a robust solution.  I don't
> believe we want to add this extra keyword to GCC.  If the Intel compiler

Can I add __int64 as a keyword to ia64?

> makes __int64 a type compatible with long long and unsigned __int64
> compatible with unsigned long long, or if it makes them compatible with
> long / unsigned long (with 64-bit long), then just use the compatible
> types.  If it is a type incompatible with all standard types of that size,
> more consideration may be needed.

For LP64, __int64 is long and unsigned __int64 is unsigned long. The
problem is __int64 and unsigned __int64 are used in the ia64 intrinsics.
There are lots of declarations like:

unsigned __int64 _InterlockedExchange8(volatile unsigned char *Target, unsigned __int64 value);

I can't make it to work with gcc unless I use

#ifdef __LP64__
#define __int64 long
#else
#define __int64 long long
#endif

Will it be acceptable in ia64intrin.h?


H.J.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]