Problems with __int64, unsigned __int64 and DImode/ILP32 on ia64

Jim Wilson wilson@tuliptree.org
Tue Jun 24 06:51:00 GMT 2003


H. J. Lu wrote:
>   record_builtin_type (RID_LONG, "__int64",
>                        long_integer_type_node);

I don't see any targets calling record_builtin_type, so this looks 
suspect.  Usually, target dependent types for intrinsics are defined in 
the intrinsic header file, via typedefs or defines.  A define would work 
here, but wouldn't be pretty.  I suggest asking the Intel compiler group 
to fix the instrinsic API to be more friendly to other compilers, i.e. 
don't assume that __int64 exists as a keyword.  They could use standard 
types like int64_t and uint64_t.  If they don't want to use though, they 
should at least have a __uint64 type.

This only matters if __int64 is visible to the users.  If it isn't then 
there is no need to replicate this part of the intrinsic API.  I tried 
looking at the manual, but it didn't work with my copy of Mozilla.  I 
also find it curious that I have to go to utexas to see Intel documentation.

> Does anyone know how to make gcc to take "unsigned __int64"?

I don't think you can without changing the parsers.  The 
record_builtin_type function doesn't affect the parser.  It just creates 
the type tree nodes needed by the parser, and gives them default names 
that are similar to what the C front end will accept.

Jim



More information about the Gcc mailing list