On 09/04/2009 03:17 PM, Tobias Burnus wrote: > On 09/04/2009 02:52 PM, Kai Tietz wrote: >> Well, I bootstrapped this with Paolo's stdint.m4 patch, and it >> workedon linux32 and linux64 (i386), and for x86_64-pc-mingw32, too. >> Just out of curiosity, who is the size in gfortran frontend for >> int_{least,fast}*_t done, as for gcc until now no stdint.h/inttypes.h >> file was used? > > Actually, I do not know how exactly it works ... I now checked - and > here is how it works: > > In gcc/fortran/ one calls: > TYPE_PRECISION (type) > for INT_FAST64_TYPE etc. The defaults are set in > gcc/default.h > > For instance: > #ifndef INT_FAST64_TYPE > #define INT_FAST64_TYPE ((const char *) NULL) > #endif > > And the INT_*_TYPE definitions can seemingly found in > config/*/*stdint.h. For instance: > ./i386/cygwin-stdint.h:#define INT_FAST64_TYPE "long long int" > ./i386/mingw-stdint.h:#define INT_FAST64_TYPE "long long int" > ./glibc-stdint.h:#define INT_FAST64_TYPE (LONG_TYPE_SIZE == 64 ? "long > int" : "long long int") > > Thus, stdint.h is not directly involved and the patch should have no > (adverse) effect on gfortran's c_int_fast*_t support. Yes, the stdint.h we're talking about is for the host. libgfortran (where the GCC target is actually the host, as in all target libraries) does not use int_fast and int_least. Only the front-end itself cares, but it uses info from the target configuration headers. Actually I'm pretty sure that stdint.h is not needed in the GCC tree only the intNN_t types (managed by GCC_STDINT_TYPES. But since GCC_HEADER_STDINT is used by bfd too and I didn't want Kai to mess up with bfd, I provided it in my stdint.m4 rewrite. Here is the latest and greatest version. Paolo