1 /* Copyright (C) 2004 Manuel Novoa III <mjn3@codepoet.org>
3 * GNU Library General Public License (LGPL) version 2 or later.
5 * Dedicated to Toni. See uClibc/DEDICATION.mjn3 for details.
11 /* Right now, we assume intmax_t is either long or long long */
17 #if INTMAX_MAX > LLONG_MAX
18 #error INTMAX_MAX > LLONG_MAX! The printf code needs to be updated!
21 #elif INTMAX_MAX > LONG_MAX
23 #error No LLONG_MAX and INTMAX_MAX > LONG_MAX! The printf code needs to be updated!
25 #endif /* LLONG_MAX */
27 #endif /* INTMAX_MAX */
29 /* We assume int may be short or long, but short and long are different. */
31 void _store_inttype(register void *dest, int desttype, uintmax_t val)
33 if (desttype == __PA_FLAG_CHAR) { /* assume char not int */
34 *((unsigned char *) dest) = val;
37 #if defined(LLONG_MAX) && (INT_MAX != LLONG_MAX)
38 if (desttype == PA_FLAG_LONG_LONG) {
39 *((unsigned long long int *) dest) = val;
42 #endif /* LLONG_MAX */
43 #if SHRT_MAX != INT_MAX
44 if (desttype == PA_FLAG_SHORT) {
45 *((unsigned short int *) dest) = val;
49 #if LONG_MAX != INT_MAX
50 if (desttype == PA_FLAG_LONG) {
51 *((unsigned long int *) dest) = val;
56 *((unsigned int *) dest) = val;