aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/library.js27
-rw-r--r--tests/ctype/src.c185
-rw-r--r--tests/runner.py3
3 files changed, 106 insertions, 109 deletions
diff --git a/src/library.js b/src/library.js
index ec64e5f2..62f60ef6 100644
--- a/src/library.js
+++ b/src/library.js
@@ -3755,23 +3755,16 @@ LibraryManager.library = {
var values = [
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,8195,8194,8194,8194,8194,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,24577,49156,49156,49156,
+ 49156,49156,49156,49156,49156,49156,49156,49156,49156,49156,49156,49156,55304,55304,55304,55304,55304,55304,55304,55304,
+ 55304,55304,49156,49156,49156,49156,49156,49156,49156,54536,54536,54536,54536,54536,54536,50440,50440,50440,50440,50440,
+ 50440,50440,50440,50440,50440,50440,50440,50440,50440,50440,50440,50440,50440,50440,50440,49156,49156,49156,49156,49156,
+ 49156,54792,54792,54792,54792,54792,54792,50696,50696,50696,50696,50696,50696,50696,50696,50696,50696,50696,50696,50696,
+ 50696,50696,50696,50696,50696,50696,50696,49156,49156,49156,49156,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,8195,0,8194,0,8194,0,8194,0,8194,0,2,0,2,
- 0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,24577,0,49156,0,49156,0,49156,0,49156,0,49156,0,49156,
- 0,49156,0,49156,0,49156,0,49156,0,49156,0,49156,0,49156,0,49156,0,49156,0,55304,0,55304,0,55304,0,55304,0,55304,0,55304,
- 0,55304,0,55304,0,55304,0,55304,0,49156,0,49156,0,49156,0,49156,0,49156,0,49156,0,49156,0,54536,0,54536,0,54536,0,54536,
- 0,54536,0,54536,0,50440,0,50440,0,50440,0,50440,0,50440,0,50440,0,50440,0,50440,0,50440,0,50440,0,50440,0,50440,0,50440,
- 0,50440,0,50440,0,50440,0,50440,0,50440,0,50440,0,50440,0,49156,0,49156,0,49156,0,49156,0,49156,0,49156,0,54792,0,54792,
- 0,54792,0,54792,0,54792,0,54792,0,50696,0,50696,0,50696,0,50696,0,50696,0,50696,0,50696,0,50696,0,50696,0,50696,0,50696,
- 0,50696,0,50696,0,50696,0,50696,0,50696,0,50696,0,50696,0,50696,0,50696,0,49156,0,49156,0,49156,0,49156,0,2,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
];
- var i16size = {{{ Runtime.getNativeFieldSize('i16') }}};
+ var i16size = {{{ Runtime.getNativeFieldSize('i16', true) }}};
var arr = _malloc(values.length * i16size);
for (var i = 0; i < values.length; i++) {
{{{ makeSetValue('arr', 'i * i16size', 'values[i]', 'i16') }}}
@@ -3799,7 +3792,7 @@ LibraryManager.library = {
224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,
254,255
];
- var i32size = {{{ Runtime.getNativeFieldSize('i32') }}};
+ var i32size = {{{ Runtime.getNativeFieldSize('i32', true) }}};
var arr = _malloc(values.length * i32size);
for (var i = 0; i < values.length; i++) {
{{{ makeSetValue('arr', 'i * i32size', 'values[i]', 'i32') }}}
@@ -3826,7 +3819,7 @@ LibraryManager.library = {
205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,
235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255
];
- var i32size = {{{ Runtime.getNativeFieldSize('i32') }}};
+ var i32size = {{{ Runtime.getNativeFieldSize('i32', true) }}};
var arr = _malloc(values.length * i32size);
for (var i = 0; i < values.length; i++) {
{{{ makeSetValue('arr', 'i * i32size', 'values[i]', 'i32') }}}
diff --git a/tests/ctype/src.c b/tests/ctype/src.c
index c9b66cee..4dce6999 100644
--- a/tests/ctype/src.c
+++ b/tests/ctype/src.c
@@ -62,7 +62,6 @@ int main() {
printf("%s/call(183): %d\n", funcNames[i], funcs[i](183) != 0);
}
- // These will be compiled as macros that use __ctype_b_loc.
printf("\n");
printf("isascii(-45): %d\n", isascii(-45) != 0);
printf("isascii( 10): %d\n", isascii( 10) != 0);
@@ -72,122 +71,124 @@ int main() {
printf("isascii('.'): %d\n", isascii('.') != 0);
printf("isascii(183): %d\n", isascii(183) != 0);
+ // These are manually preprocessed to use __ctype_b_loc. The flags combination
+ // that the test runner uses seems to cause the macro to be ignored.
printf("\n");
- printf("islower(-45): %d\n", islower(-45) != 0);
- printf("islower( 10): %d\n", islower( 10) != 0);
- printf("islower('a'): %d\n", islower('a') != 0);
- printf("islower('A'): %d\n", islower('A') != 0);
- printf("islower('5'): %d\n", islower('5') != 0);
- printf("islower('.'): %d\n", islower('.') != 0);
- printf("islower(183): %d\n", islower(183) != 0);
+ printf("islower(-45): %d\n", ((*__ctype_b_loc ())[(int) ((-45))] & (unsigned short int) _ISlower) != 0);
+ printf("islower( 10): %d\n", ((*__ctype_b_loc ())[(int) ((10))] & (unsigned short int) _ISlower) != 0);
+ printf("islower('a'): %d\n", ((*__ctype_b_loc ())[(int) (('a'))] & (unsigned short int) _ISlower) != 0);
+ printf("islower('A'): %d\n", ((*__ctype_b_loc ())[(int) (('A'))] & (unsigned short int) _ISlower) != 0);
+ printf("islower('5'): %d\n", ((*__ctype_b_loc ())[(int) (('5'))] & (unsigned short int) _ISlower) != 0);
+ printf("islower('.'): %d\n", ((*__ctype_b_loc ())[(int) (('.'))] & (unsigned short int) _ISlower) != 0);
+ printf("islower(183): %d\n", ((*__ctype_b_loc ())[(int) ((183))] & (unsigned short int) _ISlower) != 0);
printf("\n");
- printf("isupper(-45): %d\n", isupper(-45) != 0);
- printf("isupper( 10): %d\n", isupper( 10) != 0);
- printf("isupper('a'): %d\n", isupper('a') != 0);
- printf("isupper('A'): %d\n", isupper('A') != 0);
- printf("isupper('5'): %d\n", isupper('5') != 0);
- printf("isupper('.'): %d\n", isupper('.') != 0);
- printf("isupper(183): %d\n", isupper(183) != 0);
+ printf("isupper(-45): %d\n", ((*__ctype_b_loc ())[(int) ((-45))] & (unsigned short int) _ISupper) != 0);
+ printf("isupper( 10): %d\n", ((*__ctype_b_loc ())[(int) ((10))] & (unsigned short int) _ISupper) != 0);
+ printf("isupper('a'): %d\n", ((*__ctype_b_loc ())[(int) (('a'))] & (unsigned short int) _ISupper) != 0);
+ printf("isupper('A'): %d\n", ((*__ctype_b_loc ())[(int) (('A'))] & (unsigned short int) _ISupper) != 0);
+ printf("isupper('5'): %d\n", ((*__ctype_b_loc ())[(int) (('5'))] & (unsigned short int) _ISupper) != 0);
+ printf("isupper('.'): %d\n", ((*__ctype_b_loc ())[(int) (('.'))] & (unsigned short int) _ISupper) != 0);
+ printf("isupper(183): %d\n", ((*__ctype_b_loc ())[(int) ((183))] & (unsigned short int) _ISupper) != 0);
printf("\n");
- printf("isupper(-45): %d\n", isupper(-45) != 0);
- printf("isupper( 10): %d\n", isupper( 10) != 0);
- printf("isupper('a'): %d\n", isupper('a') != 0);
- printf("isupper('A'): %d\n", isupper('A') != 0);
- printf("isupper('5'): %d\n", isupper('5') != 0);
- printf("isupper('.'): %d\n", isupper('.') != 0);
- printf("isupper(183): %d\n", isupper(183) != 0);
+ printf("isupper(-45): %d\n", ((*__ctype_b_loc ())[(int) ((-45))] & (unsigned short int) _ISupper) != 0);
+ printf("isupper( 10): %d\n", ((*__ctype_b_loc ())[(int) ((10))] & (unsigned short int) _ISupper) != 0);
+ printf("isupper('a'): %d\n", ((*__ctype_b_loc ())[(int) (('a'))] & (unsigned short int) _ISupper) != 0);
+ printf("isupper('A'): %d\n", ((*__ctype_b_loc ())[(int) (('A'))] & (unsigned short int) _ISupper) != 0);
+ printf("isupper('5'): %d\n", ((*__ctype_b_loc ())[(int) (('5'))] & (unsigned short int) _ISupper) != 0);
+ printf("isupper('.'): %d\n", ((*__ctype_b_loc ())[(int) (('.'))] & (unsigned short int) _ISupper) != 0);
+ printf("isupper(183): %d\n", ((*__ctype_b_loc ())[(int) ((183))] & (unsigned short int) _ISupper) != 0);
printf("\n");
- printf("isalpha(-45): %d\n", isalpha(-45) != 0);
- printf("isalpha( 10): %d\n", isalpha( 10) != 0);
- printf("isalpha('a'): %d\n", isalpha('a') != 0);
- printf("isalpha('A'): %d\n", isalpha('A') != 0);
- printf("isalpha('5'): %d\n", isalpha('5') != 0);
- printf("isalpha('.'): %d\n", isalpha('.') != 0);
- printf("isalpha(183): %d\n", isalpha(183) != 0);
+ printf("isalpha(-45): %d\n", ((*__ctype_b_loc ())[(int) ((-45))] & (unsigned short int) _ISalpha) != 0);
+ printf("isalpha( 10): %d\n", ((*__ctype_b_loc ())[(int) ((10))] & (unsigned short int) _ISalpha) != 0);
+ printf("isalpha('a'): %d\n", ((*__ctype_b_loc ())[(int) (('a'))] & (unsigned short int) _ISalpha) != 0);
+ printf("isalpha('A'): %d\n", ((*__ctype_b_loc ())[(int) (('A'))] & (unsigned short int) _ISalpha) != 0);
+ printf("isalpha('5'): %d\n", ((*__ctype_b_loc ())[(int) (('5'))] & (unsigned short int) _ISalpha) != 0);
+ printf("isalpha('.'): %d\n", ((*__ctype_b_loc ())[(int) (('.'))] & (unsigned short int) _ISalpha) != 0);
+ printf("isalpha(183): %d\n", ((*__ctype_b_loc ())[(int) ((183))] & (unsigned short int) _ISalpha) != 0);
printf("\n");
- printf("isdigit(-45): %d\n", isdigit(-45) != 0);
- printf("isdigit( 10): %d\n", isdigit( 10) != 0);
- printf("isdigit('a'): %d\n", isdigit('a') != 0);
- printf("isdigit('A'): %d\n", isdigit('A') != 0);
- printf("isdigit('5'): %d\n", isdigit('5') != 0);
- printf("isdigit('.'): %d\n", isdigit('.') != 0);
- printf("isdigit(183): %d\n", isdigit(183) != 0);
+ printf("isdigit(-45): %d\n", ((*__ctype_b_loc ())[(int) ((-45))] & (unsigned short int) _ISdigit) != 0);
+ printf("isdigit( 10): %d\n", ((*__ctype_b_loc ())[(int) ((10))] & (unsigned short int) _ISdigit) != 0);
+ printf("isdigit('a'): %d\n", ((*__ctype_b_loc ())[(int) (('a'))] & (unsigned short int) _ISdigit) != 0);
+ printf("isdigit('A'): %d\n", ((*__ctype_b_loc ())[(int) (('A'))] & (unsigned short int) _ISdigit) != 0);
+ printf("isdigit('5'): %d\n", ((*__ctype_b_loc ())[(int) (('5'))] & (unsigned short int) _ISdigit) != 0);
+ printf("isdigit('.'): %d\n", ((*__ctype_b_loc ())[(int) (('.'))] & (unsigned short int) _ISdigit) != 0);
+ printf("isdigit(183): %d\n", ((*__ctype_b_loc ())[(int) ((183))] & (unsigned short int) _ISdigit) != 0);
printf("\n");
- printf("isxdigit(-45): %d\n", isxdigit(-45) != 0);
- printf("isxdigit( 10): %d\n", isxdigit( 10) != 0);
- printf("isxdigit('a'): %d\n", isxdigit('a') != 0);
- printf("isxdigit('A'): %d\n", isxdigit('A') != 0);
- printf("isxdigit('5'): %d\n", isxdigit('5') != 0);
- printf("isxdigit('.'): %d\n", isxdigit('.') != 0);
- printf("isxdigit(183): %d\n", isxdigit(183) != 0);
+ printf("isxdigit(-45): %d\n", ((*__ctype_b_loc ())[(int) ((-45))] & (unsigned short int) _ISxdigit) != 0);
+ printf("isxdigit( 10): %d\n", ((*__ctype_b_loc ())[(int) ((10))] & (unsigned short int) _ISxdigit) != 0);
+ printf("isxdigit('a'): %d\n", ((*__ctype_b_loc ())[(int) (('a'))] & (unsigned short int) _ISxdigit) != 0);
+ printf("isxdigit('A'): %d\n", ((*__ctype_b_loc ())[(int) (('A'))] & (unsigned short int) _ISxdigit) != 0);
+ printf("isxdigit('5'): %d\n", ((*__ctype_b_loc ())[(int) (('5'))] & (unsigned short int) _ISxdigit) != 0);
+ printf("isxdigit('.'): %d\n", ((*__ctype_b_loc ())[(int) (('.'))] & (unsigned short int) _ISxdigit) != 0);
+ printf("isxdigit(183): %d\n", ((*__ctype_b_loc ())[(int) ((183))] & (unsigned short int) _ISxdigit) != 0);
printf("\n");
- printf("isalnum(-45): %d\n", isalnum(-45) != 0);
- printf("isalnum( 10): %d\n", isalnum( 10) != 0);
- printf("isalnum('a'): %d\n", isalnum('a') != 0);
- printf("isalnum('A'): %d\n", isalnum('A') != 0);
- printf("isalnum('5'): %d\n", isalnum('5') != 0);
- printf("isalnum('.'): %d\n", isalnum('.') != 0);
- printf("isalnum(183): %d\n", isalnum(183) != 0);
+ printf("isalnum(-45): %d\n", ((*__ctype_b_loc ())[(int) ((-45))] & (unsigned short int) _ISalnum) != 0);
+ printf("isalnum( 10): %d\n", ((*__ctype_b_loc ())[(int) ((10))] & (unsigned short int) _ISalnum) != 0);
+ printf("isalnum('a'): %d\n", ((*__ctype_b_loc ())[(int) (('a'))] & (unsigned short int) _ISalnum) != 0);
+ printf("isalnum('A'): %d\n", ((*__ctype_b_loc ())[(int) (('A'))] & (unsigned short int) _ISalnum) != 0);
+ printf("isalnum('5'): %d\n", ((*__ctype_b_loc ())[(int) (('5'))] & (unsigned short int) _ISalnum) != 0);
+ printf("isalnum('.'): %d\n", ((*__ctype_b_loc ())[(int) (('.'))] & (unsigned short int) _ISalnum) != 0);
+ printf("isalnum(183): %d\n", ((*__ctype_b_loc ())[(int) ((183))] & (unsigned short int) _ISalnum) != 0);
printf("\n");
- printf("ispunct(-45): %d\n", ispunct(-45) != 0);
- printf("ispunct( 10): %d\n", ispunct( 10) != 0);
- printf("ispunct('a'): %d\n", ispunct('a') != 0);
- printf("ispunct('A'): %d\n", ispunct('A') != 0);
- printf("ispunct('5'): %d\n", ispunct('5') != 0);
- printf("ispunct('.'): %d\n", ispunct('.') != 0);
- printf("ispunct(183): %d\n", ispunct(183) != 0);
+ printf("ispunct(-45): %d\n", ((*__ctype_b_loc ())[(int) ((-45))] & (unsigned short int) _ISpunct) != 0);
+ printf("ispunct( 10): %d\n", ((*__ctype_b_loc ())[(int) ((10))] & (unsigned short int) _ISpunct) != 0);
+ printf("ispunct('a'): %d\n", ((*__ctype_b_loc ())[(int) (('a'))] & (unsigned short int) _ISpunct) != 0);
+ printf("ispunct('A'): %d\n", ((*__ctype_b_loc ())[(int) (('A'))] & (unsigned short int) _ISpunct) != 0);
+ printf("ispunct('5'): %d\n", ((*__ctype_b_loc ())[(int) (('5'))] & (unsigned short int) _ISpunct) != 0);
+ printf("ispunct('.'): %d\n", ((*__ctype_b_loc ())[(int) (('.'))] & (unsigned short int) _ISpunct) != 0);
+ printf("ispunct(183): %d\n", ((*__ctype_b_loc ())[(int) ((183))] & (unsigned short int) _ISpunct) != 0);
printf("\n");
- printf("isspace(-45): %d\n", isspace(-45) != 0);
- printf("isspace( 10): %d\n", isspace( 10) != 0);
- printf("isspace('a'): %d\n", isspace('a') != 0);
- printf("isspace('A'): %d\n", isspace('A') != 0);
- printf("isspace('5'): %d\n", isspace('5') != 0);
- printf("isspace('.'): %d\n", isspace('.') != 0);
- printf("isspace(183): %d\n", isspace(183) != 0);
+ printf("isspace(-45): %d\n", ((*__ctype_b_loc ())[(int) ((-45))] & (unsigned short int) _ISspace) != 0);
+ printf("isspace( 10): %d\n", ((*__ctype_b_loc ())[(int) ((10))] & (unsigned short int) _ISspace) != 0);
+ printf("isspace('a'): %d\n", ((*__ctype_b_loc ())[(int) (('a'))] & (unsigned short int) _ISspace) != 0);
+ printf("isspace('A'): %d\n", ((*__ctype_b_loc ())[(int) (('A'))] & (unsigned short int) _ISspace) != 0);
+ printf("isspace('5'): %d\n", ((*__ctype_b_loc ())[(int) (('5'))] & (unsigned short int) _ISspace) != 0);
+ printf("isspace('.'): %d\n", ((*__ctype_b_loc ())[(int) (('.'))] & (unsigned short int) _ISspace) != 0);
+ printf("isspace(183): %d\n", ((*__ctype_b_loc ())[(int) ((183))] & (unsigned short int) _ISspace) != 0);
printf("\n");
- printf("isblank(-45): %d\n", isblank(-45) != 0);
- printf("isblank( 10): %d\n", isblank( 10) != 0);
- printf("isblank('a'): %d\n", isblank('a') != 0);
- printf("isblank('A'): %d\n", isblank('A') != 0);
- printf("isblank('5'): %d\n", isblank('5') != 0);
- printf("isblank('.'): %d\n", isblank('.') != 0);
- printf("isblank(183): %d\n", isblank(183) != 0);
+ printf("isblank(-45): %d\n", ((*__ctype_b_loc ())[(int) ((-45))] & (unsigned short int) _ISblank) != 0);
+ printf("isblank( 10): %d\n", ((*__ctype_b_loc ())[(int) ((10))] & (unsigned short int) _ISblank) != 0);
+ printf("isblank('a'): %d\n", ((*__ctype_b_loc ())[(int) (('a'))] & (unsigned short int) _ISblank) != 0);
+ printf("isblank('A'): %d\n", ((*__ctype_b_loc ())[(int) (('A'))] & (unsigned short int) _ISblank) != 0);
+ printf("isblank('5'): %d\n", ((*__ctype_b_loc ())[(int) (('5'))] & (unsigned short int) _ISblank) != 0);
+ printf("isblank('.'): %d\n", ((*__ctype_b_loc ())[(int) (('.'))] & (unsigned short int) _ISblank) != 0);
+ printf("isblank(183): %d\n", ((*__ctype_b_loc ())[(int) ((183))] & (unsigned short int) _ISblank) != 0);
printf("\n");
- printf("iscntrl(-45): %d\n", iscntrl(-45) != 0);
- printf("iscntrl( 10): %d\n", iscntrl( 10) != 0);
- printf("iscntrl('a'): %d\n", iscntrl('a') != 0);
- printf("iscntrl('A'): %d\n", iscntrl('A') != 0);
- printf("iscntrl('5'): %d\n", iscntrl('5') != 0);
- printf("iscntrl('.'): %d\n", iscntrl('.') != 0);
- printf("iscntrl(183): %d\n", iscntrl(183) != 0);
+ printf("iscntrl(-45): %d\n", ((*__ctype_b_loc ())[(int) ((-45))] & (unsigned short int) _IScntrl) != 0);
+ printf("iscntrl( 10): %d\n", ((*__ctype_b_loc ())[(int) ((10))] & (unsigned short int) _IScntrl) != 0);
+ printf("iscntrl('a'): %d\n", ((*__ctype_b_loc ())[(int) (('a'))] & (unsigned short int) _IScntrl) != 0);
+ printf("iscntrl('A'): %d\n", ((*__ctype_b_loc ())[(int) (('A'))] & (unsigned short int) _IScntrl) != 0);
+ printf("iscntrl('5'): %d\n", ((*__ctype_b_loc ())[(int) (('5'))] & (unsigned short int) _IScntrl) != 0);
+ printf("iscntrl('.'): %d\n", ((*__ctype_b_loc ())[(int) (('.'))] & (unsigned short int) _IScntrl) != 0);
+ printf("iscntrl(183): %d\n", ((*__ctype_b_loc ())[(int) ((183))] & (unsigned short int) _IScntrl) != 0);
printf("\n");
- printf("isprint(-45): %d\n", isprint(-45) != 0);
- printf("isprint( 10): %d\n", isprint( 10) != 0);
- printf("isprint('a'): %d\n", isprint('a') != 0);
- printf("isprint('A'): %d\n", isprint('A') != 0);
- printf("isprint('5'): %d\n", isprint('5') != 0);
- printf("isprint('.'): %d\n", isprint('.') != 0);
- printf("isprint(183): %d\n", isprint(183) != 0);
+ printf("isprint(-45): %d\n", ((*__ctype_b_loc ())[(int) ((-45))] & (unsigned short int) _ISprint) != 0);
+ printf("isprint( 10): %d\n", ((*__ctype_b_loc ())[(int) ((10))] & (unsigned short int) _ISprint) != 0);
+ printf("isprint('a'): %d\n", ((*__ctype_b_loc ())[(int) (('a'))] & (unsigned short int) _ISprint) != 0);
+ printf("isprint('A'): %d\n", ((*__ctype_b_loc ())[(int) (('A'))] & (unsigned short int) _ISprint) != 0);
+ printf("isprint('5'): %d\n", ((*__ctype_b_loc ())[(int) (('5'))] & (unsigned short int) _ISprint) != 0);
+ printf("isprint('.'): %d\n", ((*__ctype_b_loc ())[(int) (('.'))] & (unsigned short int) _ISprint) != 0);
+ printf("isprint(183): %d\n", ((*__ctype_b_loc ())[(int) ((183))] & (unsigned short int) _ISprint) != 0);
printf("\n");
- printf("isgraph(-45): %d\n", isgraph(-45) != 0);
- printf("isgraph( 10): %d\n", isgraph( 10) != 0);
- printf("isgraph('a'): %d\n", isgraph('a') != 0);
- printf("isgraph('A'): %d\n", isgraph('A') != 0);
- printf("isgraph('5'): %d\n", isgraph('5') != 0);
- printf("isgraph('.'): %d\n", isgraph('.') != 0);
- printf("isgraph(183): %d\n", isgraph(183) != 0);
+ printf("isgraph(-45): %d\n", ((*__ctype_b_loc ())[(int) ((-45))] & (unsigned short int) _ISgraph) != 0);
+ printf("isgraph( 10): %d\n", ((*__ctype_b_loc ())[(int) ((10))] & (unsigned short int) _ISgraph) != 0);
+ printf("isgraph('a'): %d\n", ((*__ctype_b_loc ())[(int) (('a'))] & (unsigned short int) _ISgraph) != 0);
+ printf("isgraph('A'): %d\n", ((*__ctype_b_loc ())[(int) (('A'))] & (unsigned short int) _ISgraph) != 0);
+ printf("isgraph('5'): %d\n", ((*__ctype_b_loc ())[(int) (('5'))] & (unsigned short int) _ISgraph) != 0);
+ printf("isgraph('.'): %d\n", ((*__ctype_b_loc ())[(int) (('.'))] & (unsigned short int) _ISgraph) != 0);
+ printf("isgraph(183): %d\n", ((*__ctype_b_loc ())[(int) ((183))] & (unsigned short int) _ISgraph) != 0);
return 0;
}
diff --git a/tests/runner.py b/tests/runner.py
index 148eb106..e7659760 100644
--- a/tests/runner.py
+++ b/tests/runner.py
@@ -2634,9 +2634,12 @@ if 'benchmark' not in sys.argv:
self.do_test(src, re.sub('(^|\n)\s+', '\\1', expected))
def test_ctype(self):
+ # The bit fiddling done by the macros using __ctype_b_loc requires this.
+ global CORRECT_SIGNS; CORRECT_SIGNS = 1
src = open(path_from_root('tests', 'ctype', 'src.c'), 'r').read()
expected = open(path_from_root('tests', 'ctype', 'output.txt'), 'r').read()
self.do_test(src, expected)
+ CORRECT_SIGNS = 0
### 'Big' tests