summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/fortran/ChangeLog25
-rw-r--r--gcc/fortran/arith.c14
-rw-r--r--gcc/fortran/arith.h2
-rw-r--r--gcc/fortran/gfortran.h3
-rw-r--r--gcc/fortran/misc.c1
-rw-r--r--gcc/fortran/simplify.c111
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/gfortran.dg/achar_2.f902026
-rw-r--r--gcc/testsuite/gfortran.dg/achar_3.f909
9 files changed, 2105 insertions, 92 deletions
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 <Thomas.Koenig@online.de>
+
+ 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 <roger@eyesopen.com>
* 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 <Thomas.Koenig@online.de>
+
+ PR libfortran/30389
+ * gfortran.dg/achar_2.f90: New test.
+ * gfortran.dg/achar_3.f90: New test.
+
2007-01-27 Ian Lance Taylor <iant@google.com>
* 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