Tristan Gingold <ging...@adacore.com> writes: > Would something like that be acceptable ? > I have just checked that I can still build gcc with that patch. If you like > this approach I will properly submit a patch.
Thanks. You should also test that gdb continues to build with this patch. I guess the question here is portability. Do we still care about portability to systems that have neither inttypes.h nor stdint.h? I'm willing to try this and see if anybody complains. Ian > --- a/include/splay-tree.h > +++ b/include/splay-tree.h > @@ -37,18 +37,11 @@ extern "C" { > > #include "ansidecl.h" > > -#ifndef _WIN64 > - typedef unsigned long int libi_uhostptr_t; > - typedef long int libi_shostptr_t; > -#else > -#ifdef __GNUC__ > - __extension__ > +#ifdef HAVE_STDINT_H > +#include <stdint.h> > #endif > - typedef unsigned long long libi_uhostptr_t; > -#ifdef __GNUC__ > - __extension__ > -#endif > - typedef long long libi_shostptr_t; > +#ifdef HAVE_INTTYPES_H > +#include <inttypes.h> > #endif > > #ifndef GTY > @@ -59,8 +52,8 @@ extern "C" { > these types, if necessary. These types should be sufficiently wide > that any pointer or scalar can be cast to these types, and then > cast back, without loss of precision. */ > -typedef libi_uhostptr_t splay_tree_key; > -typedef libi_uhostptr_t splay_tree_value; > +typedef uintptr_t splay_tree_key; > +typedef uintptr_t splay_tree_value; > > /* Forward declaration for a node in the tree. */ > typedef struct splay_tree_node_s *splay_tree_node; > > > index 7450eeb..fa45392 100644 > --- a/gcc/gengtype.c > +++ b/gcc/gengtype.c > @@ -4976,6 +4976,7 @@ main (int argc, char **argv) > POS_HERE (do_scalar_typedef ("double_int", &pos)); > POS_HERE (do_scalar_typedef ("uint64_t", &pos)); > POS_HERE (do_scalar_typedef ("uint8", &pos)); > + POS_HERE (do_scalar_typedef ("uintptr_t", &pos)); > POS_HERE (do_scalar_typedef ("jword", &pos)); > POS_HERE (do_scalar_typedef ("JCF_u2", &pos)); > POS_HERE (do_scalar_typedef ("void", &pos));