From 34462c28dffca29f115fb3bef4364eaff5a3ec43 Mon Sep 17 00:00:00 2001 From: Thomas Koenig Date: Sun, 28 Jan 2007 10:44:47 +0000 Subject: [PATCH] re PR fortran/30389 ([4.1 only] ACHAR() intrinsic gives erroneous errors in constant-folding.) 2007-01-28 Thomas Koenig PR libfortran/30389 * gfortran.h: Remove gfc_simplify_init_1. * arith.h: Remove third argument from gfc_compare_string. * arith.c(gfc_compare_expression): Remove third argument from call to gfc_compare_string. (gfc_compare_string): Remove third argument xcoll_table. Remove use of xcoll_table. * misc.c(gfc_init_1): Remove call to gfc_simplify_init_1. * simplify.c(ascii_table): Remove. (xascii_table): Likewise. (gfc_simplify_achar): ICE if extract_int fails. Remove use of ascii_table. Warn if -Wsurprising and value < 0 or > 127. (gfc_simplify_char): ICE if extract_int fails. Error if value < 0 or value > 255. (gfc_simplify_iachar): Remove use of xascii_table. Char values outside of 0..255 are an ICE. (gfc_simplify_lge): Remove use of xascii_table. (gfc_simplify_lgt): Likewise. (gfc_simplify_lle): Likewise. (gfc_simplify_llt): Likewise. (invert_table): Remove. (gfc_simplify_init_1): Remove. 2007-01-28 Thomas Koenig PR libfortran/30389 * gfortran.dg/achar_2.f90: New test. * gfortran.dg/achar_3.f90: New test. From-SVN: r121255 --- gcc/fortran/ChangeLog | 25 + gcc/fortran/arith.c | 14 +- gcc/fortran/arith.h | 2 +- gcc/fortran/gfortran.h | 3 - gcc/fortran/misc.c | 1 - gcc/fortran/simplify.c | 111 +- gcc/testsuite/ChangeLog | 6 + gcc/testsuite/gfortran.dg/achar_2.f90 | 2026 +++++++++++++++++++++++++ gcc/testsuite/gfortran.dg/achar_3.f90 | 9 + 9 files changed, 2105 insertions(+), 92 deletions(-) create mode 100644 gcc/testsuite/gfortran.dg/achar_2.f90 create mode 100644 gcc/testsuite/gfortran.dg/achar_3.f90 diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 963031d3ce2..12287bf5783 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,28 @@ +2007-01-28 Thomas Koenig + + PR libfortran/30389 + * gfortran.h: Remove gfc_simplify_init_1. + * arith.h: Remove third argument from gfc_compare_string. + * arith.c(gfc_compare_expression): Remove third argument + from call to gfc_compare_string. + (gfc_compare_string): Remove third argument xcoll_table. + Remove use of xcoll_table. + * misc.c(gfc_init_1): Remove call to gfc_simplify_init_1. + * simplify.c(ascii_table): Remove. + (xascii_table): Likewise. + (gfc_simplify_achar): ICE if extract_int fails. Remove use of + ascii_table. Warn if -Wsurprising and value < 0 or > 127. + (gfc_simplify_char): ICE if extract_int fails. Error if + value < 0 or value > 255. + (gfc_simplify_iachar): Remove use of xascii_table. + Char values outside of 0..255 are an ICE. + (gfc_simplify_lge): Remove use of xascii_table. + (gfc_simplify_lgt): Likewise. + (gfc_simplify_lle): Likewise. + (gfc_simplify_llt): Likewise. + (invert_table): Remove. + (gfc_simplify_init_1): Remove. + 2007-01-27 Roger Sayle * trans-stmt.c (forall_info): Replace the next_nest and outer diff --git a/gcc/fortran/arith.c b/gcc/fortran/arith.c index f92de48c20d..39bc4b97d80 100644 --- a/gcc/fortran/arith.c +++ b/gcc/fortran/arith.c @@ -1055,7 +1055,7 @@ gfc_compare_expr (gfc_expr *op1, gfc_expr *op2) break; case BT_CHARACTER: - rc = gfc_compare_string (op1, op2, NULL); + rc = gfc_compare_string (op1, op2); break; case BT_LOGICAL: @@ -1083,11 +1083,11 @@ compare_complex (gfc_expr *op1, gfc_expr *op2) /* Given two constant strings and the inverse collating sequence, compare the - strings. We return -1 for a < b, 0 for a == b and 1 for a > b. If the - xcoll_table is NULL, we use the processor's default collating sequence. */ + strings. We return -1 for a < b, 0 for a == b and 1 for a > b. + We use the processor's default collating sequence. */ int -gfc_compare_string (gfc_expr *a, gfc_expr *b, const int *xcoll_table) +gfc_compare_string (gfc_expr *a, gfc_expr *b) { int len, alen, blen, i, ac, bc; @@ -1103,12 +1103,6 @@ gfc_compare_string (gfc_expr *a, gfc_expr *b, const int *xcoll_table) ac = (unsigned char) ((i < alen) ? a->value.character.string[i] : ' '); bc = (unsigned char) ((i < blen) ? b->value.character.string[i] : ' '); - if (xcoll_table != NULL) - { - ac = xcoll_table[ac]; - bc = xcoll_table[bc]; - } - if (ac < bc) return -1; if (ac > bc) diff --git a/gcc/fortran/arith.h b/gcc/fortran/arith.h index 60fd2e0e3db..04d37dce2e2 100644 --- a/gcc/fortran/arith.h +++ b/gcc/fortran/arith.h @@ -40,7 +40,7 @@ gfc_expr *gfc_constant_result (bt, int, locus *); arith gfc_range_check (gfc_expr *); int gfc_compare_expr (gfc_expr *, gfc_expr *); -int gfc_compare_string (gfc_expr *, gfc_expr *, const int *); +int gfc_compare_string (gfc_expr *, gfc_expr *); /* Constant folding for gfc_expr trees. */ gfc_expr *gfc_uplus (gfc_expr * op); diff --git a/gcc/fortran/gfortran.h b/gcc/fortran/gfortran.h index 05b7ebc4243..b4beef9f0f5 100644 --- a/gcc/fortran/gfortran.h +++ b/gcc/fortran/gfortran.h @@ -1970,9 +1970,6 @@ gfc_intrinsic_sym *gfc_find_function (const char *); match gfc_intrinsic_func_interface (gfc_expr *, int); match gfc_intrinsic_sub_interface (gfc_code *, int); -/* simplify.c */ -void gfc_simplify_init_1 (void); - /* match.c -- FIXME */ void gfc_free_iterator (gfc_iterator *, int); void gfc_free_forall_iterator (gfc_forall_iterator *); diff --git a/gcc/fortran/misc.c b/gcc/fortran/misc.c index bdc515c6094..c0150edda3b 100644 --- a/gcc/fortran/misc.c +++ b/gcc/fortran/misc.c @@ -249,7 +249,6 @@ gfc_init_1 (void) gfc_scanner_init_1 (); gfc_arith_init_1 (); gfc_intrinsic_init_1 (); - gfc_simplify_init_1 (); } diff --git a/gcc/fortran/simplify.c b/gcc/fortran/simplify.c index 612bfe3072d..0ceb0227af6 100644 --- a/gcc/fortran/simplify.c +++ b/gcc/fortran/simplify.c @@ -64,31 +64,6 @@ gfc_expr gfc_bad_expr; everything is reasonably straight-forward. The Standard, chapter 13 is the best comment you'll find for this file anyway. */ -/* Static table for converting non-ascii character sets to ascii. - The xascii_table[] is the inverse table. */ - -static int ascii_table[256] = { - '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', - '\b', '\t', '\n', '\v', '\0', '\r', '\0', '\0', - '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', - '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', - ' ', '!', '"', '#', '$', '%', '&', '\'', - '(', ')', '*', '+', ',', '-', '.', '/', - '0', '1', '2', '3', '4', '5', '6', '7', - '8', '9', ':', ';', '<', '=', '>', '?', - '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', - 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', - 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', - 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', - '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', - 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', - 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', - 'x', 'y', 'z', '{', '|', '}', '~', '\?' -}; - -static int xascii_table[256]; - - /* Range checks an expression node. If all goes well, returns the node, otherwise returns &gfc_bad_expr and frees the node. */ @@ -266,24 +241,27 @@ gfc_simplify_abs (gfc_expr *e) return result; } +/* We use the processor's collating sequence, because all + sytems that gfortran currently works on are ASCII. */ gfc_expr * gfc_simplify_achar (gfc_expr *e) { gfc_expr *result; - int index; + int c; + const char *ch; if (e->expr_type != EXPR_CONSTANT) return NULL; - /* We cannot assume that the native character set is ASCII in this - function. */ - if (gfc_extract_int (e, &index) != NULL || index < 0 || index > 127) - { - gfc_error ("Extended ASCII not implemented: argument of ACHAR at %L " - "must be between 0 and 127", &e->where); - return &gfc_bad_expr; - } + ch = gfc_extract_int (e, &c); + + if (ch != NULL) + gfc_internal_error ("gfc_simplify_achar: %s", ch); + + if (gfc_option.warn_surprising && (c < 0 || c > 127)) + gfc_warning ("Argument of ACHAR function at %L outside of range [0,127]", + &e->where); result = gfc_constant_result (BT_CHARACTER, gfc_default_character_kind, &e->where); @@ -291,7 +269,7 @@ gfc_simplify_achar (gfc_expr *e) result->value.character.string = gfc_getmem (2); result->value.character.length = 1; - result->value.character.string[0] = ascii_table[index]; + result->value.character.string[0] = c; result->value.character.string[1] = '\0'; /* For debugger */ return result; } @@ -700,6 +678,7 @@ gfc_simplify_char (gfc_expr *e, gfc_expr *k) { gfc_expr *result; int c, kind; + const char *ch; kind = get_kind (BT_CHARACTER, k, "CHAR", gfc_default_character_kind); if (kind == -1) @@ -708,11 +687,14 @@ gfc_simplify_char (gfc_expr *e, gfc_expr *k) if (e->expr_type != EXPR_CONSTANT) return NULL; - if (gfc_extract_int (e, &c) != NULL || c < 0 || c > UCHAR_MAX) - { - gfc_error ("Bad character in CHAR function at %L", &e->where); - return &gfc_bad_expr; - } + ch = gfc_extract_int (e, &c); + + if (ch != NULL) + gfc_internal_error ("gfc_simplify_char: %s", ch); + + if (c < 0 || c > UCHAR_MAX) + gfc_error ("Argument of CHAR function at %L outside of range [0,255]", + &e->where); result = gfc_constant_result (BT_CHARACTER, kind, &e->where); @@ -1212,6 +1194,8 @@ gfc_simplify_huge (gfc_expr *e) return result; } +/* We use the processor's collating sequence, because all + sytems that gfortran currently works on are ASCII. */ gfc_expr * gfc_simplify_iachar (gfc_expr *e) @@ -1228,7 +1212,11 @@ gfc_simplify_iachar (gfc_expr *e) return &gfc_bad_expr; } - index = xascii_table[(int) e->value.character.string[0] & 0xFF]; + index = (unsigned char) e->value.character.string[0]; + + if (gfc_option.warn_surprising && index > 127) + gfc_warning ("Argument of IACHAR function at %L outside of range 0..127", + &e->where); result = gfc_int_expr (index); result->where = e->where; @@ -1409,11 +1397,7 @@ gfc_simplify_ichar (gfc_expr *e) index = (unsigned char) e->value.character.string[0]; if (index < 0 || index > UCHAR_MAX) - { - gfc_error ("Argument of ICHAR at %L out of range of this processor", - &e->where); - return &gfc_bad_expr; - } + gfc_internal_error("Argument of ICHAR at %L out of range", &e->where); result = gfc_int_expr (index); result->where = e->where; @@ -2126,8 +2110,7 @@ gfc_simplify_lge (gfc_expr *a, gfc_expr *b) if (a->expr_type != EXPR_CONSTANT || b->expr_type != EXPR_CONSTANT) return NULL; - return gfc_logical_expr (gfc_compare_string (a, b, xascii_table) >= 0, - &a->where); + return gfc_logical_expr (gfc_compare_string (a, b) >= 0, &a->where); } @@ -2137,7 +2120,7 @@ gfc_simplify_lgt (gfc_expr *a, gfc_expr *b) if (a->expr_type != EXPR_CONSTANT || b->expr_type != EXPR_CONSTANT) return NULL; - return gfc_logical_expr (gfc_compare_string (a, b, xascii_table) > 0, + return gfc_logical_expr (gfc_compare_string (a, b) > 0, &a->where); } @@ -2148,8 +2131,7 @@ gfc_simplify_lle (gfc_expr *a, gfc_expr *b) if (a->expr_type != EXPR_CONSTANT || b->expr_type != EXPR_CONSTANT) return NULL; - return gfc_logical_expr (gfc_compare_string (a, b, xascii_table) <= 0, - &a->where); + return gfc_logical_expr (gfc_compare_string (a, b) <= 0, &a->where); } @@ -2159,8 +2141,7 @@ gfc_simplify_llt (gfc_expr *a, gfc_expr *b) if (a->expr_type != EXPR_CONSTANT || b->expr_type != EXPR_CONSTANT) return NULL; - return gfc_logical_expr (gfc_compare_string (a, b, xascii_table) < 0, - &a->where); + return gfc_logical_expr (gfc_compare_string (a, b) < 0, &a->where); } @@ -4083,27 +4064,3 @@ gfc_convert_constant (gfc_expr *e, bt type, int kind) return result; } - - -/****************** Helper functions ***********************/ - -/* Given a collating table, create the inverse table. */ - -static void -invert_table (const int *table, int *xtable) -{ - int i; - - for (i = 0; i < 256; i++) - xtable[i] = 0; - - for (i = 0; i < 256; i++) - xtable[table[i]] = i; -} - - -void -gfc_simplify_init_1 (void) -{ - invert_table (ascii_table, xascii_table); -} diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7278fb7fa40..c5769557ae3 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2007-01-28 Thomas Koenig + + PR libfortran/30389 + * gfortran.dg/achar_2.f90: New test. + * gfortran.dg/achar_3.f90: New test. + 2007-01-27 Ian Lance Taylor * gcc.dg/strict-overflow-1.c: New test. diff --git a/gcc/testsuite/gfortran.dg/achar_2.f90 b/gcc/testsuite/gfortran.dg/achar_2.f90 new file mode 100644 index 00000000000..fa3a258b22f --- /dev/null +++ b/gcc/testsuite/gfortran.dg/achar_2.f90 @@ -0,0 +1,2026 @@ +! { dg-do run } +! PR 30389 - we now treat ACHAR equivalent to CHAR (except for +! out of range-values) and IACHAR equivalent to ICHAR. +program main + integer :: i + character(len=1) :: c + if (iachar(achar(1)) /= 1) call abort + if (iachar ("")/= 1) call abort + if (achar (1) /= "") call abort + if ("" /= achar ( ichar ( ""))) call abort + i = 1 + c = "" + if (achar(i) /= "") call abort + if (iachar(c) /= iachar("")) call abort + if (iachar(achar(2)) /= 2) call abort + if (iachar ("")/= 2) call abort + if (achar (2) /= "") call abort + if ("" /= achar ( ichar ( ""))) call abort + i = 2 + c = "" + if (achar(i) /= "") call abort + if (iachar(c) /= iachar("")) call abort + if (iachar(achar(3)) /= 3) call abort + if (iachar ("")/= 3) call abort + if (achar (3) /= "") call abort + if ("" /= achar ( ichar ( ""))) call abort + i = 3 + c = "" + if (achar(i) /= "") call abort + if (iachar(c) /= iachar("")) call abort + if (iachar(achar(4)) /= 4) call abort + if (iachar ("")/= 4) call abort + if (achar (4) /= "") call abort + if ("" /= achar ( ichar ( ""))) call abort + i = 4 + c = "" + if (achar(i) /= "") call abort + if (iachar(c) /= iachar("")) call abort + if (iachar(achar(5)) /= 5) call abort + if (iachar ("")/= 5) call abort + if (achar (5) /= "") call abort + if ("" /= achar ( ichar ( ""))) call abort + i = 5 + c = "" + if (achar(i) /= "") call abort + if (iachar(c) /= iachar("")) call abort + if (iachar(achar(6)) /= 6) call abort + if (iachar ("")/= 6) call abort + if (achar (6) /= "") call abort + if ("" /= achar ( ichar ( ""))) call abort + i = 6 + c = "" + if (achar(i) /= "") call abort + if (iachar(c) /= iachar("")) call abort + if (iachar(achar(7)) /= 7) call abort + if (iachar ("")/= 7) call abort + if (achar (7) /= "") call abort + if ("" /= achar ( ichar ( ""))) call abort + i = 7 + c = "" + if (achar(i) /= "") call abort + if (iachar(c) /= iachar("")) call abort + if (iachar(achar(8)) /= 8) call abort + if (iachar ("")/= 8) call abort + if (achar (8) /= "") call abort + if ("" /= achar ( ichar ( ""))) call abort + i = 8 + c = "" + if (achar(i) /= "") call abort + if (iachar(c) /= iachar("")) call abort + if (iachar(achar(9)) /= 9) call abort + if (iachar (" ")/= 9) call abort + if (achar (9) /= " ") call abort + if (" " /= achar ( ichar ( " "))) call abort + i = 9 + c = " " + if (achar(i) /= " ") call abort + if (iachar(c) /= iachar(" ")) call abort + if (iachar(achar(10)) /= 10) call abort + if (iachar(achar(11)) /= 11) call abort + if (iachar (" ")/= 11) call abort + if (achar (11) /= " ") call abort + if (" " /= achar ( ichar ( " "))) call abort + i = 11 + c = " " + if (achar(i) /= " ") call abort + if (iachar(c) /= iachar(" ")) call abort + if (iachar(achar(12)) /= 12) call abort + if (iachar (" ")/= 12) call abort + if (achar (12) /= " ") call abort + if (" " /= achar ( ichar ( " "))) call abort + i = 12 + c = " " + if (achar(i) /= " ") call abort + if (iachar(c) /= iachar(" ")) call abort + if (iachar(achar(13)) /= 13) call abort + if (iachar(achar(14)) /= 14) call abort + if (iachar ("")/= 14) call abort + if (achar (14) /= "") call abort + if ("" /= achar ( ichar ( ""))) call abort + i = 14 + c = "" + if (achar(i) /= "") call abort + if (iachar(c) /= iachar("")) call abort + if (iachar(achar(15)) /= 15) call abort + if (iachar ("")/= 15) call abort + if (achar (15) /= "") call abort + if ("" /= achar ( ichar ( ""))) call abort + i = 15 + c = "" + if (achar(i) /= "") call abort + if (iachar(c) /= iachar("")) call abort + if (iachar(achar(16)) /= 16) call abort + if (iachar ("")/= 16) call abort + if (achar (16) /= "") call abort + if ("" /= achar ( ichar ( ""))) call abort + i = 16 + c = "" + if (achar(i) /= "") call abort + if (iachar(c) /= iachar("")) call abort + if (iachar(achar(17)) /= 17) call abort + if (iachar ("")/= 17) call abort + if (achar (17) /= "") call abort + if ("" /= achar ( ichar ( ""))) call abort + i = 17 + c = "" + if (achar(i) /= "") call abort + if (iachar(c) /= iachar("")) call abort + if (iachar(achar(18)) /= 18) call abort + if (iachar ("")/= 18) call abort + if (achar (18) /= "") call abort + if ("" /= achar ( ichar ( ""))) call abort + i = 18 + c = "" + if (achar(i) /= "") call abort + if (iachar(c) /= iachar("")) call abort + if (iachar(achar(19)) /= 19) call abort + if (iachar ("")/= 19) call abort + if (achar (19) /= "") call abort + if ("" /= achar ( ichar ( ""))) call abort + i = 19 + c = "" + if (achar(i) /= "") call abort + if (iachar(c) /= iachar("")) call abort + if (iachar(achar(20)) /= 20) call abort + if (iachar ("")/= 20) call abort + if (achar (20) /= "") call abort + if ("" /= achar ( ichar ( ""))) call abort + i = 20 + c = "" + if (achar(i) /= "") call abort + if (iachar(c) /= iachar("")) call abort + if (iachar(achar(21)) /= 21) call abort + if (iachar ("")/= 21) call abort + if (achar (21) /= "") call abort + if ("" /= achar ( ichar ( ""))) call abort + i = 21 + c = "" + if (achar(i) /= "") call abort + if (iachar(c) /= iachar("")) call abort + if (iachar(achar(22)) /= 22) call abort + if (iachar ("")/= 22) call abort + if (achar (22) /= "") call abort + if ("" /= achar ( ichar ( ""))) call abort + i = 22 + c = "" + if (achar(i) /= "") call abort + if (iachar(c) /= iachar("")) call abort + if (iachar(achar(23)) /= 23) call abort + if (iachar ("")/= 23) call abort + if (achar (23) /= "") call abort + if ("" /= achar ( ichar ( ""))) call abort + i = 23 + c = "" + if (achar(i) /= "") call abort + if (iachar(c) /= iachar("")) call abort + if (iachar(achar(24)) /= 24) call abort + if (iachar ("")/= 24) call abort + if (achar (24) /= "") call abort + if ("" /= achar ( ichar ( ""))) call abort + i = 24 + c = "" + if (achar(i) /= "") call abort + if (iachar(c) /= iachar("")) call abort + if (iachar(achar(25)) /= 25) call abort + if (iachar ("")/= 25) call abort + if (achar (25) /= "") call abort + if ("" /= achar ( ichar ( ""))) call abort + i = 25 + c = "" + if (achar(i) /= "") call abort + if (iachar(c) /= iachar("")) call abort + if (iachar(achar(26)) /= 26) call abort + if (iachar(achar(27)) /= 27) call abort + if (iachar ("")/= 27) call abort + if (achar (27) /= "") call abort + if ("" /= achar ( ichar ( ""))) call abort + i = 27 + c = "" + if (achar(i) /= "") call abort + if (iachar(c) /= iachar("")) call abort + if (iachar(achar(28)) /= 28) call abort + if (iachar ("")/= 28) call abort + if (achar (28) /= "") call abort + if ("" /= achar ( ichar ( ""))) call abort + i = 28 + c = "" + if (achar(i) /= "") call abort + if (iachar(c) /= iachar("")) call abort + if (iachar(achar(29)) /= 29) call abort + if (iachar ("")/= 29) call abort + if (achar (29) /= "") call abort + if ("" /= achar ( ichar ( ""))) call abort + i = 29 + c = "" + if (achar(i) /= "") call abort + if (iachar(c) /= iachar("")) call abort + if (iachar(achar(30)) /= 30) call abort + if (iachar ("")/= 30) call abort + if (achar (30) /= "") call abort + if ("" /= achar ( ichar ( ""))) call abort + i = 30 + c = "" + if (achar(i) /= "") call abort + if (iachar(c) /= iachar("")) call abort + if (iachar(achar(31)) /= 31) call abort + if (iachar ("")/= 31) call abort + if (achar (31) /= "") call abort + if ("" /= achar ( ichar ( ""))) call abort + i = 31 + c = "" + if (achar(i) /= "") call abort + if (iachar(c) /= iachar("")) call abort + if (iachar(achar(32)) /= 32) call abort + if (iachar (" ")/= 32) call abort + if (achar (32) /= " ") call abort + if (" " /= achar ( ichar ( " "))) call abort + i = 32 + c = " " + if (achar(i) /= " ") call abort + if (iachar(c) /= iachar(" ")) call abort + if (iachar(achar(33)) /= 33) call abort + if (iachar ("!")/= 33) call abort + if (achar (33) /= "!") call abort + if ("!" /= achar ( ichar ( "!"))) call abort + i = 33 + c = "!" + if (achar(i) /= "!") call abort + if (iachar(c) /= iachar("!")) call abort + if (iachar(achar(34)) /= 34) call abort + if (iachar ('"')/= 34) call abort + if (achar (34) /= '"') call abort + if ('"' /= achar ( ichar ( '"'))) call abort + i = 34 + c = '"' + if (achar(i) /= '"') call abort + if (iachar(c) /= iachar('"')) call abort + if (iachar(achar(35)) /= 35) call abort + if (iachar ("#")/= 35) call abort + if (achar (35) /= "#") call abort + if ("#" /= achar ( ichar ( "#"))) call abort + i = 35 + c = "#" + if (achar(i) /= "#") call abort + if (iachar(c) /= iachar("#")) call abort + if (iachar(achar(36)) /= 36) call abort + if (iachar ("$")/= 36) call abort + if (achar (36) /= "$") call abort + if ("$" /= achar ( ichar ( "$"))) call abort + i = 36 + c = "$" + if (achar(i) /= "$") call abort + if (iachar(c) /= iachar("$")) call abort + if (iachar(achar(37)) /= 37) call abort + if (iachar ("%")/= 37) call abort + if (achar (37) /= "%") call abort + if ("%" /= achar ( ichar ( "%"))) call abort + i = 37 + c = "%" + if (achar(i) /= "%") call abort + if (iachar(c) /= iachar("%")) call abort + if (iachar(achar(38)) /= 38) call abort + if (iachar ("&")/= 38) call abort + if (achar (38) /= "&") call abort + if ("&" /= achar ( ichar ( "&"))) call abort + i = 38 + c = "&" + if (achar(i) /= "&") call abort + if (iachar(c) /= iachar("&")) call abort + if (iachar(achar(39)) /= 39) call abort + if (iachar ("'")/= 39) call abort + if (achar (39) /= "'") call abort + if ("'" /= achar ( ichar ( "'"))) call abort + i = 39 + c = "'" + if (achar(i) /= "'") call abort + if (iachar(c) /= iachar("'")) call abort + if (iachar(achar(40)) /= 40) call abort + if (iachar ("(")/= 40) call abort + if (achar (40) /= "(") call abort + if ("(" /= achar ( ichar ( "("))) call abort + i = 40 + c = "(" + if (achar(i) /= "(") call abort + if (iachar(c) /= iachar("(")) call abort + if (iachar(achar(41)) /= 41) call abort + if (iachar (")")/= 41) call abort + if (achar (41) /= ")") call abort + if (")" /= achar ( ichar ( ")"))) call abort + i = 41 + c = ")" + if (achar(i) /= ")") call abort + if (iachar(c) /= iachar(")")) call abort + if (iachar(achar(42)) /= 42) call abort + if (iachar ("*")/= 42) call abort + if (achar (42) /= "*") call abort + if ("*" /= achar ( ichar ( "*"))) call abort + i = 42 + c = "*" + if (achar(i) /= "*") call abort + if (iachar(c) /= iachar("*")) call abort + if (iachar(achar(43)) /= 43) call abort + if (iachar ("+")/= 43) call abort + if (achar (43) /= "+") call abort + if ("+" /= achar ( ichar ( "+"))) call abort + i = 43 + c = "+" + if (achar(i) /= "+") call abort + if (iachar(c) /= iachar("+")) call abort + if (iachar(achar(44)) /= 44) call abort + if (iachar (",")/= 44) call abort + if (achar (44) /= ",") call abort + if ("," /= achar ( ichar ( ","))) call abort + i = 44 + c = "," + if (achar(i) /= ",") call abort + if (iachar(c) /= iachar(",")) call abort + if (iachar(achar(45)) /= 45) call abort + if (iachar ("-")/= 45) call abort + if (achar (45) /= "-") call abort + if ("-" /= achar ( ichar ( "-"))) call abort + i = 45 + c = "-" + if (achar(i) /= "-") call abort + if (iachar(c) /= iachar("-")) call abort + if (iachar(achar(46)) /= 46) call abort + if (iachar (".")/= 46) call abort + if (achar (46) /= ".") call abort + if ("." /= achar ( ichar ( "."))) call abort + i = 46 + c = "." + if (achar(i) /= ".") call abort + if (iachar(c) /= iachar(".")) call abort + if (iachar(achar(47)) /= 47) call abort + if (iachar ("/")/= 47) call abort + if (achar (47) /= "/") call abort + if ("/" /= achar ( ichar ( "/"))) call abort + i = 47 + c = "/" + if (achar(i) /= "/") call abort + if (iachar(c) /= iachar("/")) call abort + if (iachar(achar(48)) /= 48) call abort + if (iachar ("0")/= 48) call abort + if (achar (48) /= "0") call abort + if ("0" /= achar ( ichar ( "0"))) call abort + i = 48 + c = "0" + if (achar(i) /= "0") call abort + if (iachar(c) /= iachar("0")) call abort + if (iachar(achar(49)) /= 49) call abort + if (iachar ("1")/= 49) call abort + if (achar (49) /= "1") call abort + if ("1" /= achar ( ichar ( "1"))) call abort + i = 49 + c = "1" + if (achar(i) /= "1") call abort + if (iachar(c) /= iachar("1")) call abort + if (iachar(achar(50)) /= 50) call abort + if (iachar ("2")/= 50) call abort + if (achar (50) /= "2") call abort + if ("2" /= achar ( ichar ( "2"))) call abort + i = 50 + c = "2" + if (achar(i) /= "2") call abort + if (iachar(c) /= iachar("2")) call abort + if (iachar(achar(51)) /= 51) call abort + if (iachar ("3")/= 51) call abort + if (achar (51) /= "3") call abort + if ("3" /= achar ( ichar ( "3"))) call abort + i = 51 + c = "3" + if (achar(i) /= "3") call abort + if (iachar(c) /= iachar("3")) call abort + if (iachar(achar(52)) /= 52) call abort + if (iachar ("4")/= 52) call abort + if (achar (52) /= "4") call abort + if ("4" /= achar ( ichar ( "4"))) call abort + i = 52 + c = "4" + if (achar(i) /= "4") call abort + if (iachar(c) /= iachar("4")) call abort + if (iachar(achar(53)) /= 53) call abort + if (iachar ("5")/= 53) call abort + if (achar (53) /= "5") call abort + if ("5" /= achar ( ichar ( "5"))) call abort + i = 53 + c = "5" + if (achar(i) /= "5") call abort + if (iachar(c) /= iachar("5")) call abort + if (iachar(achar(54)) /= 54) call abort + if (iachar ("6")/= 54) call abort + if (achar (54) /= "6") call abort + if ("6" /= achar ( ichar ( "6"))) call abort + i = 54 + c = "6" + if (achar(i) /= "6") call abort + if (iachar(c) /= iachar("6")) call abort + if (iachar(achar(55)) /= 55) call abort + if (iachar ("7")/= 55) call abort + if (achar (55) /= "7") call abort + if ("7" /= achar ( ichar ( "7"))) call abort + i = 55 + c = "7" + if (achar(i) /= "7") call abort + if (iachar(c) /= iachar("7")) call abort + if (iachar(achar(56)) /= 56) call abort + if (iachar ("8")/= 56) call abort + if (achar (56) /= "8") call abort + if ("8" /= achar ( ichar ( "8"))) call abort + i = 56 + c = "8" + if (achar(i) /= "8") call abort + if (iachar(c) /= iachar("8")) call abort + if (iachar(achar(57)) /= 57) call abort + if (iachar ("9")/= 57) call abort + if (achar (57) /= "9") call abort + if ("9" /= achar ( ichar ( "9"))) call abort + i = 57 + c = "9" + if (achar(i) /= "9") call abort + if (iachar(c) /= iachar("9")) call abort + if (iachar(achar(58)) /= 58) call abort + if (iachar (":")/= 58) call abort + if (achar (58) /= ":") call abort + if (":" /= achar ( ichar ( ":"))) call abort + i = 58 + c = ":" + if (achar(i) /= ":") call abort + if (iachar(c) /= iachar(":")) call abort + if (iachar(achar(59)) /= 59) call abort + if (iachar (";")/= 59) call abort + if (achar (59) /= ";") call abort + if (";" /= achar ( ichar ( ";"))) call abort + i = 59 + c = ";" + if (achar(i) /= ";") call abort + if (iachar(c) /= iachar(";")) call abort + if (iachar(achar(60)) /= 60) call abort + if (iachar ("<")/= 60) call abort + if (achar (60) /= "<") call abort + if ("<" /= achar ( ichar ( "<"))) call abort + i = 60 + c = "<" + if (achar(i) /= "<") call abort + if (iachar(c) /= iachar("<")) call abort + if (iachar(achar(61)) /= 61) call abort + if (iachar ("=")/= 61) call abort + if (achar (61) /= "=") call abort + if ("=" /= achar ( ichar ( "="))) call abort + i = 61 + c = "=" + if (achar(i) /= "=") call abort + if (iachar(c) /= iachar("=")) call abort + if (iachar(achar(62)) /= 62) call abort + if (iachar (">")/= 62) call abort + if (achar (62) /= ">") call abort + if (">" /= achar ( ichar ( ">"))) call abort + i = 62 + c = ">" + if (achar(i) /= ">") call abort + if (iachar(c) /= iachar(">")) call abort + if (iachar(achar(63)) /= 63) call abort + if (iachar ("?")/= 63) call abort + if (achar (63) /= "?") call abort + if ("?" /= achar ( ichar ( "?"))) call abort + i = 63 + c = "?" + if (achar(i) /= "?") call abort + if (iachar(c) /= iachar("?")) call abort + if (iachar(achar(64)) /= 64) call abort + if (iachar ("@")/= 64) call abort + if (achar (64) /= "@") call abort + if ("@" /= achar ( ichar ( "@"))) call abort + i = 64 + c = "@" + if (achar(i) /= "@") call abort + if (iachar(c) /= iachar("@")) call abort + if (iachar(achar(65)) /= 65) call abort + if (iachar ("A")/= 65) call abort + if (achar (65) /= "A") call abort + if ("A" /= achar ( ichar ( "A"))) call abort + i = 65 + c = "A" + if (achar(i) /= "A") call abort + if (iachar(c) /= iachar("A")) call abort + if (iachar(achar(66)) /= 66) call abort + if (iachar ("B")/= 66) call abort + if (achar (66) /= "B") call abort + if ("B" /= achar ( ichar ( "B"))) call abort + i = 66 + c = "B" + if (achar(i) /= "B") call abort + if (iachar(c) /= iachar("B")) call abort + if (iachar(achar(67)) /= 67) call abort + if (iachar ("C")/= 67) call abort + if (achar (67) /= "C") call abort + if ("C" /= achar ( ichar ( "C"))) call abort + i = 67 + c = "C" + if (achar(i) /= "C") call abort + if (iachar(c) /= iachar("C")) call abort + if (iachar(achar(68)) /= 68) call abort + if (iachar ("D")/= 68) call abort + if (achar (68) /= "D") call abort + if ("D" /= achar ( ichar ( "D"))) call abort + i = 68 + c = "D" + if (achar(i) /= "D") call abort + if (iachar(c) /= iachar("D")) call abort + if (iachar(achar(69)) /= 69) call abort + if (iachar ("E")/= 69) call abort + if (achar (69) /= "E") call abort + if ("E" /= achar ( ichar ( "E"))) call abort + i = 69 + c = "E" + if (achar(i) /= "E") call abort + if (iachar(c) /= iachar("E")) call abort + if (iachar(achar(70)) /= 70) call abort + if (iachar ("F")/= 70) call abort + if (achar (70) /= "F") call abort + if ("F" /= achar ( ichar ( "F"))) call abort + i = 70 + c = "F" + if (achar(i) /= "F") call abort + if (iachar(c) /= iachar("F")) call abort + if (iachar(achar(71)) /= 71) call abort + if (iachar ("G")/= 71) call abort + if (achar (71) /= "G") call abort + if ("G" /= achar ( ichar ( "G"))) call abort + i = 71 + c = "G" + if (achar(i) /= "G") call abort + if (iachar(c) /= iachar("G")) call abort + if (iachar(achar(72)) /= 72) call abort + if (iachar ("H")/= 72) call abort + if (achar (72) /= "H") call abort + if ("H" /= achar ( ichar ( "H"))) call abort + i = 72 + c = "H" + if (achar(i) /= "H") call abort + if (iachar(c) /= iachar("H")) call abort + if (iachar(achar(73)) /= 73) call abort + if (iachar ("I")/= 73) call abort + if (achar (73) /= "I") call abort + if ("I" /= achar ( ichar ( "I"))) call abort + i = 73 + c = "I" + if (achar(i) /= "I") call abort + if (iachar(c) /= iachar("I")) call abort + if (iachar(achar(74)) /= 74) call abort + if (iachar ("J")/= 74) call abort + if (achar (74) /= "J") call abort + if ("J" /= achar ( ichar ( "J"))) call abort + i = 74 + c = "J" + if (achar(i) /= "J") call abort + if (iachar(c) /= iachar("J")) call abort + if (iachar(achar(75)) /= 75) call abort + if (iachar ("K")/= 75) call abort + if (achar (75) /= "K") call abort + if ("K" /= achar ( ichar ( "K"))) call abort + i = 75 + c = "K" + if (achar(i) /= "K") call abort + if (iachar(c) /= iachar("K")) call abort + if (iachar(achar(76)) /= 76) call abort + if (iachar ("L")/= 76) call abort + if (achar (76) /= "L") call abort + if ("L" /= achar ( ichar ( "L"))) call abort + i = 76 + c = "L" + if (achar(i) /= "L") call abort + if (iachar(c) /= iachar("L")) call abort + if (iachar(achar(77)) /= 77) call abort + if (iachar ("M")/= 77) call abort + if (achar (77) /= "M") call abort + if ("M" /= achar ( ichar ( "M"))) call abort + i = 77 + c = "M" + if (achar(i) /= "M") call abort + if (iachar(c) /= iachar("M")) call abort + if (iachar(achar(78)) /= 78) call abort + if (iachar ("N")/= 78) call abort + if (achar (78) /= "N") call abort + if ("N" /= achar ( ichar ( "N"))) call abort + i = 78 + c = "N" + if (achar(i) /= "N") call abort + if (iachar(c) /= iachar("N")) call abort + if (iachar(achar(79)) /= 79) call abort + if (iachar ("O")/= 79) call abort + if (achar (79) /= "O") call abort + if ("O" /= achar ( ichar ( "O"))) call abort + i = 79 + c = "O" + if (achar(i) /= "O") call abort + if (iachar(c) /= iachar("O")) call abort + if (iachar(achar(80)) /= 80) call abort + if (iachar ("P")/= 80) call abort + if (achar (80) /= "P") call abort + if ("P" /= achar ( ichar ( "P"))) call abort + i = 80 + c = "P" + if (achar(i) /= "P") call abort + if (iachar(c) /= iachar("P")) call abort + if (iachar(achar(81)) /= 81) call abort + if (iachar ("Q")/= 81) call abort + if (achar (81) /= "Q") call abort + if ("Q" /= achar ( ichar ( "Q"))) call abort + i = 81 + c = "Q" + if (achar(i) /= "Q") call abort + if (iachar(c) /= iachar("Q")) call abort + if (iachar(achar(82)) /= 82) call abort + if (iachar ("R")/= 82) call abort + if (achar (82) /= "R") call abort + if ("R" /= achar ( ichar ( "R"))) call abort + i = 82 + c = "R" + if (achar(i) /= "R") call abort + if (iachar(c) /= iachar("R")) call abort + if (iachar(achar(83)) /= 83) call abort + if (iachar ("S")/= 83) call abort + if (achar (83) /= "S") call abort + if ("S" /= achar ( ichar ( "S"))) call abort + i = 83 + c = "S" + if (achar(i) /= "S") call abort + if (iachar(c) /= iachar("S")) call abort + if (iachar(achar(84)) /= 84) call abort + if (iachar ("T")/= 84) call abort + if (achar (84) /= "T") call abort + if ("T" /= achar ( ichar ( "T"))) call abort + i = 84 + c = "T" + if (achar(i) /= "T") call abort + if (iachar(c) /= iachar("T")) call abort + if (iachar(achar(85)) /= 85) call abort + if (iachar ("U")/= 85) call abort + if (achar (85) /= "U") call abort + if ("U" /= achar ( ichar ( "U"))) call abort + i = 85 + c = "U" + if (achar(i) /= "U") call abort + if (iachar(c) /= iachar("U")) call abort + if (iachar(achar(86)) /= 86) call abort + if (iachar ("V")/= 86) call abort + if (achar (86) /= "V") call abort + if ("V" /= achar ( ichar ( "V"))) call abort + i = 86 + c = "V" + if (achar(i) /= "V") call abort + if (iachar(c) /= iachar("V")) call abort + if (iachar(achar(87)) /= 87) call abort + if (iachar ("W")/= 87) call abort + if (achar (87) /= "W") call abort + if ("W" /= achar ( ichar ( "W"))) call abort + i = 87 + c = "W" + if (achar(i) /= "W") call abort + if (iachar(c) /= iachar("W")) call abort + if (iachar(achar(88)) /= 88) call abort + if (iachar ("X")/= 88) call abort + if (achar (88) /= "X") call abort + if ("X" /= achar ( ichar ( "X"))) call abort + i = 88 + c = "X" + if (achar(i) /= "X") call abort + if (iachar(c) /= iachar("X")) call abort + if (iachar(achar(89)) /= 89) call abort + if (iachar ("Y")/= 89) call abort + if (achar (89) /= "Y") call abort + if ("Y" /= achar ( ichar ( "Y"))) call abort + i = 89 + c = "Y" + if (achar(i) /= "Y") call abort + if (iachar(c) /= iachar("Y")) call abort + if (iachar(achar(90)) /= 90) call abort + if (iachar ("Z")/= 90) call abort + if (achar (90) /= "Z") call abort + if ("Z" /= achar ( ichar ( "Z"))) call abort + i = 90 + c = "Z" + if (achar(i) /= "Z") call abort + if (iachar(c) /= iachar("Z")) call abort + if (iachar(achar(91)) /= 91) call abort + if (iachar ("[")/= 91) call abort + if (achar (91) /= "[") call abort + if ("[" /= achar ( ichar ( "["))) call abort + i = 91 + c = "[" + if (achar(i) /= "[") call abort + if (iachar(c) /= iachar("[")) call abort + if (iachar(achar(92)) /= 92) call abort + if (iachar ("\")/= 92) call abort + if (achar (92) /= "\") call abort + if ("\" /= achar ( ichar ( "\"))) call abort + i = 92 + c = "\" + if (achar(i) /= "\") call abort + if (iachar(c) /= iachar("\")) call abort + if (iachar(achar(93)) /= 93) call abort + if (iachar ("]")/= 93) call abort + if (achar (93) /= "]") call abort + if ("]" /= achar ( ichar ( "]"))) call abort + i = 93 + c = "]" + if (achar(i) /= "]") call abort + if (iachar(c) /= iachar("]")) call abort + if (iachar(achar(94)) /= 94) call abort + if (iachar ("^")/= 94) call abort + if (achar (94) /= "^") call abort + if ("^" /= achar ( ichar ( "^"))) call abort + i = 94 + c = "^" + if (achar(i) /= "^") call abort + if (iachar(c) /= iachar("^")) call abort + if (iachar(achar(95)) /= 95) call abort + if (iachar ("_")/= 95) call abort + if (achar (95) /= "_") call abort + if ("_" /= achar ( ichar ( "_"))) call abort + i = 95 + c = "_" + if (achar(i) /= "_") call abort + if (iachar(c) /= iachar("_")) call abort + if (iachar(achar(96)) /= 96) call abort + if (iachar ("`")/= 96) call abort + if (achar (96) /= "`") call abort + if ("`" /= achar ( ichar ( "`"))) call abort + i = 96 + c = "`" + if (achar(i) /= "`") call abort + if (iachar(c) /= iachar("`")) call abort + if (iachar(achar(97)) /= 97) call abort + if (iachar ("a")/= 97) call abort + if (achar (97) /= "a") call abort + if ("a" /= achar ( ichar ( "a"))) call abort + i = 97 + c = "a" + if (achar(i) /= "a") call abort + if (iachar(c) /= iachar("a")) call abort + if (iachar(achar(98)) /= 98) call abort + if (iachar ("b")/= 98) call abort + if (achar (98) /= "b") call abort + if ("b" /= achar ( ichar ( "b"))) call abort + i = 98 + c = "b" + if (achar(i) /= "b") call abort + if (iachar(c) /= iachar("b")) call abort + if (iachar(achar(99)) /= 99) call abort + if (iachar ("c")/= 99) call abort + if (achar (99) /= "c") call abort + if ("c" /= achar ( ichar ( "c"))) call abort + i = 99 + c = "c" + if (achar(i) /= "c") call abort + if (iachar(c) /= iachar("c")) call abort + if (iachar(achar(100)) /= 100) call abort + if (iachar ("d")/= 100) call abort + if (achar (100) /= "d") call abort + if ("d" /= achar ( ichar ( "d"))) call abort + i = 100 + c = "d" + if (achar(i) /= "d") call abort + if (iachar(c) /= iachar("d")) call abort + if (iachar(achar(101)) /= 101) call abort + if (iachar ("e")/= 101) call abort + if (achar (101) /= "e") call abort + if ("e" /= achar ( ichar ( "e"))) call abort + i = 101 + c = "e" + if (achar(i) /= "e") call abort + if (iachar(c) /= iachar("e")) call abort + if (iachar(achar(102)) /= 102) call abort + if (iachar ("f")/= 102) call abort + if (achar (102) /= "f") call abort + if ("f" /= achar ( ichar ( "f"))) call abort + i = 102 + c = "f" + if (achar(i) /= "f") call abort + if (iachar(c) /= iachar("f")) call abort + if (iachar(achar(103)) /= 103) call abort + if (iachar ("g")/= 103) call abort + if (achar (103) /= "g") call abort + if ("g" /= achar ( ichar ( "g"))) call abort + i = 103 + c = "g" + if (achar(i) /= "g") call abort + if (iachar(c) /= iachar("g")) call abort + if (iachar(achar(104)) /= 104) call abort + if (iachar ("h")/= 104) call abort + if (achar (104) /= "h") call abort + if ("h" /= achar ( ichar ( "h"))) call abort + i = 104 + c = "h" + if (achar(i) /= "h") call abort + if (iachar(c) /= iachar("h")) call abort + if (iachar(achar(105)) /= 105) call abort + if (iachar ("i")/= 105) call abort + if (achar (105) /= "i") call abort + if ("i" /= achar ( ichar ( "i"))) call abort + i = 105 + c = "i" + if (achar(i) /= "i") call abort + if (iachar(c) /= iachar("i")) call abort + if (iachar(achar(106)) /= 106) call abort + if (iachar ("j")/= 106) call abort + if (achar (106) /= "j") call abort + if ("j" /= achar ( ichar ( "j"))) call abort + i = 106 + c = "j" + if (achar(i) /= "j") call abort + if (iachar(c) /= iachar("j")) call abort + if (iachar(achar(107)) /= 107) call abort + if (iachar ("k")/= 107) call abort + if (achar (107) /= "k") call abort + if ("k" /= achar ( ichar ( "k"))) call abort + i = 107 + c = "k" + if (achar(i) /= "k") call abort + if (iachar(c) /= iachar("k")) call abort + if (iachar(achar(108)) /= 108) call abort + if (iachar ("l")/= 108) call abort + if (achar (108) /= "l") call abort + if ("l" /= achar ( ichar ( "l"))) call abort + i = 108 + c = "l" + if (achar(i) /= "l") call abort + if (iachar(c) /= iachar("l")) call abort + if (iachar(achar(109)) /= 109) call abort + if (iachar ("m")/= 109) call abort + if (achar (109) /= "m") call abort + if ("m" /= achar ( ichar ( "m"))) call abort + i = 109 + c = "m" + if (achar(i) /= "m") call abort + if (iachar(c) /= iachar("m")) call abort + if (iachar(achar(110)) /= 110) call abort + if (iachar ("n")/= 110) call abort + if (achar (110) /= "n") call abort + if ("n" /= achar ( ichar ( "n"))) call abort + i = 110 + c = "n" + if (achar(i) /= "n") call abort + if (iachar(c) /= iachar("n")) call abort + if (iachar(achar(111)) /= 111) call abort + if (iachar ("o")/= 111) call abort + if (achar (111) /= "o") call abort + if ("o" /= achar ( ichar ( "o"))) call abort + i = 111 + c = "o" + if (achar(i) /= "o") call abort + if (iachar(c) /= iachar("o")) call abort + if (iachar(achar(112)) /= 112) call abort + if (iachar ("p")/= 112) call abort + if (achar (112) /= "p") call abort + if ("p" /= achar ( ichar ( "p"))) call abort + i = 112 + c = "p" + if (achar(i) /= "p") call abort + if (iachar(c) /= iachar("p")) call abort + if (iachar(achar(113)) /= 113) call abort + if (iachar ("q")/= 113) call abort + if (achar (113) /= "q") call abort + if ("q" /= achar ( ichar ( "q"))) call abort + i = 113 + c = "q" + if (achar(i) /= "q") call abort + if (iachar(c) /= iachar("q")) call abort + if (iachar(achar(114)) /= 114) call abort + if (iachar ("r")/= 114) call abort + if (achar (114) /= "r") call abort + if ("r" /= achar ( ichar ( "r"))) call abort + i = 114 + c = "r" + if (achar(i) /= "r") call abort + if (iachar(c) /= iachar("r")) call abort + if (iachar(achar(115)) /= 115) call abort + if (iachar ("s")/= 115) call abort + if (achar (115) /= "s") call abort + if ("s" /= achar ( ichar ( "s"))) call abort + i = 115 + c = "s" + if (achar(i) /= "s") call abort + if (iachar(c) /= iachar("s")) call abort + if (iachar(achar(116)) /= 116) call abort + if (iachar ("t")/= 116) call abort + if (achar (116) /= "t") call abort + if ("t" /= achar ( ichar ( "t"))) call abort + i = 116 + c = "t" + if (achar(i) /= "t") call abort + if (iachar(c) /= iachar("t")) call abort + if (iachar(achar(117)) /= 117) call abort + if (iachar ("u")/= 117) call abort + if (achar (117) /= "u") call abort + if ("u" /= achar ( ichar ( "u"))) call abort + i = 117 + c = "u" + if (achar(i) /= "u") call abort + if (iachar(c) /= iachar("u")) call abort + if (iachar(achar(118)) /= 118) call abort + if (iachar ("v")/= 118) call abort + if (achar (118) /= "v") call abort + if ("v" /= achar ( ichar ( "v"))) call abort + i = 118 + c = "v" + if (achar(i) /= "v") call abort + if (iachar(c) /= iachar("v")) call abort + if (iachar(achar(119)) /= 119) call abort + if (iachar ("w")/= 119) call abort + if (achar (119) /= "w") call abort + if ("w" /= achar ( ichar ( "w"))) call abort + i = 119 + c = "w" + if (achar(i) /= "w") call abort + if (iachar(c) /= iachar("w")) call abort + if (iachar(achar(120)) /= 120) call abort + if (iachar ("x")/= 120) call abort + if (achar (120) /= "x") call abort + if ("x" /= achar ( ichar ( "x"))) call abort + i = 120 + c = "x" + if (achar(i) /= "x") call abort + if (iachar(c) /= iachar("x")) call abort + if (iachar(achar(121)) /= 121) call abort + if (iachar ("y")/= 121) call abort + if (achar (121) /= "y") call abort + if ("y" /= achar ( ichar ( "y"))) call abort + i = 121 + c = "y" + if (achar(i) /= "y") call abort + if (iachar(c) /= iachar("y")) call abort + if (iachar(achar(122)) /= 122) call abort + if (iachar ("z")/= 122) call abort + if (achar (122) /= "z") call abort + if ("z" /= achar ( ichar ( "z"))) call abort + i = 122 + c = "z" + if (achar(i) /= "z") call abort + if (iachar(c) /= iachar("z")) call abort + if (iachar(achar(123)) /= 123) call abort + if (iachar ("{")/= 123) call abort + if (achar (123) /= "{") call abort + if ("{" /= achar ( ichar ( "{"))) call abort + i = 123 + c = "{" + if (achar(i) /= "{") call abort + if (iachar(c) /= iachar("{")) call abort + if (iachar(achar(124)) /= 124) call abort + if (iachar ("|")/= 124) call abort + if (achar (124) /= "|") call abort + if ("|" /= achar ( ichar ( "|"))) call abort + i = 124 + c = "|" + if (achar(i) /= "|") call abort + if (iachar(c) /= iachar("|")) call abort + if (iachar(achar(125)) /= 125) call abort + if (iachar ("}")/= 125) call abort + if (achar (125) /= "}") call abort + if ("}" /= achar ( ichar ( "}"))) call abort + i = 125 + c = "}" + if (achar(i) /= "}") call abort + if (iachar(c) /= iachar("}")) call abort + if (iachar(achar(126)) /= 126) call abort + if (iachar ("~")/= 126) call abort + if (achar (126) /= "~") call abort + if ("~" /= achar ( ichar ( "~"))) call abort + i = 126 + c = "~" + if (achar(i) /= "~") call abort + if (iachar(c) /= iachar("~")) call abort + if (iachar(achar(127)) /= 127) call abort + if (iachar ("")/= 127) call abort + if (achar (127) /= "") call abort + if ("" /= achar ( ichar ( ""))) call abort + i = 127 + c = "" + if (achar(i) /= "") call abort + if (iachar(c) /= iachar("")) call abort + if (iachar(achar(128)) /= 128) call abort + if (iachar ("€")/= 128) call abort + if (achar (128) /= "€") call abort + if ("€" /= achar ( ichar ( "€"))) call abort + i = 128 + c = "€" + if (achar(i) /= "€") call abort + if (iachar(c) /= iachar("€")) call abort + if (iachar(achar(129)) /= 129) call abort + if (iachar ("")/= 129) call abort + if (achar (129) /= "") call abort + if ("" /= achar ( ichar ( ""))) call abort + i = 129 + c = "" + if (achar(i) /= "") call abort + if (iachar(c) /= iachar("")) call abort + if (iachar(achar(130)) /= 130) call abort + if (iachar ("‚")/= 130) call abort + if (achar (130) /= "‚") call abort + if ("‚" /= achar ( ichar ( "‚"))) call abort + i = 130 + c = "‚" + if (achar(i) /= "‚") call abort + if (iachar(c) /= iachar("‚")) call abort + if (iachar(achar(131)) /= 131) call abort + if (iachar ("ƒ")/= 131) call abort + if (achar (131) /= "ƒ") call abort + if ("ƒ" /= achar ( ichar ( "ƒ"))) call abort + i = 131 + c = "ƒ" + if (achar(i) /= "ƒ") call abort + if (iachar(c) /= iachar("ƒ")) call abort + if (iachar(achar(132)) /= 132) call abort + if (iachar ("„")/= 132) call abort + if (achar (132) /= "„") call abort + if ("„" /= achar ( ichar ( "„"))) call abort + i = 132 + c = "„" + if (achar(i) /= "„") call abort + if (iachar(c) /= iachar("„")) call abort + if (iachar(achar(133)) /= 133) call abort + if (iachar ("…")/= 133) call abort + if (achar (133) /= "…") call abort + if ("…" /= achar ( ichar ( "…"))) call abort + i = 133 + c = "…" + if (achar(i) /= "…") call abort + if (iachar(c) /= iachar("…")) call abort + if (iachar(achar(134)) /= 134) call abort + if (iachar ("†")/= 134) call abort + if (achar (134) /= "†") call abort + if ("†" /= achar ( ichar ( "†"))) call abort + i = 134 + c = "†" + if (achar(i) /= "†") call abort + if (iachar(c) /= iachar("†")) call abort + if (iachar(achar(135)) /= 135) call abort + if (iachar ("‡")/= 135) call abort + if (achar (135) /= "‡") call abort + if ("‡" /= achar ( ichar ( "‡"))) call abort + i = 135 + c = "‡" + if (achar(i) /= "‡") call abort + if (iachar(c) /= iachar("‡")) call abort + if (iachar(achar(136)) /= 136) call abort + if (iachar ("ˆ")/= 136) call abort + if (achar (136) /= "ˆ") call abort + if ("ˆ" /= achar ( ichar ( "ˆ"))) call abort + i = 136 + c = "ˆ" + if (achar(i) /= "ˆ") call abort + if (iachar(c) /= iachar("ˆ")) call abort + if (iachar(achar(137)) /= 137) call abort + if (iachar ("‰")/= 137) call abort + if (achar (137) /= "‰") call abort + if ("‰" /= achar ( ichar ( "‰"))) call abort + i = 137 + c = "‰" + if (achar(i) /= "‰") call abort + if (iachar(c) /= iachar("‰")) call abort + if (iachar(achar(138)) /= 138) call abort + if (iachar ("Š")/= 138) call abort + if (achar (138) /= "Š") call abort + if ("Š" /= achar ( ichar ( "Š"))) call abort + i = 138 + c = "Š" + if (achar(i) /= "Š") call abort + if (iachar(c) /= iachar("Š")) call abort + if (iachar(achar(139)) /= 139) call abort + if (iachar ("‹")/= 139) call abort + if (achar (139) /= "‹") call abort + if ("‹" /= achar ( ichar ( "‹"))) call abort + i = 139 + c = "‹" + if (achar(i) /= "‹") call abort + if (iachar(c) /= iachar("‹")) call abort + if (iachar(achar(140)) /= 140) call abort + if (iachar ("Œ")/= 140) call abort + if (achar (140) /= "Œ") call abort + if ("Œ" /= achar ( ichar ( "Œ"))) call abort + i = 140 + c = "Œ" + if (achar(i) /= "Œ") call abort + if (iachar(c) /= iachar("Œ")) call abort + if (iachar(achar(141)) /= 141) call abort + if (iachar ("")/= 141) call abort + if (achar (141) /= "") call abort + if ("" /= achar ( ichar ( ""))) call abort + i = 141 + c = "" + if (achar(i) /= "") call abort + if (iachar(c) /= iachar("")) call abort + if (iachar(achar(142)) /= 142) call abort + if (iachar ("Ž")/= 142) call abort + if (achar (142) /= "Ž") call abort + if ("Ž" /= achar ( ichar ( "Ž"))) call abort + i = 142 + c = "Ž" + if (achar(i) /= "Ž") call abort + if (iachar(c) /= iachar("Ž")) call abort + if (iachar(achar(143)) /= 143) call abort + if (iachar ("")/= 143) call abort + if (achar (143) /= "") call abort + if ("" /= achar ( ichar ( ""))) call abort + i = 143 + c = "" + if (achar(i) /= "") call abort + if (iachar(c) /= iachar("")) call abort + if (iachar(achar(144)) /= 144) call abort + if (iachar ("")/= 144) call abort + if (achar (144) /= "") call abort + if ("" /= achar ( ichar ( ""))) call abort + i = 144 + c = "" + if (achar(i) /= "") call abort + if (iachar(c) /= iachar("")) call abort + if (iachar(achar(145)) /= 145) call abort + if (iachar ("‘")/= 145) call abort + if (achar (145) /= "‘") call abort + if ("‘" /= achar ( ichar ( "‘"))) call abort + i = 145 + c = "‘" + if (achar(i) /= "‘") call abort + if (iachar(c) /= iachar("‘")) call abort + if (iachar(achar(146)) /= 146) call abort + if (iachar ("’")/= 146) call abort + if (achar (146) /= "’") call abort + if ("’" /= achar ( ichar ( "’"))) call abort + i = 146 + c = "’" + if (achar(i) /= "’") call abort + if (iachar(c) /= iachar("’")) call abort + if (iachar(achar(147)) /= 147) call abort + if (iachar ("“")/= 147) call abort + if (achar (147) /= "“") call abort + if ("“" /= achar ( ichar ( "“"))) call abort + i = 147 + c = "“" + if (achar(i) /= "“") call abort + if (iachar(c) /= iachar("“")) call abort + if (iachar(achar(148)) /= 148) call abort + if (iachar ("”")/= 148) call abort + if (achar (148) /= "”") call abort + if ("”" /= achar ( ichar ( "”"))) call abort + i = 148 + c = "”" + if (achar(i) /= "”") call abort + if (iachar(c) /= iachar("”")) call abort + if (iachar(achar(149)) /= 149) call abort + if (iachar ("•")/= 149) call abort + if (achar (149) /= "•") call abort + if ("•" /= achar ( ichar ( "•"))) call abort + i = 149 + c = "•" + if (achar(i) /= "•") call abort + if (iachar(c) /= iachar("•")) call abort + if (iachar(achar(150)) /= 150) call abort + if (iachar ("–")/= 150) call abort + if (achar (150) /= "–") call abort + if ("–" /= achar ( ichar ( "–"))) call abort + i = 150 + c = "–" + if (achar(i) /= "–") call abort + if (iachar(c) /= iachar("–")) call abort + if (iachar(achar(151)) /= 151) call abort + if (iachar ("—")/= 151) call abort + if (achar (151) /= "—") call abort + if ("—" /= achar ( ichar ( "—"))) call abort + i = 151 + c = "—" + if (achar(i) /= "—") call abort + if (iachar(c) /= iachar("—")) call abort + if (iachar(achar(152)) /= 152) call abort + if (iachar ("˜")/= 152) call abort + if (achar (152) /= "˜") call abort + if ("˜" /= achar ( ichar ( "˜"))) call abort + i = 152 + c = "˜" + if (achar(i) /= "˜") call abort + if (iachar(c) /= iachar("˜")) call abort + if (iachar(achar(153)) /= 153) call abort + if (iachar ("™")/= 153) call abort + if (achar (153) /= "™") call abort + if ("™" /= achar ( ichar ( "™"))) call abort + i = 153 + c = "™" + if (achar(i) /= "™") call abort + if (iachar(c) /= iachar("™")) call abort + if (iachar(achar(154)) /= 154) call abort + if (iachar ("š")/= 154) call abort + if (achar (154) /= "š") call abort + if ("š" /= achar ( ichar ( "š"))) call abort + i = 154 + c = "š" + if (achar(i) /= "š") call abort + if (iachar(c) /= iachar("š")) call abort + if (iachar(achar(155)) /= 155) call abort + if (iachar ("›")/= 155) call abort + if (achar (155) /= "›") call abort + if ("›" /= achar ( ichar ( "›"))) call abort + i = 155 + c = "›" + if (achar(i) /= "›") call abort + if (iachar(c) /= iachar("›")) call abort + if (iachar(achar(156)) /= 156) call abort + if (iachar ("œ")/= 156) call abort + if (achar (156) /= "œ") call abort + if ("œ" /= achar ( ichar ( "œ"))) call abort + i = 156 + c = "œ" + if (achar(i) /= "œ") call abort + if (iachar(c) /= iachar("œ")) call abort + if (iachar(achar(157)) /= 157) call abort + if (iachar ("")/= 157) call abort + if (achar (157) /= "") call abort + if ("" /= achar ( ichar ( ""))) call abort + i = 157 + c = "" + if (achar(i) /= "") call abort + if (iachar(c) /= iachar("")) call abort + if (iachar(achar(158)) /= 158) call abort + if (iachar ("ž")/= 158) call abort + if (achar (158) /= "ž") call abort + if ("ž" /= achar ( ichar ( "ž"))) call abort + i = 158 + c = "ž" + if (achar(i) /= "ž") call abort + if (iachar(c) /= iachar("ž")) call abort + if (iachar(achar(159)) /= 159) call abort + if (iachar ("Ÿ")/= 159) call abort + if (achar (159) /= "Ÿ") call abort + if ("Ÿ" /= achar ( ichar ( "Ÿ"))) call abort + i = 159 + c = "Ÿ" + if (achar(i) /= "Ÿ") call abort + if (iachar(c) /= iachar("Ÿ")) call abort + if (iachar(achar(160)) /= 160) call abort + if (iachar (" ")/= 160) call abort + if (achar (160) /= " ") call abort + if (" " /= achar ( ichar ( " "))) call abort + i = 160 + c = " " + if (achar(i) /= " ") call abort + if (iachar(c) /= iachar(" ")) call abort + if (iachar(achar(161)) /= 161) call abort + if (iachar ("¡")/= 161) call abort + if (achar (161) /= "¡") call abort + if ("¡" /= achar ( ichar ( "¡"))) call abort + i = 161 + c = "¡" + if (achar(i) /= "¡") call abort + if (iachar(c) /= iachar("¡")) call abort + if (iachar(achar(162)) /= 162) call abort + if (iachar ("¢")/= 162) call abort + if (achar (162) /= "¢") call abort + if ("¢" /= achar ( ichar ( "¢"))) call abort + i = 162 + c = "¢" + if (achar(i) /= "¢") call abort + if (iachar(c) /= iachar("¢")) call abort + if (iachar(achar(163)) /= 163) call abort + if (iachar ("£")/= 163) call abort + if (achar (163) /= "£") call abort + if ("£" /= achar ( ichar ( "£"))) call abort + i = 163 + c = "£" + if (achar(i) /= "£") call abort + if (iachar(c) /= iachar("£")) call abort + if (iachar(achar(164)) /= 164) call abort + if (iachar ("¤")/= 164) call abort + if (achar (164) /= "¤") call abort + if ("¤" /= achar ( ichar ( "¤"))) call abort + i = 164 + c = "¤" + if (achar(i) /= "¤") call abort + if (iachar(c) /= iachar("¤")) call abort + if (iachar(achar(165)) /= 165) call abort + if (iachar ("¥")/= 165) call abort + if (achar (165) /= "¥") call abort + if ("¥" /= achar ( ichar ( "¥"))) call abort + i = 165 + c = "¥" + if (achar(i) /= "¥") call abort + if (iachar(c) /= iachar("¥")) call abort + if (iachar(achar(166)) /= 166) call abort + if (iachar ("¦")/= 166) call abort + if (achar (166) /= "¦") call abort + if ("¦" /= achar ( ichar ( "¦"))) call abort + i = 166 + c = "¦" + if (achar(i) /= "¦") call abort + if (iachar(c) /= iachar("¦")) call abort + if (iachar(achar(167)) /= 167) call abort + if (iachar ("§")/= 167) call abort + if (achar (167) /= "§") call abort + if ("§" /= achar ( ichar ( "§"))) call abort + i = 167 + c = "§" + if (achar(i) /= "§") call abort + if (iachar(c) /= iachar("§")) call abort + if (iachar(achar(168)) /= 168) call abort + if (iachar ("¨")/= 168) call abort + if (achar (168) /= "¨") call abort + if ("¨" /= achar ( ichar ( "¨"))) call abort + i = 168 + c = "¨" + if (achar(i) /= "¨") call abort + if (iachar(c) /= iachar("¨")) call abort + if (iachar(achar(169)) /= 169) call abort + if (iachar ("©")/= 169) call abort + if (achar (169) /= "©") call abort + if ("©" /= achar ( ichar ( "©"))) call abort + i = 169 + c = "©" + if (achar(i) /= "©") call abort + if (iachar(c) /= iachar("©")) call abort + if (iachar(achar(170)) /= 170) call abort + if (iachar ("ª")/= 170) call abort + if (achar (170) /= "ª") call abort + if ("ª" /= achar ( ichar ( "ª"))) call abort + i = 170 + c = "ª" + if (achar(i) /= "ª") call abort + if (iachar(c) /= iachar("ª")) call abort + if (iachar(achar(171)) /= 171) call abort + if (iachar ("«")/= 171) call abort + if (achar (171) /= "«") call abort + if ("«" /= achar ( ichar ( "«"))) call abort + i = 171 + c = "«" + if (achar(i) /= "«") call abort + if (iachar(c) /= iachar("«")) call abort + if (iachar(achar(172)) /= 172) call abort + if (iachar ("¬")/= 172) call abort + if (achar (172) /= "¬") call abort + if ("¬" /= achar ( ichar ( "¬"))) call abort + i = 172 + c = "¬" + if (achar(i) /= "¬") call abort + if (iachar(c) /= iachar("¬")) call abort + if (iachar(achar(173)) /= 173) call abort + if (iachar ("­")/= 173) call abort + if (achar (173) /= "­") call abort + if ("­" /= achar ( ichar ( "­"))) call abort + i = 173 + c = "­" + if (achar(i) /= "­") call abort + if (iachar(c) /= iachar("­")) call abort + if (iachar(achar(174)) /= 174) call abort + if (iachar ("®")/= 174) call abort + if (achar (174) /= "®") call abort + if ("®" /= achar ( ichar ( "®"))) call abort + i = 174 + c = "®" + if (achar(i) /= "®") call abort + if (iachar(c) /= iachar("®")) call abort + if (iachar(achar(175)) /= 175) call abort + if (iachar ("¯")/= 175) call abort + if (achar (175) /= "¯") call abort + if ("¯" /= achar ( ichar ( "¯"))) call abort + i = 175 + c = "¯" + if (achar(i) /= "¯") call abort + if (iachar(c) /= iachar("¯")) call abort + if (iachar(achar(176)) /= 176) call abort + if (iachar ("°")/= 176) call abort + if (achar (176) /= "°") call abort + if ("°" /= achar ( ichar ( "°"))) call abort + i = 176 + c = "°" + if (achar(i) /= "°") call abort + if (iachar(c) /= iachar("°")) call abort + if (iachar(achar(177)) /= 177) call abort + if (iachar ("±")/= 177) call abort + if (achar (177) /= "±") call abort + if ("±" /= achar ( ichar ( "±"))) call abort + i = 177 + c = "±" + if (achar(i) /= "±") call abort + if (iachar(c) /= iachar("±")) call abort + if (iachar(achar(178)) /= 178) call abort + if (iachar ("²")/= 178) call abort + if (achar (178) /= "²") call abort + if ("²" /= achar ( ichar ( "²"))) call abort + i = 178 + c = "²" + if (achar(i) /= "²") call abort + if (iachar(c) /= iachar("²")) call abort + if (iachar(achar(179)) /= 179) call abort + if (iachar ("³")/= 179) call abort + if (achar (179) /= "³") call abort + if ("³" /= achar ( ichar ( "³"))) call abort + i = 179 + c = "³" + if (achar(i) /= "³") call abort + if (iachar(c) /= iachar("³")) call abort + if (iachar(achar(180)) /= 180) call abort + if (iachar ("´")/= 180) call abort + if (achar (180) /= "´") call abort + if ("´" /= achar ( ichar ( "´"))) call abort + i = 180 + c = "´" + if (achar(i) /= "´") call abort + if (iachar(c) /= iachar("´")) call abort + if (iachar(achar(181)) /= 181) call abort + if (iachar ("µ")/= 181) call abort + if (achar (181) /= "µ") call abort + if ("µ" /= achar ( ichar ( "µ"))) call abort + i = 181 + c = "µ" + if (achar(i) /= "µ") call abort + if (iachar(c) /= iachar("µ")) call abort + if (iachar(achar(182)) /= 182) call abort + if (iachar ("¶")/= 182) call abort + if (achar (182) /= "¶") call abort + if ("¶" /= achar ( ichar ( "¶"))) call abort + i = 182 + c = "¶" + if (achar(i) /= "¶") call abort + if (iachar(c) /= iachar("¶")) call abort + if (iachar(achar(183)) /= 183) call abort + if (iachar ("·")/= 183) call abort + if (achar (183) /= "·") call abort + if ("·" /= achar ( ichar ( "·"))) call abort + i = 183 + c = "·" + if (achar(i) /= "·") call abort + if (iachar(c) /= iachar("·")) call abort + if (iachar(achar(184)) /= 184) call abort + if (iachar ("¸")/= 184) call abort + if (achar (184) /= "¸") call abort + if ("¸" /= achar ( ichar ( "¸"))) call abort + i = 184 + c = "¸" + if (achar(i) /= "¸") call abort + if (iachar(c) /= iachar("¸")) call abort + if (iachar(achar(185)) /= 185) call abort + if (iachar ("¹")/= 185) call abort + if (achar (185) /= "¹") call abort + if ("¹" /= achar ( ichar ( "¹"))) call abort + i = 185 + c = "¹" + if (achar(i) /= "¹") call abort + if (iachar(c) /= iachar("¹")) call abort + if (iachar(achar(186)) /= 186) call abort + if (iachar ("º")/= 186) call abort + if (achar (186) /= "º") call abort + if ("º" /= achar ( ichar ( "º"))) call abort + i = 186 + c = "º" + if (achar(i) /= "º") call abort + if (iachar(c) /= iachar("º")) call abort + if (iachar(achar(187)) /= 187) call abort + if (iachar ("»")/= 187) call abort + if (achar (187) /= "»") call abort + if ("»" /= achar ( ichar ( "»"))) call abort + i = 187 + c = "»" + if (achar(i) /= "»") call abort + if (iachar(c) /= iachar("»")) call abort + if (iachar(achar(188)) /= 188) call abort + if (iachar ("¼")/= 188) call abort + if (achar (188) /= "¼") call abort + if ("¼" /= achar ( ichar ( "¼"))) call abort + i = 188 + c = "¼" + if (achar(i) /= "¼") call abort + if (iachar(c) /= iachar("¼")) call abort + if (iachar(achar(189)) /= 189) call abort + if (iachar ("½")/= 189) call abort + if (achar (189) /= "½") call abort + if ("½" /= achar ( ichar ( "½"))) call abort + i = 189 + c = "½" + if (achar(i) /= "½") call abort + if (iachar(c) /= iachar("½")) call abort + if (iachar(achar(190)) /= 190) call abort + if (iachar ("¾")/= 190) call abort + if (achar (190) /= "¾") call abort + if ("¾" /= achar ( ichar ( "¾"))) call abort + i = 190 + c = "¾" + if (achar(i) /= "¾") call abort + if (iachar(c) /= iachar("¾")) call abort + if (iachar(achar(191)) /= 191) call abort + if (iachar ("¿")/= 191) call abort + if (achar (191) /= "¿") call abort + if ("¿" /= achar ( ichar ( "¿"))) call abort + i = 191 + c = "¿" + if (achar(i) /= "¿") call abort + if (iachar(c) /= iachar("¿")) call abort + if (iachar(achar(192)) /= 192) call abort + if (iachar ("À")/= 192) call abort + if (achar (192) /= "À") call abort + if ("À" /= achar ( ichar ( "À"))) call abort + i = 192 + c = "À" + if (achar(i) /= "À") call abort + if (iachar(c) /= iachar("À")) call abort + if (iachar(achar(193)) /= 193) call abort + if (iachar ("Á")/= 193) call abort + if (achar (193) /= "Á") call abort + if ("Á" /= achar ( ichar ( "Á"))) call abort + i = 193 + c = "Á" + if (achar(i) /= "Á") call abort + if (iachar(c) /= iachar("Á")) call abort + if (iachar(achar(194)) /= 194) call abort + if (iachar ("Â")/= 194) call abort + if (achar (194) /= "Â") call abort + if ("Â" /= achar ( ichar ( "Â"))) call abort + i = 194 + c = "Â" + if (achar(i) /= "Â") call abort + if (iachar(c) /= iachar("Â")) call abort + if (iachar(achar(195)) /= 195) call abort + if (iachar ("Ã")/= 195) call abort + if (achar (195) /= "Ã") call abort + if ("Ã" /= achar ( ichar ( "Ã"))) call abort + i = 195 + c = "Ã" + if (achar(i) /= "Ã") call abort + if (iachar(c) /= iachar("Ã")) call abort + if (iachar(achar(196)) /= 196) call abort + if (iachar ("Ä")/= 196) call abort + if (achar (196) /= "Ä") call abort + if ("Ä" /= achar ( ichar ( "Ä"))) call abort + i = 196 + c = "Ä" + if (achar(i) /= "Ä") call abort + if (iachar(c) /= iachar("Ä")) call abort + if (iachar(achar(197)) /= 197) call abort + if (iachar ("Å")/= 197) call abort + if (achar (197) /= "Å") call abort + if ("Å" /= achar ( ichar ( "Å"))) call abort + i = 197 + c = "Å" + if (achar(i) /= "Å") call abort + if (iachar(c) /= iachar("Å")) call abort + if (iachar(achar(198)) /= 198) call abort + if (iachar ("Æ")/= 198) call abort + if (achar (198) /= "Æ") call abort + if ("Æ" /= achar ( ichar ( "Æ"))) call abort + i = 198 + c = "Æ" + if (achar(i) /= "Æ") call abort + if (iachar(c) /= iachar("Æ")) call abort + if (iachar(achar(199)) /= 199) call abort + if (iachar ("Ç")/= 199) call abort + if (achar (199) /= "Ç") call abort + if ("Ç" /= achar ( ichar ( "Ç"))) call abort + i = 199 + c = "Ç" + if (achar(i) /= "Ç") call abort + if (iachar(c) /= iachar("Ç")) call abort + if (iachar(achar(200)) /= 200) call abort + if (iachar ("È")/= 200) call abort + if (achar (200) /= "È") call abort + if ("È" /= achar ( ichar ( "È"))) call abort + i = 200 + c = "È" + if (achar(i) /= "È") call abort + if (iachar(c) /= iachar("È")) call abort + if (iachar(achar(201)) /= 201) call abort + if (iachar ("É")/= 201) call abort + if (achar (201) /= "É") call abort + if ("É" /= achar ( ichar ( "É"))) call abort + i = 201 + c = "É" + if (achar(i) /= "É") call abort + if (iachar(c) /= iachar("É")) call abort + if (iachar(achar(202)) /= 202) call abort + if (iachar ("Ê")/= 202) call abort + if (achar (202) /= "Ê") call abort + if ("Ê" /= achar ( ichar ( "Ê"))) call abort + i = 202 + c = "Ê" + if (achar(i) /= "Ê") call abort + if (iachar(c) /= iachar("Ê")) call abort + if (iachar(achar(203)) /= 203) call abort + if (iachar ("Ë")/= 203) call abort + if (achar (203) /= "Ë") call abort + if ("Ë" /= achar ( ichar ( "Ë"))) call abort + i = 203 + c = "Ë" + if (achar(i) /= "Ë") call abort + if (iachar(c) /= iachar("Ë")) call abort + if (iachar(achar(204)) /= 204) call abort + if (iachar ("Ì")/= 204) call abort + if (achar (204) /= "Ì") call abort + if ("Ì" /= achar ( ichar ( "Ì"))) call abort + i = 204 + c = "Ì" + if (achar(i) /= "Ì") call abort + if (iachar(c) /= iachar("Ì")) call abort + if (iachar(achar(205)) /= 205) call abort + if (iachar ("Í")/= 205) call abort + if (achar (205) /= "Í") call abort + if ("Í" /= achar ( ichar ( "Í"))) call abort + i = 205 + c = "Í" + if (achar(i) /= "Í") call abort + if (iachar(c) /= iachar("Í")) call abort + if (iachar(achar(206)) /= 206) call abort + if (iachar ("Î")/= 206) call abort + if (achar (206) /= "Î") call abort + if ("Î" /= achar ( ichar ( "Î"))) call abort + i = 206 + c = "Î" + if (achar(i) /= "Î") call abort + if (iachar(c) /= iachar("Î")) call abort + if (iachar(achar(207)) /= 207) call abort + if (iachar ("Ï")/= 207) call abort + if (achar (207) /= "Ï") call abort + if ("Ï" /= achar ( ichar ( "Ï"))) call abort + i = 207 + c = "Ï" + if (achar(i) /= "Ï") call abort + if (iachar(c) /= iachar("Ï")) call abort + if (iachar(achar(208)) /= 208) call abort + if (iachar ("Ð")/= 208) call abort + if (achar (208) /= "Ð") call abort + if ("Ð" /= achar ( ichar ( "Ð"))) call abort + i = 208 + c = "Ð" + if (achar(i) /= "Ð") call abort + if (iachar(c) /= iachar("Ð")) call abort + if (iachar(achar(209)) /= 209) call abort + if (iachar ("Ñ")/= 209) call abort + if (achar (209) /= "Ñ") call abort + if ("Ñ" /= achar ( ichar ( "Ñ"))) call abort + i = 209 + c = "Ñ" + if (achar(i) /= "Ñ") call abort + if (iachar(c) /= iachar("Ñ")) call abort + if (iachar(achar(210)) /= 210) call abort + if (iachar ("Ò")/= 210) call abort + if (achar (210) /= "Ò") call abort + if ("Ò" /= achar ( ichar ( "Ò"))) call abort + i = 210 + c = "Ò" + if (achar(i) /= "Ò") call abort + if (iachar(c) /= iachar("Ò")) call abort + if (iachar(achar(211)) /= 211) call abort + if (iachar ("Ó")/= 211) call abort + if (achar (211) /= "Ó") call abort + if ("Ó" /= achar ( ichar ( "Ó"))) call abort + i = 211 + c = "Ó" + if (achar(i) /= "Ó") call abort + if (iachar(c) /= iachar("Ó")) call abort + if (iachar(achar(212)) /= 212) call abort + if (iachar ("Ô")/= 212) call abort + if (achar (212) /= "Ô") call abort + if ("Ô" /= achar ( ichar ( "Ô"))) call abort + i = 212 + c = "Ô" + if (achar(i) /= "Ô") call abort + if (iachar(c) /= iachar("Ô")) call abort + if (iachar(achar(213)) /= 213) call abort + if (iachar ("Õ")/= 213) call abort + if (achar (213) /= "Õ") call abort + if ("Õ" /= achar ( ichar ( "Õ"))) call abort + i = 213 + c = "Õ" + if (achar(i) /= "Õ") call abort + if (iachar(c) /= iachar("Õ")) call abort + if (iachar(achar(214)) /= 214) call abort + if (iachar ("Ö")/= 214) call abort + if (achar (214) /= "Ö") call abort + if ("Ö" /= achar ( ichar ( "Ö"))) call abort + i = 214 + c = "Ö" + if (achar(i) /= "Ö") call abort + if (iachar(c) /= iachar("Ö")) call abort + if (iachar(achar(215)) /= 215) call abort + if (iachar ("×")/= 215) call abort + if (achar (215) /= "×") call abort + if ("×" /= achar ( ichar ( "×"))) call abort + i = 215 + c = "×" + if (achar(i) /= "×") call abort + if (iachar(c) /= iachar("×")) call abort + if (iachar(achar(216)) /= 216) call abort + if (iachar ("Ø")/= 216) call abort + if (achar (216) /= "Ø") call abort + if ("Ø" /= achar ( ichar ( "Ø"))) call abort + i = 216 + c = "Ø" + if (achar(i) /= "Ø") call abort + if (iachar(c) /= iachar("Ø")) call abort + if (iachar(achar(217)) /= 217) call abort + if (iachar ("Ù")/= 217) call abort + if (achar (217) /= "Ù") call abort + if ("Ù" /= achar ( ichar ( "Ù"))) call abort + i = 217 + c = "Ù" + if (achar(i) /= "Ù") call abort + if (iachar(c) /= iachar("Ù")) call abort + if (iachar(achar(218)) /= 218) call abort + if (iachar ("Ú")/= 218) call abort + if (achar (218) /= "Ú") call abort + if ("Ú" /= achar ( ichar ( "Ú"))) call abort + i = 218 + c = "Ú" + if (achar(i) /= "Ú") call abort + if (iachar(c) /= iachar("Ú")) call abort + if (iachar(achar(219)) /= 219) call abort + if (iachar ("Û")/= 219) call abort + if (achar (219) /= "Û") call abort + if ("Û" /= achar ( ichar ( "Û"))) call abort + i = 219 + c = "Û" + if (achar(i) /= "Û") call abort + if (iachar(c) /= iachar("Û")) call abort + if (iachar(achar(220)) /= 220) call abort + if (iachar ("Ü")/= 220) call abort + if (achar (220) /= "Ü") call abort + if ("Ü" /= achar ( ichar ( "Ü"))) call abort + i = 220 + c = "Ü" + if (achar(i) /= "Ü") call abort + if (iachar(c) /= iachar("Ü")) call abort + if (iachar(achar(221)) /= 221) call abort + if (iachar ("Ý")/= 221) call abort + if (achar (221) /= "Ý") call abort + if ("Ý" /= achar ( ichar ( "Ý"))) call abort + i = 221 + c = "Ý" + if (achar(i) /= "Ý") call abort + if (iachar(c) /= iachar("Ý")) call abort + if (iachar(achar(222)) /= 222) call abort + if (iachar ("Þ")/= 222) call abort + if (achar (222) /= "Þ") call abort + if ("Þ" /= achar ( ichar ( "Þ"))) call abort + i = 222 + c = "Þ" + if (achar(i) /= "Þ") call abort + if (iachar(c) /= iachar("Þ")) call abort + if (iachar(achar(223)) /= 223) call abort + if (iachar ("ß")/= 223) call abort + if (achar (223) /= "ß") call abort + if ("ß" /= achar ( ichar ( "ß"))) call abort + i = 223 + c = "ß" + if (achar(i) /= "ß") call abort + if (iachar(c) /= iachar("ß")) call abort + if (iachar(achar(224)) /= 224) call abort + if (iachar ("à")/= 224) call abort + if (achar (224) /= "à") call abort + if ("à" /= achar ( ichar ( "à"))) call abort + i = 224 + c = "à" + if (achar(i) /= "à") call abort + if (iachar(c) /= iachar("à")) call abort + if (iachar(achar(225)) /= 225) call abort + if (iachar ("á")/= 225) call abort + if (achar (225) /= "á") call abort + if ("á" /= achar ( ichar ( "á"))) call abort + i = 225 + c = "á" + if (achar(i) /= "á") call abort + if (iachar(c) /= iachar("á")) call abort + if (iachar(achar(226)) /= 226) call abort + if (iachar ("â")/= 226) call abort + if (achar (226) /= "â") call abort + if ("â" /= achar ( ichar ( "â"))) call abort + i = 226 + c = "â" + if (achar(i) /= "â") call abort + if (iachar(c) /= iachar("â")) call abort + if (iachar(achar(227)) /= 227) call abort + if (iachar ("ã")/= 227) call abort + if (achar (227) /= "ã") call abort + if ("ã" /= achar ( ichar ( "ã"))) call abort + i = 227 + c = "ã" + if (achar(i) /= "ã") call abort + if (iachar(c) /= iachar("ã")) call abort + if (iachar(achar(228)) /= 228) call abort + if (iachar ("ä")/= 228) call abort + if (achar (228) /= "ä") call abort + if ("ä" /= achar ( ichar ( "ä"))) call abort + i = 228 + c = "ä" + if (achar(i) /= "ä") call abort + if (iachar(c) /= iachar("ä")) call abort + if (iachar(achar(229)) /= 229) call abort + if (iachar ("å")/= 229) call abort + if (achar (229) /= "å") call abort + if ("å" /= achar ( ichar ( "å"))) call abort + i = 229 + c = "å" + if (achar(i) /= "å") call abort + if (iachar(c) /= iachar("å")) call abort + if (iachar(achar(230)) /= 230) call abort + if (iachar ("æ")/= 230) call abort + if (achar (230) /= "æ") call abort + if ("æ" /= achar ( ichar ( "æ"))) call abort + i = 230 + c = "æ" + if (achar(i) /= "æ") call abort + if (iachar(c) /= iachar("æ")) call abort + if (iachar(achar(231)) /= 231) call abort + if (iachar ("ç")/= 231) call abort + if (achar (231) /= "ç") call abort + if ("ç" /= achar ( ichar ( "ç"))) call abort + i = 231 + c = "ç" + if (achar(i) /= "ç") call abort + if (iachar(c) /= iachar("ç")) call abort + if (iachar(achar(232)) /= 232) call abort + if (iachar ("è")/= 232) call abort + if (achar (232) /= "è") call abort + if ("è" /= achar ( ichar ( "è"))) call abort + i = 232 + c = "è" + if (achar(i) /= "è") call abort + if (iachar(c) /= iachar("è")) call abort + if (iachar(achar(233)) /= 233) call abort + if (iachar ("é")/= 233) call abort + if (achar (233) /= "é") call abort + if ("é" /= achar ( ichar ( "é"))) call abort + i = 233 + c = "é" + if (achar(i) /= "é") call abort + if (iachar(c) /= iachar("é")) call abort + if (iachar(achar(234)) /= 234) call abort + if (iachar ("ê")/= 234) call abort + if (achar (234) /= "ê") call abort + if ("ê" /= achar ( ichar ( "ê"))) call abort + i = 234 + c = "ê" + if (achar(i) /= "ê") call abort + if (iachar(c) /= iachar("ê")) call abort + if (iachar(achar(235)) /= 235) call abort + if (iachar ("ë")/= 235) call abort + if (achar (235) /= "ë") call abort + if ("ë" /= achar ( ichar ( "ë"))) call abort + i = 235 + c = "ë" + if (achar(i) /= "ë") call abort + if (iachar(c) /= iachar("ë")) call abort + if (iachar(achar(236)) /= 236) call abort + if (iachar ("ì")/= 236) call abort + if (achar (236) /= "ì") call abort + if ("ì" /= achar ( ichar ( "ì"))) call abort + i = 236 + c = "ì" + if (achar(i) /= "ì") call abort + if (iachar(c) /= iachar("ì")) call abort + if (iachar(achar(237)) /= 237) call abort + if (iachar ("í")/= 237) call abort + if (achar (237) /= "í") call abort + if ("í" /= achar ( ichar ( "í"))) call abort + i = 237 + c = "í" + if (achar(i) /= "í") call abort + if (iachar(c) /= iachar("í")) call abort + if (iachar(achar(238)) /= 238) call abort + if (iachar ("î")/= 238) call abort + if (achar (238) /= "î") call abort + if ("î" /= achar ( ichar ( "î"))) call abort + i = 238 + c = "î" + if (achar(i) /= "î") call abort + if (iachar(c) /= iachar("î")) call abort + if (iachar(achar(239)) /= 239) call abort + if (iachar ("ï")/= 239) call abort + if (achar (239) /= "ï") call abort + if ("ï" /= achar ( ichar ( "ï"))) call abort + i = 239 + c = "ï" + if (achar(i) /= "ï") call abort + if (iachar(c) /= iachar("ï")) call abort + if (iachar(achar(240)) /= 240) call abort + if (iachar ("ð")/= 240) call abort + if (achar (240) /= "ð") call abort + if ("ð" /= achar ( ichar ( "ð"))) call abort + i = 240 + c = "ð" + if (achar(i) /= "ð") call abort + if (iachar(c) /= iachar("ð")) call abort + if (iachar(achar(241)) /= 241) call abort + if (iachar ("ñ")/= 241) call abort + if (achar (241) /= "ñ") call abort + if ("ñ" /= achar ( ichar ( "ñ"))) call abort + i = 241 + c = "ñ" + if (achar(i) /= "ñ") call abort + if (iachar(c) /= iachar("ñ")) call abort + if (iachar(achar(242)) /= 242) call abort + if (iachar ("ò")/= 242) call abort + if (achar (242) /= "ò") call abort + if ("ò" /= achar ( ichar ( "ò"))) call abort + i = 242 + c = "ò" + if (achar(i) /= "ò") call abort + if (iachar(c) /= iachar("ò")) call abort + if (iachar(achar(243)) /= 243) call abort + if (iachar ("ó")/= 243) call abort + if (achar (243) /= "ó") call abort + if ("ó" /= achar ( ichar ( "ó"))) call abort + i = 243 + c = "ó" + if (achar(i) /= "ó") call abort + if (iachar(c) /= iachar("ó")) call abort + if (iachar(achar(244)) /= 244) call abort + if (iachar ("ô")/= 244) call abort + if (achar (244) /= "ô") call abort + if ("ô" /= achar ( ichar ( "ô"))) call abort + i = 244 + c = "ô" + if (achar(i) /= "ô") call abort + if (iachar(c) /= iachar("ô")) call abort + if (iachar(achar(245)) /= 245) call abort + if (iachar ("õ")/= 245) call abort + if (achar (245) /= "õ") call abort + if ("õ" /= achar ( ichar ( "õ"))) call abort + i = 245 + c = "õ" + if (achar(i) /= "õ") call abort + if (iachar(c) /= iachar("õ")) call abort + if (iachar(achar(246)) /= 246) call abort + if (iachar ("ö")/= 246) call abort + if (achar (246) /= "ö") call abort + if ("ö" /= achar ( ichar ( "ö"))) call abort + i = 246 + c = "ö" + if (achar(i) /= "ö") call abort + if (iachar(c) /= iachar("ö")) call abort + if (iachar(achar(247)) /= 247) call abort + if (iachar ("÷")/= 247) call abort + if (achar (247) /= "÷") call abort + if ("÷" /= achar ( ichar ( "÷"))) call abort + i = 247 + c = "÷" + if (achar(i) /= "÷") call abort + if (iachar(c) /= iachar("÷")) call abort + if (iachar(achar(248)) /= 248) call abort + if (iachar ("ø")/= 248) call abort + if (achar (248) /= "ø") call abort + if ("ø" /= achar ( ichar ( "ø"))) call abort + i = 248 + c = "ø" + if (achar(i) /= "ø") call abort + if (iachar(c) /= iachar("ø")) call abort + if (iachar(achar(249)) /= 249) call abort + if (iachar ("ù")/= 249) call abort + if (achar (249) /= "ù") call abort + if ("ù" /= achar ( ichar ( "ù"))) call abort + i = 249 + c = "ù" + if (achar(i) /= "ù") call abort + if (iachar(c) /= iachar("ù")) call abort + if (iachar(achar(250)) /= 250) call abort + if (iachar ("ú")/= 250) call abort + if (achar (250) /= "ú") call abort + if ("ú" /= achar ( ichar ( "ú"))) call abort + i = 250 + c = "ú" + if (achar(i) /= "ú") call abort + if (iachar(c) /= iachar("ú")) call abort + if (iachar(achar(251)) /= 251) call abort + if (iachar ("û")/= 251) call abort + if (achar (251) /= "û") call abort + if ("û" /= achar ( ichar ( "û"))) call abort + i = 251 + c = "û" + if (achar(i) /= "û") call abort + if (iachar(c) /= iachar("û")) call abort + if (iachar(achar(252)) /= 252) call abort + if (iachar ("ü")/= 252) call abort + if (achar (252) /= "ü") call abort + if ("ü" /= achar ( ichar ( "ü"))) call abort + i = 252 + c = "ü" + if (achar(i) /= "ü") call abort + if (iachar(c) /= iachar("ü")) call abort + if (iachar(achar(253)) /= 253) call abort + if (iachar ("ý")/= 253) call abort + if (achar (253) /= "ý") call abort + if ("ý" /= achar ( ichar ( "ý"))) call abort + i = 253 + c = "ý" + if (achar(i) /= "ý") call abort + if (iachar(c) /= iachar("ý")) call abort + if (iachar(achar(254)) /= 254) call abort + if (iachar ("þ")/= 254) call abort + if (achar (254) /= "þ") call abort + if ("þ" /= achar ( ichar ( "þ"))) call abort + i = 254 + c = "þ" + if (achar(i) /= "þ") call abort + if (iachar(c) /= iachar("þ")) call abort + if (iachar(achar(255)) /= 255) call abort + if (iachar ("ÿ")/= 255) call abort + if (achar (255) /= "ÿ") call abort + if ("ÿ" /= achar ( ichar ( "ÿ"))) call abort + i = 255 + c = "ÿ" + if (achar(i) /= "ÿ") call abort + if (iachar(c) /= iachar("ÿ")) call abort +end program main diff --git a/gcc/testsuite/gfortran.dg/achar_3.f90 b/gcc/testsuite/gfortran.dg/achar_3.f90 new file mode 100644 index 00000000000..3b6f9022f46 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/achar_3.f90 @@ -0,0 +1,9 @@ +! { dg-do compile } +! { dg-options "-Wall" } +program main + print *,achar(-3) ! { dg-warning "outside of range" } + print *,achar(200) ! { dg-warning "outside of range" } + print *,char(222+221) ! { dg-error "outside of range" } + print *,char(-44) ! { dg-error "outside of range" } + print *,iachar("ü") ! { dg-warning "outside of range" } +end program main -- 2.30.2