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: Problems with __int64, unsigned __int64 and DImode/ILP32 on ia64


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


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