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 uintmax_t _load_inttype(int desttype
, register const void *src
, int uflag
)
13 if (uflag
>= 0) { /* unsigned */
14 #if LONG_MAX != INT_MAX
15 if (desttype
& (PA_FLAG_LONG
|PA_FLAG_LONG_LONG
)) {
17 if (desttype
== PA_FLAG_LONG_LONG
) {
18 return *((unsigned long long int *) src
);
21 return *((unsigned long int *) src
);
23 #else /* LONG_MAX != INT_MAX */
25 if (desttype
& PA_FLAG_LONG_LONG
) {
26 return *((unsigned long long int *) src
);
29 #endif /* LONG_MAX != INT_MAX */
32 x
= *((unsigned int *) src
);
33 if (desttype
== __PA_FLAG_CHAR
) x
= (unsigned char) x
;
34 #if SHRT_MAX != INT_MAX
35 if (desttype
== PA_FLAG_SHORT
) x
= (unsigned short int) x
;
40 #if LONG_MAX != INT_MAX
41 if (desttype
& (PA_FLAG_LONG
|PA_FLAG_LONG_LONG
)) {
43 if (desttype
== PA_FLAG_LONG_LONG
) {
44 return *((long long int *) src
);
47 return *((long int *) src
);
49 #else /* LONG_MAX != INT_MAX */
51 if (desttype
& PA_FLAG_LONG_LONG
) {
52 return *((long long int *) src
);
55 #endif /* LONG_MAX != INT_MAX */
59 if (desttype
== __PA_FLAG_CHAR
) x
= (signed char) x
;
60 #if SHRT_MAX != INT_MAX
61 if (desttype
== PA_FLAG_SHORT
) x
= (short int) x
;