[LLVMdev] Constants.cpp:368: error: `INT8_MAX' undeclared(firstuse this function)
Chris Lattner
sabre at nondot.org
Thu Jul 15 15:43:27 PDT 2004
On Fri, 16 Jul 2004, Henrik Bach wrote:
> >There is currently support for building in non-cygwin windows environments
> >protected by _MSC_VER. You just need to broaden the scope of the #ifndef
> >to include internix.
> >
>
> Sorry Chris, but my DataTypes.h.in seems to be outdated (due to I'm porting
> LLVM 1.2), so I'm not at the moment able to edit the file. Anyway, at this
> moment, I don't know how to hack it, before I know more about autoconf. I'll
> edit later when 1.3 is released.
Ah, suddenly everything makes sense. If you're interested in LLVM on the
windows platform, *please* get CVS. Since 1.2, there has been a lot of
work to make it work under cygwin and even mustly under the mingw
environments. I suspect that your life will be a lot simpler. If you do
that and this doesn't automatically work, then I'll add support for
__INTERNIX. In any case, patches relative to LLVM 1.2 aren't very useful.
Sorry! LLVM 1.3 will probably be out in a few weeks...
-Chris
> I've found that the min and max values for integral data types, for Interix
> 3.5 (gcc automatic macro is __INTERIX), are defined in the system header
> file: '/usr/include/limits.h':
>
> --- /usr/include/limits.h ---------------------
> ...
> #define SCHAR_MIN (-128) /* min value for a signed char */
> #define SCHAR_MAX 127 /* max value for a signed char */
> #define UCHAR_MAX 0xff /* max value for a unsigned char */
>
> #if defined(_CHAR_UNSIGNED) || defined(__CHAR_UNSIGNED__)
> #define CHAR_MIN 0
> #define CHAR_MAX UCHAR_MAX
> #else
> #define CHAR_MIN SCHAR_MIN /* mim value for a char */
> #define CHAR_MAX SCHAR_MAX /* max value for a char */
> #endif /* _CHAR_UNSIGNED */
>
>
> #define SHRT_MIN (-32768) /* min value for (signed) short */
> #define SHRT_MAX 32767 /* max value for (signed) short */
> #define USHRT_MAX 0xffff /* max value for unsigned short */
>
> #define INT_MIN (-2147483647-1) /* min value for (signed) int */
> #define INT_MAX 2147483647 /* max value for (signed) int */
> #define UINT_MAX 0xffffffff /* max value for unsigned int */
>
> #define LONG_MIN (-2147483647L-1) /* minimum (signed) long */
> #define LONG_MAX 2147483647L /* maximum (signed) long */
> #define ULONG_MAX 0xffffffffUL /* maximum unsigned long */
>
> #if defined(_ALL_SOURCE) \
> || (__STDC__ - 0 == 0) && !defined(_POSIX_C_SOURCE) \
> && !defined(_XOPEN_SOURCE)
> /*
> * Minimum and maximum values for 64-bit types
> * Define all the various well-known flavors of symbols
> *
> */
> #define ULLONG_MAX ((u_quad_t)0-1) /* 0xffffffffffffffff */
> #define LLONG_MAX ((quad_t)(ULLONG_MAX>>1)) /* 0x7fffffffffffffff */
> #define LLONG_MIN ((quad_t)((-LLONG_MAX)-1)) /* 0x8000000000000000 */
>
>
> #define LONG_LONG_MIN LLONG_MIN
> #define LONG_LONG_MAX LLONG_MAX
> #define ULONG_LONG_MAX ULLONG_MAX
>
>
> #define QUAD_MIN LLONG_MIN
> #define QUAD_MAX LLONG_MAX
> #define UQUAD_MAX ULLONG_MAX
> ...
> --- /usr/include/limits.h ---------------------
>
> Which defintions do you think encompasses LLVMs expectations?:
>
> INT8_MAX - SCHAR_MAX //signed
> INT8_MIN - SCHAR_MIN //signed
> INT16_MAX - SHRT_MAX //signed
> INT16_MIN - SHRT_MIN //signed
> INT32_MAX - LONG_MAX //signed
> INT32_MIN - LONG_MIN //signed
> ...
> UINT8_MAX - CHAR_MIN //unsigned - #define _CHAR_UNSIGNED ||
> __CHAR_UNSIGNED__
> UINT8_MIN - (implicitly 0?)
> UINT16_MAX - USHRT_MAX //unsigned
> UINT16_MIN - (implicitly 0?)
> UINT32_MAX - ULONG_MAX //unsigned
> UINT32_MIN - (implicitly 0?)
>
>
> /Henrik
>
> _________________________________________________________________
> Få alle de nye og sjove ikoner med MSN Messenger http://www.msn.dk/messenger
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://mail.cs.uiuc.edu/mailman/listinfo/llvmdev
>
-Chris
--
http://llvm.cs.uiuc.edu/
http://nondot.org/sabre/
More information about the llvm-dev
mailing list