> On Thu, Dec 01, 2011 at 05:16:21PM +0100, Jan Hubicka wrote: > > > This introduces host-dependent code generation differences, right? > > > You can simply use int64_t for code that is run on the host only. > > > > Well, if we rely on int64_t being around now (that is probably the case with > > C++ switch), HOST_WIDEST_INT is always equivalent, isn't it? > > I don't think that is related to C++ switch, because C++03 doesn't have long > long, > only C++11 and C99 has it. We apparently are using int64_t or uint64_t in a > couple of places already though: > > lto-streamer-out.c: uint64_t size; > lto-streamer-out.c: ? (uint64_t) int_size_in_bytes (TREE_TYPE (t)) > lto-streamer-out.c: : (((uint64_t) TREE_INT_CST_HIGH (DECL_SIZE_UNIT (t))) > << 32) > ada/tb-gcc.c: uwx_get_reg ((struct uwx_env *) uw_context, UWX_REG_IP, > (uint64_t *) &pc); > lto/lto.c:int64_t > lto/lto.c: uint64_t ret = 0; > lto/lto.c: int64_t offset; > lto/lto.h:int64_t lto_parse_hex (const char *p);
Yep, all is relatively new code. I originally suggested HOST_WIDEST_INT to Martin since bootstrapped compiler will have it 64bit and the overflow happens only in very extreme case where function pass constant arguments very many times. int65_t would work for me too. Honza > > Jakub