File tree Expand file tree Collapse file tree 6 files changed +82
-14
lines changed
Expand file tree Collapse file tree 6 files changed +82
-14
lines changed Original file line number Diff line number Diff line change @@ -12,22 +12,9 @@ typedef uint32_t uint_fast32_t;
1212#define UINT_FAST16_MAX UINT32_MAX
1313#define UINT_FAST32_MAX UINT32_MAX
1414
15- #if __LP64__
16-
17- #define INTPTR_MIN INT64_MIN
18- #define INTPTR_MAX INT64_MAX
19- #define UINTPTR_MAX UINT64_MAX
20- #define PTRDIFF_MIN INT64_MIN
21- #define PTRDIFF_MAX INT64_MAX
22- #define SIZE_MAX UINT64_MAX
23-
24- #else
25-
2615#define INTPTR_MIN (-1-__INTPTR_MAX__)
2716#define INTPTR_MAX __INTPTR_MAX__
2817#define UINTPTR_MAX __UINTPTR_MAX__
2918#define PTRDIFF_MIN (-1-__PTRDIFF_MAX__)
3019#define PTRDIFF_MAX __PTRDIFF_MAX__
3120#define SIZE_MAX __SIZE_MAX__
32-
33- #endif
Original file line number Diff line number Diff line change @@ -35,6 +35,22 @@ typedef uint16_t uint_least16_t;
3535typedef uint32_t uint_least32_t ;
3636typedef uint64_t uint_least64_t ;
3737
38+ #ifdef __EMSCRIPTEN__
39+ #define INT8_MIN (-1-__INT8_MAX__)
40+ #define INT16_MIN (-1-__INT16_MAX__)
41+ #define INT32_MIN (-1-__INT32_MAX__)
42+ #define INT64_MIN (-1-__INT64_MAX__)
43+
44+ #define INT8_MAX __INT8_MAX__
45+ #define INT16_MAX __INT16_MAX__
46+ #define INT32_MAX __INT32_MAX__
47+ #define INT64_MAX __INT64_MAX__
48+
49+ #define UINT8_MAX __UINT8_MAX__
50+ #define UINT16_MAX __UINT16_MAX__
51+ #define UINT32_MAX __UINT32_MAX__
52+ #define UINT64_MAX __UINT64_MAX__
53+ #else
3854#define INT8_MIN (-1-0x7f)
3955#define INT16_MIN (-1-0x7fff)
4056#define INT32_MIN (-1-0x7fffffff)
@@ -49,6 +65,7 @@ typedef uint64_t uint_least64_t;
4965#define UINT16_MAX (0xffff)
5066#define UINT32_MAX (0xffffffffu)
5167#define UINT64_MAX (0xffffffffffffffffu)
68+ #endif
5269
5370#define INT_FAST8_MIN INT8_MIN
5471#define INT_FAST64_MIN INT64_MIN
Original file line number Diff line number Diff line change 1+ INT_MIN: -2147483648
2+ INT_MAX: 2147483647
3+ LONG_MIN: -9223372036854775808
4+ LONG_MAX: 9223372036854775807
5+ LLONG_MIN: -9223372036854775808
6+ LLONG_MAX: 9223372036854775807
7+ INTPTR_MIN: -9223372036854775808
8+ INTPTR_MAX: 9223372036854775807
9+ PTRDIFF_MIN: -9223372036854775808
10+ PTRDIFF_MAX: 9223372036854775807
11+ INTPTR_MIN: -9223372036854775808
12+ INTPTR_MAX: 9223372036854775807
13+ UINTPTR_MAX: 18446744073709551615
14+ SIZE_MAX: 18446744073709551615
15+ SSIZE_MAX: 9223372036854775807
16+ INT8_MIN: -128
17+ INT8_MAX: 127
18+ INT16_MIN: -32768
19+ INT16_MAX: 32767
20+ INT32_MIN: -2147483648
21+ INT32_MAX: 2147483647
22+ INT64_MIN: -9223372036854775808
23+ INT64_MAX: 9223372036854775807
24+ UINT8_MAX: 255
25+ UINT16_MAX: 65535
26+ UINT32_MAX: 4294967295
27+ UINT64_MAX: 18446744073709551615
Original file line number Diff line number Diff line change 11#include <limits.h>
22#include <stdio.h>
33#include <stdint.h>
4+ #include <inttypes.h>
45
56int main () {
67 printf ("INT_MIN: %d\n" , INT_MIN );
@@ -24,5 +25,22 @@ int main () {
2425 printf ("UINTPTR_MAX: %lu\n" , UINTPTR_MAX );
2526
2627 printf ("SIZE_MAX: %zu\n" , SIZE_MAX );
28+
29+ printf ("SSIZE_MAX: %zu\n" , SSIZE_MAX );
30+
31+ // Fixed width types
32+ printf ("INT8_MIN: %" PRId8 "\n" , INT8_MIN );
33+ printf ("INT8_MAX: %" PRId8 "\n" , INT8_MAX );
34+ printf ("INT16_MIN: %" PRId16 "\n" , INT16_MIN );
35+ printf ("INT16_MAX: %" PRId16 "\n" , INT16_MAX );
36+ printf ("INT32_MIN: %" PRId32 "\n" , INT32_MIN );
37+ printf ("INT32_MAX: %" PRId32 "\n" , INT32_MAX );
38+ printf ("INT64_MIN: %" PRId64 "\n" , INT64_MIN );
39+ printf ("INT64_MAX: %" PRId64 "\n" , INT64_MAX );
40+
41+ printf ("UINT8_MAX: %" PRIu8 "\n" , UINT8_MAX );
42+ printf ("UINT16_MAX: %" PRIu16 "\n" , UINT16_MAX );
43+ printf ("UINT32_MAX: %" PRIu32 "\n" , UINT32_MAX );
44+ printf ("UINT64_MAX: %" PRIu64 "\n" , UINT64_MAX );
2745 return 0 ;
2846}
Original file line number Diff line number Diff line change @@ -12,3 +12,16 @@ INTPTR_MIN: -2147483648
1212INTPTR_MAX: 2147483647
1313UINTPTR_MAX: 4294967295
1414SIZE_MAX: 4294967295
15+ SSIZE_MAX: 2147483647
16+ INT8_MIN: -128
17+ INT8_MAX: 127
18+ INT16_MIN: -32768
19+ INT16_MAX: 32767
20+ INT32_MIN: -2147483648
21+ INT32_MAX: 2147483647
22+ INT64_MIN: -9223372036854775808
23+ INT64_MAX: 9223372036854775807
24+ UINT8_MAX: 255
25+ UINT16_MAX: 65535
26+ UINT32_MAX: 4294967295
27+ UINT64_MAX: 18446744073709551615
Original file line number Diff line number Diff line change @@ -13338,8 +13338,14 @@ def test_tutorial(self):
1333813338 # Ensure that files referenced in Tutorial.rst are buildable
1333913339 self.run_process([EMCC, test_file('hello_world_file.cpp')])
1334013340
13341+ @also_with_wasm64
1334113342 def test_stdint_limits(self):
13342- self.do_other_test('test_stdint_limits.c')
13343+ if self.is_wasm64():
13344+ suffix = '.64'
13345+ else:
13346+ suffix = ''
13347+ print(suffix)
13348+ self.do_other_test('test_stdint_limits.c', out_suffix=suffix)
1334313349
1334413350 def test_legacy_runtime(self):
1334513351 self.set_setting('EXPORTED_FUNCTIONS', ['_malloc', '_main'])
You can’t perform that action at this time.
0 commit comments