On Fri, 15 Jun 2012, Mike Stump wrote: > Yes, but why abstract the host? HOST_NARROW_INT is a nice way to
HOST_WIDE_INT is an abstraction about the *target*; the target determines the required properties. The salient properties include: * At least as wide as target address space. * Constants for the target can be represented in at most two HOST_WIDE_INT. (This one is why some 32-bit targets require 64-bit HOST_WIDE_INT.) I describe at <https://docs.google.com/document/pub?id=10LO8y0YhjlKHya_PKM3jEGrJu0rllv-Nc9qP5LXqH_I> what I think are and are not appropriate uses of HOST_WIDE_INT. Yes, target_int / target_uint might be better names for this type as I think it should be used. Even if "long long" has the required properties, use of a type name such as target_int serves as documentation for the human reader about the intent of an entity in GCC - that it is an integer or size existing in some way on the target - and code needs to address the human reader, not just the compiler compiling it. -- Joseph S. Myers jos...@codesourcery.com