diff options
author | Nick Clifton <nickc@redhat.com> | 2015-10-19 16:48:30 +0300 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2015-10-19 16:48:30 +0300 |
commit | c3b6da1781011414436071bfc3a4dd9dad21d2e3 (patch) | |
tree | 418e641cda180f517369d850eb1e1cdc9d07a34a /newlib/libc | |
parent | f86afe5a3ac62a92e821c764a011e1625abdd326 (diff) |
Extend _intsup.h to support 16-bit and 20-bit pointers.
* libc/include/sys/_intsup.h: Add support for 16-bit and 20-bit
pointers.
Diffstat (limited to 'newlib/libc')
-rw-r--r-- | newlib/libc/include/sys/_intsup.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/newlib/libc/include/sys/_intsup.h b/newlib/libc/include/sys/_intsup.h index ea10431f7..b979d5c4d 100644 --- a/newlib/libc/include/sys/_intsup.h +++ b/newlib/libc/include/sys/_intsup.h @@ -50,6 +50,7 @@ #pragma push_macro("unsigned") #pragma push_macro("char") #pragma push_macro("short") +#pragma push_macro("__int20") #pragma push_macro("int") #pragma push_macro("long") #undef signed @@ -57,19 +58,26 @@ #undef char #undef short #undef int +#undef __int20 #undef long #define signed +0 #define unsigned +0 #define char +0 #define short +1 +#define __int20 +2 #define int +2 #define long +4 #if (__INTPTR_TYPE__ == 8 || __INTPTR_TYPE__ == 10) #define _INTPTR_EQ_LONGLONG #elif (__INTPTR_TYPE__ == 4 || __INTPTR_TYPE__ == 6) #define _INTPTR_EQ_LONG +/* Note - the tests for _INTPTR_EQ_INT and _INTPTR_EQ_SHORT are currently + redundant as the values are not used. But one day they may be needed + and so the tests remain. */ #elif __INTPTR_TYPE__ == 2 -/* Nothing to define because intptr_t is safe to print as an int. */ +#define _INTPTR_EQ_INT +#elif (__INTPTR_TYPE__ == 1 || __INTPTR_TYPE__ == 3) +#define _INTPTR_EQ_SHORT #else #error "Unable to determine type definition of intptr_t" #endif @@ -194,6 +202,7 @@ #pragma pop_macro("unsigned") #pragma pop_macro("char") #pragma pop_macro("short") +#pragma pop_macro("__int20") #pragma pop_macro("int") #pragma pop_macro("long") |