[patch, RFC] Fix PR 30389 - ASCII functions

Thomas Koenig Thomas.Koenig@online.de
Sun Jan 28 10:51:00 GMT 2007


:REVIEWMAIL:

Here's what I committed as revision 121255, based on Steve's
approval and Steve's and and Brooks' comments.

Thanks!

	Thomas

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-28  Thomas Koenig  <Thomas.Koenig@online.de>

	PR libfortran/30389
	* gfortran.dg/achar_2.f90:  New test.
	* gfortran.dg/achar_3.f90:  New test.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: achar-final.diff
Type: text/x-diff
Size: 9085 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20070128/badbeef0/attachment.bin>
-------------- next part --------------
! { 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
-------------- next part --------------
! { 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


More information about the Gcc-patches mailing list