From f6bbde28c477c7c5cb4d6c4d3e561b2d429afccf Mon Sep 17 00:00:00 2001
From: Zack Weinberg <zack@gcc.gnu.org>
Date: Fri, 8 Dec 2000 03:00:26 +0000
Subject: [PATCH] safe-ctype.h: New file.

include:
	* safe-ctype.h: New file.
libiberty:
	* safe-ctype.c: New file.
	* Makefile.in (CFILES): Add safe-ctype.c.
	(REQUIRED_OFILES): Add safe-ctype.o.

	* argv.c: Define ISBLANK and use it, not isspace.
	* basename.c, cplus-dem.c, fnmatch.c, pexecute.c, strtod.c,
	strtol.c, strtoul.c: Include safe-ctype.h, not ctype.h.  Use
	uppercase ctype macros.  Don't test ISUPPER(c)/ISLOWER(c)
	before calling TOLOWER(c)/TOUPPER(c).
gcc:
	* Makefile.in (HOST_RTL): Add safe-ctype.o.
	(safe-ctype.o): New rule.
	* system.h: Include safe-ctype.h, not ctype.h.  No need to
	wrap ctype macros.

	* cpphash.h: Zap IStable and related macros.  Define is_* in
	terms of safe-ctype.h macros.
	* cppinit.c: Delete the IStable and all related code.

	* tradcpp.c: Delete is_idchar, is_idstart, is_hor_space, and
	is_space arrays.  Delete initialize_char_syntax.  Change all
	references to the above arrays to use macros instead.
	* tradcpp.h: Define is_idchar, is_idstart, is_space, and
	is_nvspace in terms of safe_ctype.h's macros.
	* tradcif.y: is_idchar, is_idstart are macros not arrays.

	* config/i370/i370.c, config/winnt/dirent.c,
	config/winnt/fixinc-nt.c, config/winnt/ld.c:
	Use uppercase ctype macros.  If we included ctype.h,
	include safe-ctype.h instead.

	* fixinc/fixfixes.c: Use uppercase ctype macros.  Don't test
	ISLOWER(c) before calling TOUPPER(c).
	* fixinc/fixincl.c (extract_quoted_files): Simplify out some gunk.
	* fixinc/gnu-regex.c: Include safe-ctype.h, not ctype.h.  No need to
	wrap ctype macros.  Don't test ISUPPER(x) before calling TOLOWER(x).
gcc/ch:
	* lex.c: Don't bother checking whether ISUPPER(c) before
	calling TOLOWER(c).  Don't bother checking whether isascii(c)
	before testing ISSPACE(c); ISSPACE(c) includes '\n'.
gcc/f:
	* Make-lang.in: Link f/fini with safe-ctype.o.
	* bad.c: Don't test ISUPPER(c) || ISLOWER(c) before calling TOUPPER(c).
	* com.c: Use TOUPPER, not ffesrc_toupper.
	* fini.c: Don't test ISALPHA(c) before calling TOUPPER(c)/TOLOWER(c).
	* intrin.c: Don't test IN_CTYPE_DOMAIN(c).
	* src.c: Delete ffesrc_toupper_ and ffesrc_tolower_ and their
	initializing code; use TOUPPER and TOLOWER instead of
	ffesrc_toupper and ffesrc_tolower.
	* src.h: Don't declare ffesrc_toupper_ or ffesrc_tolower_.
	Don't define ffesrc_toupper or ffesrc_tolower.
gcc/java:
	* jvgenmain.c: Use ISPRINT not isascii.

From-SVN: r38124
---
 gcc/ChangeLog                |  295 +++++----
 gcc/Makefile.in              |    7 +-
 gcc/ch/ChangeLog             | 1168 +++++++++++++++++-----------------
 gcc/ch/lex.c                 |    9 +-
 gcc/config/i370/i370.c       |   14 +-
 gcc/config/winnt/dirent.c    |    6 +-
 gcc/config/winnt/fixinc-nt.c |    2 +-
 gcc/config/winnt/ld.c        |    2 +-
 gcc/cpphash.h                |   29 +-
 gcc/cppinit.c                |   45 +-
 gcc/f/ChangeLog              |   31 +-
 gcc/f/Make-lang.in           |    4 +-
 gcc/f/bad.c                  |    2 +-
 gcc/f/com.c                  |    2 +-
 gcc/f/fini.c                 |   12 +-
 gcc/f/intrin.c               |    4 -
 gcc/f/src.c                  |   46 +-
 gcc/f/src.h                  |    4 -
 gcc/fixinc/fixfixes.c        |   20 +-
 gcc/fixinc/fixincl.c         |    8 +-
 gcc/fixinc/gnu-regex.c       |   50 +-
 gcc/java/ChangeLog           |  738 ++++++++++-----------
 gcc/java/jvgenmain.c         |    2 +-
 gcc/system.h                 |   89 +--
 gcc/tradcif.y                |    6 +-
 gcc/tradcpp.c                |  183 ++----
 gcc/tradcpp.h                |    6 +-
 include/ChangeLog            |    4 +
 include/safe-ctype.h         |  105 +++
 libiberty/ChangeLog          |   14 +-
 libiberty/Makefile.in        |   24 +-
 libiberty/argv.c             |   11 +-
 libiberty/basename.c         |    4 +-
 libiberty/cplus-dem.c        |   65 +-
 libiberty/fnmatch.c          |    6 +-
 libiberty/pexecute.c         |    2 +-
 libiberty/safe-ctype.c       |  162 +++++
 libiberty/strtod.c           |   12 +-
 libiberty/strtol.c           |   14 +-
 libiberty/strtoul.c          |    8 +-
 40 files changed, 1641 insertions(+), 1574 deletions(-)
 create mode 100644 include/safe-ctype.h
 create mode 100644 libiberty/safe-ctype.c

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b569533e7b38..ddb54b728fbe 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,32 @@
+2000-12-07  Zack Weinberg  <zack@wolery.stanford.edu>
+
+	* Makefile.in (HOST_RTL): Add safe-ctype.o.
+	(safe-ctype.o): New rule.
+	* system.h: Include safe-ctype.h, not ctype.h.  No need to
+	wrap ctype macros.
+
+	* cpphash.h: Zap IStable and related macros.  Define is_* in
+	terms of safe-ctype.h macros.
+	* cppinit.c: Delete the IStable and all related code.
+
+	* tradcpp.c: Delete is_idchar, is_idstart, is_hor_space, and
+	is_space arrays.  Delete initialize_char_syntax.  Change all
+	references to the above arrays to use macros instead.
+	* tradcpp.h: Define is_idchar, is_idstart, is_space, and
+	is_nvspace in terms of safe_ctype.h's macros.
+	* tradcif.y: is_idchar, is_idstart are macros not arrays.
+
+	* config/i370/i370.c, config/winnt/dirent.c,
+	config/winnt/fixinc-nt.c, config/winnt/ld.c:
+	Use uppercase ctype macros.  If we included ctype.h,
+	include safe-ctype.h instead.
+
+	* fixinc/fixfixes.c: Use uppercase ctype macros.  Don't test
+	ISLOWER(c) before calling TOUPPER(c).
+	* fixinc/fixincl.c (extract_quoted_files): Simplify out some gunk.
+	* fixinc/gnu-regex.c: Include safe-ctype.h, not ctype.h.  No need to
+	wrap ctype macros.  Don't test ISUPPER(x) before calling TOLOWER(x).
+
 2000-12-07  DJ Delorie  <dj@redhat.com>
 
 	* c-decl.c (grokdeclarator): preserve previous alignments when
@@ -5,27 +34,27 @@
 
 2000-12-07  Neil Booth  <neilb@earthling.net>
 
-        * cppfiles.c (struct include_file): Move from cpphash.h.
-        (_cpp_never_reread): New function.
-        (open_file, read_include_file): Use it.
-        (stack_include_file): Set the buffer's sysp according to the
-        path in which the file was found.
-        (find_include_file): Don't set sysp.
-        (cpp_make_system_header, actual_directory): Update.
-        (_cpp_execute_include): Do #include_next lookup handling here,
-        not in cpplib.c.  Use _cpp_never_reread.
-        * cpphash.h (struct_include_file): Remove.
-        (struct cpp_buffer): New member sysp.
-        (CPP_IN_SYSTEM_HEADER, _cpp_execute_include): Update.
-        (_cpp_never_reread): New.
-        * cpplib.c (read_line_number): Rename read_flag.  Rework slightly.
-        (end_directive): Clear line_extension flag.
-        (_cpp_handle_directive): Set line_extension flag for #number.
-        (do_include_next): Handle path lookup in _cpp_execute_include.
-        (do_line): Cleanup to use read_flag.  Don't allow flags in #line.
-        (_cpp_do_file_change): Update.
-        (do_pragma_once): Use cpp_never_reread.  Clean up.
-        * cpplib.h (struct lexer_state): New member line_extension.
+	* cppfiles.c (struct include_file): Move from cpphash.h.
+	(_cpp_never_reread): New function.
+	(open_file, read_include_file): Use it.
+	(stack_include_file): Set the buffer's sysp according to the
+	path in which the file was found.
+	(find_include_file): Don't set sysp.
+	(cpp_make_system_header, actual_directory): Update.
+	(_cpp_execute_include): Do #include_next lookup handling here,
+	not in cpplib.c.  Use _cpp_never_reread.
+	* cpphash.h (struct_include_file): Remove.
+	(struct cpp_buffer): New member sysp.
+	(CPP_IN_SYSTEM_HEADER, _cpp_execute_include): Update.
+	(_cpp_never_reread): New.
+	* cpplib.c (read_line_number): Rename read_flag.  Rework slightly.
+	(end_directive): Clear line_extension flag.
+	(_cpp_handle_directive): Set line_extension flag for #number.
+	(do_include_next): Handle path lookup in _cpp_execute_include.
+	(do_line): Cleanup to use read_flag.  Don't allow flags in #line.
+	(_cpp_do_file_change): Update.
+	(do_pragma_once): Use cpp_never_reread.  Clean up.
+	* cpplib.h (struct lexer_state): New member line_extension.
 
 2000-12-07  Richard Henderson  <rth@redhat.com>
 
@@ -39,14 +68,14 @@
 
 2000-12-07  Neil Booth  <neilb@earthling.net>
 
-        * c-common.c (parse_in): Make a cpp_reader *.
-        * cppfiles.c (_cpp_fake_include): Remove.
-        * cpphash.h: Similarly.
-        * cpplib.c (do_line): Don't call _cpp_fake_include.  A valid
-        #line always creates a callback; FC_RENAME if there are no
-        #line flags.
-        * fix-header.c (read_scan_file): cpp_push_buffer cannot fail.
-        The first EOF must be our get_char buffer.
+	* c-common.c (parse_in): Make a cpp_reader *.
+	* cppfiles.c (_cpp_fake_include): Remove.
+	* cpphash.h: Similarly.
+	* cpplib.c (do_line): Don't call _cpp_fake_include.  A valid
+	#line always creates a callback; FC_RENAME if there are no
+	#line flags.
+	* fix-header.c (read_scan_file): cpp_push_buffer cannot fail.
+	The first EOF must be our get_char buffer.
 
 2000-12-07  Joseph S. Myers  <jsm28@cam.ac.uk>
 
@@ -91,17 +120,17 @@
 
 2000-12-06      Joel Sherrill <joel@OARcorp.com>
 
-        * config.gcc (a29k*-*-rtems*, arm*-*-rtems*, c4x-*-rtems*, 
-        h8300-*-rtems*, hppa1.1-*-rtems, *mips*-*-rtems*): New targets.
-        * config.gcc (*-rtems*): Add support for gthr-rtems.h.
-        * gthr-rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
-        config/h8300/rtems.h, config/mips/rtems.h: New files.
+	* config.gcc (a29k*-*-rtems*, arm*-*-rtems*, c4x-*-rtems*,
+	h8300-*-rtems*, hppa1.1-*-rtems, *mips*-*-rtems*): New targets.
+	* config.gcc (*-rtems*): Add support for gthr-rtems.h.
+	* gthr-rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
+	config/h8300/rtems.h, config/mips/rtems.h: New files.
 
 2000-12-06  Mark Kettenis  <kettenis@gnu.org>
 
 	* config.gcc: Reorganize handling of *-*-gnu*, to share target
 	specific make details with Linux.  Update comments to clarify
-        the distinction between GNU/Linux and GNU/Hurd.
+	the distinction between GNU/Linux and GNU/Hurd.
 
 Wed Dec  6 19:22:02 2000  Jeffrey A Law  (law@cygnus.com)
 
@@ -163,9 +192,9 @@ Wed Dec  6 21:03:41 2000  J"orn Rennecke <amylaar@redhat.com>
 	* final.c (final_addr_vec_align): Fix clipping to BIGGEST_ALIGNMENT.
 
 2000-12-06  Sylvain Pion  <Sylvain.Pion@sophia.inria.fr>
-	  
-        * cpplex.c (skip_escaped_newlines): Don't warn for spaces between
-        backslash and newline, when inside a comment.
+
+	* cpplex.c (skip_escaped_newlines): Don't warn for spaces between
+	backslash and newline, when inside a comment.
 
 2000-12-06  Joseph S. Myers  <jsm28@cam.ac.uk>
 
@@ -200,16 +229,16 @@ Tue Dec  5 20:09:14 2000  Jeffrey A Law  (law@cygnus.com)
 
 2000-12-05  Neil Booth  <neilb@earthling.net>
 
-        * cppfiles.c (stack_include_file): Push zero-length buffers
-        in case of failure.  Return void, as we don't fail any more.
-        (read_include_file): Check for files we shouldn't re-read.
-        Don't return an error code; errors are implied by marking the
-        file NEVER_REREAD.
-        (_cpp_execute_include): Move the recursion and in-macro checks
-        here.  Update for stack_include_file not failing.
-        * cpplib.c (cpp_push_buffer): Always succeed, since
-        _cpp_execute_include performs the recursion check.  Tidy up.
-        * cpplib.h (cpp_push_buffer): Update prototype.
+	* cppfiles.c (stack_include_file): Push zero-length buffers
+	in case of failure.  Return void, as we don't fail any more.
+	(read_include_file): Check for files we shouldn't re-read.
+	Don't return an error code; errors are implied by marking the
+	file NEVER_REREAD.
+	(_cpp_execute_include): Move the recursion and in-macro checks
+	here.  Update for stack_include_file not failing.
+	* cpplib.c (cpp_push_buffer): Always succeed, since
+	_cpp_execute_include performs the recursion check.  Tidy up.
+	* cpplib.h (cpp_push_buffer): Update prototype.
 
 2000-12-05  Alexandre Oliva  <aoliva@redhat.com>
 
@@ -276,7 +305,7 @@ Tue Dec  5 20:09:14 2000  Jeffrey A Law  (law@cygnus.com)
 
 	* config/arm/arm.c (arm_override_options): Test 'insn_flags' not
 	'tune_flags' for XScale nature.
-	Remove spurious test of HARD_FLOAT and XScale flags. 
+	Remove spurious test of HARD_FLOAT and XScale flags.
 
 	* config/arm/arm.md (umulsidi3adddi): Restore "=&r" register
 	contraint, accidentally changed during XScale contribution.
@@ -294,13 +323,13 @@ Tue Dec  5 20:09:14 2000  Jeffrey A Law  (law@cygnus.com)
 
 2000-12-04  Neil Booth  <neilb@earthling.net>
 
-        * tradcif.y: Move lexptr to top of file.  Add rule to handle
-        assertions in conditional expressions.
-        * tradcpp.c (parse_answer): Assertions do not need to go to
-        end of line in conditional directives.
-        (parse_assertion): Get first character of identifiers correct.
-        (test_assertion): New function.
-        * tradcpp.h (test_assertion): New prototype.
+	* tradcif.y: Move lexptr to top of file.  Add rule to handle
+	assertions in conditional expressions.
+	* tradcpp.c (parse_answer): Assertions do not need to go to
+	end of line in conditional directives.
+	(parse_assertion): Get first character of identifiers correct.
+	(test_assertion): New function.
+	* tradcpp.h (test_assertion): New prototype.
 
 2000-12-01  Rodney Brown  <RodneyBrown@mynd.com>
 
@@ -339,19 +368,19 @@ Tue Dec  5 20:09:14 2000  Jeffrey A Law  (law@cygnus.com)
 
 2000-12-04  Neil Booth  <neilb@earthling.net>
 
-        * cppinternals.texi: New file.
+	* cppinternals.texi: New file.
 
 2000-12-04  Neil Booth  <neilb@earthling.net>
 
-        * cppfiles.c (cpp_make_system_header): Take 2 booleans,
-        and operate on current buffer.
-        (cpp_read_file): Rename _cpp_read_file.  
-        * cpplib.c (do_line, do_pragma_system_header): Update calls to
-        cpp_make_system_header.
-        * fix-header.c: Similarly.
-        * cpphash.h (_cpp_read_file): Move from... 
-        * cpplib.h: ... here.
-        * cppinit.c (do_includes, cpp_start_read): Update appropriately.
+	* cppfiles.c (cpp_make_system_header): Take 2 booleans,
+	and operate on current buffer.
+	(cpp_read_file): Rename _cpp_read_file.
+	* cpplib.c (do_line, do_pragma_system_header): Update calls to
+	cpp_make_system_header.
+	* fix-header.c: Similarly.
+	* cpphash.h (_cpp_read_file): Move from...
+	* cpplib.h: ... here.
+	* cppinit.c (do_includes, cpp_start_read): Update appropriately.
 
 2000-12-03  Kaveh R. Ghazi  <ghazi@teal.rutgers.edu>
 
@@ -466,9 +495,9 @@ Tue Dec  5 20:09:14 2000  Jeffrey A Law  (law@cygnus.com)
 2000-12-03  Laurynas Biveinis  <lauras@softhome.net>
 	    Bruce Korb  <bkorb@gnu.org>
 
-        * Makefile.in: pass $(build_canonical) to mkfixinc.sh.
-        * fixinc/mkfixinc.sh: accept build system name as an argument.
-        Use it for choosing the fix build method.  Use the target for
+	* Makefile.in: pass $(build_canonical) to mkfixinc.sh.
+	* fixinc/mkfixinc.sh: accept build system name as an argument.
+	Use it for choosing the fix build method.  Use the target for
 	selecting special fix rules.
 
 2000-12-03  Bernd Schmidt  <bernds@redhat.co.uk>
@@ -553,11 +582,11 @@ Tue Dec  5 20:09:14 2000  Jeffrey A Law  (law@cygnus.com)
 
 2000-12-03  Neil Booth  <neilb@earthling.net>
 
-        * cppmacro.c (funlike_invocation_p): Re-disable macros enabled
-        by contexts drops AFTER argument pre-expansion, so that they
-        remain enabled during argument pre-expansion.
-        (_cpp_pop_context): Unconditionally re-enable a macro when
-        dropping a context level.
+	* cppmacro.c (funlike_invocation_p): Re-disable macros enabled
+	by contexts drops AFTER argument pre-expansion, so that they
+	remain enabled during argument pre-expansion.
+	(_cpp_pop_context): Unconditionally re-enable a macro when
+	dropping a context level.
 
 2000-12-03  Manfred Hollstein  <manfredh@redhat.com>
 
@@ -579,7 +608,7 @@ Tue Dec  5 20:09:14 2000  Jeffrey A Law  (law@cygnus.com)
 
 	* c-common.c (c_common_nodes_and_builtins): Declare builtin
 	strcat, strncat, strspn and strcspn.
-	(string_ftype_string_cstring): Renamed from `string_ftype_ptr_ptr'. 
+	(string_ftype_string_cstring): Renamed from `string_ftype_ptr_ptr'.
 
 	* extend.texi (strcat, strcspn, strncat, strspn): Document new
 	builtins.
@@ -608,16 +637,16 @@ Tue Dec  5 20:09:14 2000  Jeffrey A Law  (law@cygnus.com)
 	(do_ifndef): Likewise.
 
 2000-12-02  Daniel Berlin  <dberlin@redhat.com>
-            Bruce Korb  <bkorb@gnu.org>
+	    Bruce Korb  <bkorb@gnu.org>
 
-        * fixinc/*: global substitute /__MSDOS__/SEPARATE_FIX_PROC/
-        * fixinc/mkfixinc.sh: prepare to use Makefile.BEOS for *-*-beos*
-        * fixinc/Makefile.DOS: define SEPARATE_FIX_PROC for build
-        * fixinc/fixfix.c(wrap_fix): avoid wrapping files that
-        use the "__need_" hackery.  It breaks them.
-        * fixinc/fixincl.c(process - SEPARATE_FIX_PROC):
-        Sometimes on DOS and BeOS the temp output file cannot be opened.
-        Skip the file noisily.  Ought to be fixed instead.
+	* fixinc/*: global substitute /__MSDOS__/SEPARATE_FIX_PROC/
+	* fixinc/mkfixinc.sh: prepare to use Makefile.BEOS for *-*-beos*
+	* fixinc/Makefile.DOS: define SEPARATE_FIX_PROC for build
+	* fixinc/fixfix.c(wrap_fix): avoid wrapping files that
+	use the "__need_" hackery.  It breaks them.
+	* fixinc/fixincl.c(process - SEPARATE_FIX_PROC):
+	Sometimes on DOS and BeOS the temp output file cannot be opened.
+	Skip the file noisily.  Ought to be fixed instead.
 
 2000-12-02  Bruce Korb  <bkorb@gnu.org>
 
@@ -673,10 +702,10 @@ Tue Dec  5 20:09:14 2000  Jeffrey A Law  (law@cygnus.com)
 
 2000-12-02  Neil Booth  <neilb@earthling.net>
 
-        * tradcpp.c (struct answer, parse_assertion, parse_answer,
-        canonicalize_text, find_answer): New.
-        (do_assert, do_unassert): Provide appropriate function bodies.
-        (union hashval): New member answers.
+	* tradcpp.c (struct answer, parse_assertion, parse_answer,
+	canonicalize_text, find_answer): New.
+	(do_assert, do_unassert): Provide appropriate function bodies.
+	(union hashval): New member answers.
 
 2000-11-23  Marek Michalkiewicz  <marekm@linux.org.pl>
 
@@ -703,7 +732,7 @@ Tue Dec  5 20:09:14 2000  Jeffrey A Law  (law@cygnus.com)
 
 2000-12-02  Neil Booth  <neilb@earthling.net>
 
-        * cppexp.c (parse_number): Update diagnostic test.
+	* cppexp.c (parse_number): Update diagnostic test.
 
 2000-12-02  Bernd Schmidt  <bernds@redhat.co.uk>
 
@@ -720,7 +749,7 @@ Tue Dec  5 20:09:14 2000  Jeffrey A Law  (law@cygnus.com)
 
 	* install.texi (Installation): Remove obsolete description for
 	libstdc++ which is now an integral part of GCC.
-	
+
 2000-12-01  Jim Blandy  <jimb@redhat.com>
 
 	* dbxout.c (dbxout_parms): Correctly describe parameters passed by
@@ -794,19 +823,19 @@ Tue Dec  5 20:09:14 2000  Jeffrey A Law  (law@cygnus.com)
 
 2000-12-01  Neil Booth  <neilb@earthling.net>
 
-        * cppinit.c (initialize): Forgotten prototype.
-        * cpplex.c (_cpp_lex_token): Loop until not skipping.
-        Always clear PREV_WHITE upon meeting a new line.
-        * cpplib.c (end_directive): Set pfile->skipping after
-        skip_rest_of_line.
-        * cpplib.h (cpp_reader): Remove macro_pos.
-        * cppmacro.c (cpp_get_line): Don't do anything special inside
-        macros.  
-        (parse_arg): Add PREV_WHITE if a token appears after new lines.
-        (funlike_invocation_p): Save and restore the output position
-        over a successful check for a '('.
-        (enter_macro_context): Delete uses of macro_pos.
-        (cpp_get_token): Don't use pfile->skipping.
+	* cppinit.c (initialize): Forgotten prototype.
+	* cpplex.c (_cpp_lex_token): Loop until not skipping.
+	Always clear PREV_WHITE upon meeting a new line.
+	* cpplib.c (end_directive): Set pfile->skipping after
+	skip_rest_of_line.
+	* cpplib.h (cpp_reader): Remove macro_pos.
+	* cppmacro.c (cpp_get_line): Don't do anything special inside
+	macros.
+	(parse_arg): Add PREV_WHITE if a token appears after new lines.
+	(funlike_invocation_p): Save and restore the output position
+	over a successful check for a '('.
+	(enter_macro_context): Delete uses of macro_pos.
+	(cpp_get_token): Don't use pfile->skipping.
 
 2000-12-01  Phil Edwards  <pme@sources.redhat.com>
 
@@ -912,15 +941,15 @@ Tue Dec  5 20:09:14 2000  Jeffrey A Law  (law@cygnus.com)
 	the tail recursion sequence.
 
 2000-11-30  J. David Anglin  <dave.anglin@nrc.ca>
-            Bruce Korb  <bkorb@gnu.org>
+	    Bruce Korb  <bkorb@gnu.org>
 
 	* fixinc/inclhack.def(): prevent dual double definition protection
 	* fixinc/fixincl.x: regenerate
 
 2000-11-29  Loren J. Rittle  <ljrittle@acm.org>
 
-        * fixinc/Makefile.in (fixincl.x): Explicitly state the
-        location of the generated file.
+	* fixinc/Makefile.in (fixincl.x): Explicitly state the
+	location of the generated file.
 
 2000-11-30  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
 
@@ -949,12 +978,12 @@ Thu Nov 30 01:12:52 2000  Jeffrey A Law  (law@cygnus.com)
 
 2000-11-30  Neil Booth  <neilb@earthling.net>
 
-        * objc/objc-act.c (lang_init, finish_file, maybe_objc_comptypes,
-        maybe_objc_check_decl, build_objc_string_object,
-        objc_declare_alias, objc_declare_class, build_message_expr,
-        build_protocol_expr, build_selector_expr, build_encode_expr,
-        get_class_ivars, start_class, start_protocol): Remove
-        redundant code, assuming doing_objc_thang is true.
+	* objc/objc-act.c (lang_init, finish_file, maybe_objc_comptypes,
+	maybe_objc_check_decl, build_objc_string_object,
+	objc_declare_alias, objc_declare_class, build_message_expr,
+	build_protocol_expr, build_selector_expr, build_encode_expr,
+	get_class_ivars, start_class, start_protocol): Remove
+	redundant code, assuming doing_objc_thang is true.
 
 2000-11-29  John David Anglin  <dave@hiauly1.hia.nrc.ca>
 
@@ -1048,10 +1077,10 @@ Thu Nov 30 01:12:52 2000  Jeffrey A Law  (law@cygnus.com)
 
 2000-11-29  Neil Booth  <neilb@earthling.net>
 
-        * c-decl.c (c_decode_option): Don't handle -lang-objc.
-        * objc/lang-options.h: Remove -lang-objc.
-        * objc/lang-specs.h: Don't pass -lang-objc to cc1obj.
-        * objc/objc-act.c (lang_init_options): Set c_language.
+	* c-decl.c (c_decode_option): Don't handle -lang-objc.
+	* objc/lang-options.h: Remove -lang-objc.
+	* objc/lang-specs.h: Don't pass -lang-objc to cc1obj.
+	* objc/objc-act.c (lang_init_options): Set c_language.
 
 2000-11-29  Jakub Jelinek  <jakub@redhat.com>
 
@@ -1060,7 +1089,7 @@ Thu Nov 30 01:12:52 2000  Jeffrey A Law  (law@cygnus.com)
 
 2000-11-29  Neil Booth  <neilb@earthling.net>
 
-        * c-pragma.c (init_pragma): Update for parse_in type change.
+	* c-pragma.c (init_pragma): Update for parse_in type change.
 
 2000-11-29  Laurynas Biveinis  <lauras@softhome.net>
 
@@ -1129,8 +1158,8 @@ Wed Nov 29 00:08:23 2000  J"orn Rennecke <amylaar@redhat.com>
 2000-11-28  Neil Booth  <neilb@earthling.net>
 
 	* c-common.h: Remove flag_digraphs.
-	* c-decl.c: Remove flag_digraphs.  
-	(c_decode_option): Don't set it. 
+	* c-decl.c: Remove flag_digraphs.
+	(c_decode_option): Don't set it.
 	* c-lex.c (init_c_lex): Don't do anything for digraphs.
 
 2000-11-28  Richard Henderson  <rth@redhat.com>
@@ -1246,7 +1275,7 @@ Tue Nov 28 09:53:50 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 
 2000-11-27  Neil Booth  <neilb@earthling.net>
 
-	* cppinit.c (cpp_reader_init): Remove handling of warn_paste   
+	* cppinit.c (cpp_reader_init): Remove handling of warn_paste
 	command line options.
 	(cpp_handle_option): Similarly.
 	* cpplib.h (struct cpp_options): Remove warn_paste.
@@ -1300,7 +1329,7 @@ Mon Nov 27 17:22:56 MET 2000  Jan Hubicka  <jh@suse.cz>
 
 	* arm.md (arm_adddi3, adddi_sesidi_di, adddi_zesidi_di, arm_addsi3,
 	arm_subsi3_insn, anddi_zesidi_di, arm_andsi3_insn, anddi_notdi_di,
-	anddi_notzesidi_di, anddi_notsesidi_di, arm_iorsi3, 
+	anddi_notzesidi_di, anddi_notsesidi_di, arm_iorsi3,
 	one_cmpldi2): Merge with splitters to create define_insn_and_split
  	patterns.  Remove redundant splits.
 	(peephole2 for add:SI of invalid immediate): New.
@@ -1427,7 +1456,7 @@ Mon Nov 27 17:22:56 MET 2000  Jan Hubicka  <jh@suse.cz>
 	* cpplib.h (struct cpp_reader): Remove lang_asm.
 	(struct cpp_options): Remove c89. New members lang,
 	extended_numbers.
-	* cppexp.c (parse_number): Use them. 
+	* cppexp.c (parse_number): Use them.
 	* cpphash.h (VALID_SIGN): Use them.
 	* cppinit.c (set_lang, cpp_start_read): Update.
 	* cpplex.c (parse_string, _cpp_lex_token): Update.
@@ -1600,7 +1629,7 @@ Sun Nov 26 10:02:37 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 2000-11-24  Nick Clifton  <nickc@redhat.com>
 
 	* config.gcc (v850-*-*): Define c_target_objs and
-        cxx_target_objs.
+	cxx_target_objs.
 
 	* config/v850/t-v850: Define how to build v850-c.o
 
@@ -1632,7 +1661,7 @@ Sun Nov 26 10:02:37 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 	* config.gcc (extra_objs): Remove duplicate description.
 	(c_target_objs): New variable.  Contains target specific
 	object files for the gcc C compiler only.
-	(cxx_target_objs): New variable.  Contains target specific 
+	(cxx_target_objs): New variable.  Contains target specific
 	object files for the gxx C++ compiler only.
 
 	* configure.in (c_target_objs): Substitute in the makefile.
@@ -1681,7 +1710,7 @@ Fri Nov 24 22:37:41 2000  Denis Chertykov  <denisc@overta.ru>
 	* config/avr/avr.c (out_tsthi,out_tstsi): Test simplification bug
 	fixed.
 	(machine_dependent_reorg): Wrong optimization based on
-	NOTICE_UPDATE_CC removed. 
+	NOTICE_UPDATE_CC removed.
 
 Fri Nov 24 19:48:09 2000  J"orn Rennecke <amylaar@redhat.com>
 
@@ -1824,7 +1853,7 @@ Thu Nov 23 01:01:32 2000  J"orn Rennecke <amylaar@redhat.com>
 
 	* cpplex.c (trigraph_ok): Ensure we don't warn twice.
 	* cpplib.h (struct cpp_buffer): New member last_Wtrigraphs.
-	
+
 2000-11-22  Richard Henderson  <rth@redhat.com>
 
 	* haifa-sched.c (sched_analyze_1): Don't special-case calls
@@ -1832,11 +1861,11 @@ Thu Nov 23 01:01:32 2000  J"orn Rennecke <amylaar@redhat.com>
 	(sched_analyze_2): Likewise.
 	(sched_analyze): Zap reg_last_uses and reg_last_sets after calls.
 
-2000-11-22  Chris Demetriou  <cgd@sibyte.com>  
+2000-11-22  Chris Demetriou  <cgd@sibyte.com>
 	    Neil Booth  <neilb@earthling.net>
 
 	* gcc.c (validate_switches): Validate multiple switches named
-	in '|' (or) expressions in specs.  
+	in '|' (or) expressions in specs.
 	(handle_braces): If more than 1 alternative in a '|' spec
 	matches, call do_spec1 just once.
 
@@ -1846,7 +1875,7 @@ Thu Nov 23 01:01:32 2000  J"orn Rennecke <amylaar@redhat.com>
 	(TARGET_OPTIONS): Ditto.
 	(OPTIMIZATION_OPTIONS): Temporarily turn off -frename-registers if
 	-O3.
-	
+
 Wed Nov 22 06:40:56 2000  Jeffrey A Law  (law@cygnus.com)
 
 	* pa.c (hppa_encode_label): Account for addition of encoding
@@ -1924,7 +1953,7 @@ Wed Nov 22 00:52:55 2000  J"orn Rennecke <amylaar@redhat.com>
 	TARGET_CPU_strongarm110 and TARGET_SPU_strongarm1100.
 
 	* config.gcc: Accept --with-cpu=arm9 and --with-cpu=arm9tdmi.
-	
+
 2000-11-21  Richard Henderson  <rth@redhat.com>
 
 	* c-common.c (c_unsafe_for_reeval): New function.
@@ -1955,7 +1984,7 @@ Wed Nov 22 00:52:55 2000  J"orn Rennecke <amylaar@redhat.com>
 	(all insn patterns): Use itanium_class, not type attributes.
 	Occasionally split alternatives as necessary.
 	(attr type): Compute from new attr itanium_class.
-	
+
 2000-11-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
 	* tradcpp.c (output_line_command): Mark system headers as such in
@@ -2102,7 +2131,7 @@ Wed Nov 22 00:52:55 2000  J"orn Rennecke <amylaar@redhat.com>
 	* ssa.c (ssa_rename_from_hash_function): Avoid needlessly casting
 	away const-ness.
 	* tradcpp.c (rescan, do_line, macroexpand, macarg): Use
-	ISALNUM/ISDIGIT/ISPRINT, not isalnum/isdigit/isprint. 
+	ISALNUM/ISDIGIT/ISPRINT, not isalnum/isdigit/isprint.
 	* varasm.c (const_str_htab_hash, const_str_htab_eq,
 	compare_constant_1, record_constant_1): Constify.
 
@@ -2180,7 +2209,7 @@ Wed Nov 22 00:52:55 2000  J"orn Rennecke <amylaar@redhat.com>
 
 2000-11-17  Jim Wilson  <wilson@redhat.com>
 
-	* config/ia64/ia64.c (emit_insn_group_barriers, case CALL_INSN): 
+	* config/ia64/ia64.c (emit_insn_group_barriers, case CALL_INSN):
 	Don't clear need_barrier is next_insn is a CALL_INSN, or has
 	instruction type B or UNKNOWN.
 
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index 5e46879515a6..003e02082bb7 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -627,7 +627,7 @@ HOST_LIBS = $(USE_HOST_OBSTACK) $(USE_HOST_ALLOCA) $(USE_HOST_MALLOC)  \
 	    $(USE_HOST_VFPRINTF) $(USE_HOST_DOPRINT) $(HOST_CLIB)
 
 HOST_RTL = $(HOST_PREFIX)rtl.o $(HOST_PREFIX)bitmap.o \
-		$(HOST_PREFIX)ggc-none.o gensupport.o hashtab.o
+		$(HOST_PREFIX)ggc-none.o gensupport.o hashtab.o safe-ctype.o
 
 HOST_PRINT = $(HOST_PREFIX)print-rtl.o
 HOST_ERRORS = $(HOST_PREFIX)errors.o
@@ -1672,6 +1672,11 @@ hashtab.o: $(srcdir)/../libiberty/hashtab.c $(GCONFIG_H)
 	$(LN_S) $(srcdir)/../libiberty/hashtab.c hashtab.c
 	$(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) hashtab.c
 
+safe-ctype.o: $(srcdir)/../libiberty/safe-ctype.c $(GCONFIG_H)
+	rm -f safe-ctype.c
+	$(LN_S) $(srcdir)/../libiberty/safe-ctype.c safe-ctype.c
+	$(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) safe-ctype.c
+
 genconfig : genconfig.o $(HOST_RTL) $(HOST_PRINT) $(HOST_ERRORS) $(HOST_LIBDEPS)
 	$(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $@ \
 	  genconfig.o $(HOST_RTL) $(HOST_PRINT) $(HOST_ERRORS) $(HOST_LIBS)
diff --git a/gcc/ch/ChangeLog b/gcc/ch/ChangeLog
index 2253cc5293ae..5691da59beac 100644
--- a/gcc/ch/ChangeLog
+++ b/gcc/ch/ChangeLog
@@ -1,3 +1,9 @@
+2000-12-07  Zack Weinberg  <zack@wolery.stanford.edu>
+
+	* lex.c: Don't bother checking whether ISUPPER(c) before
+	calling TOLOWER(c).  Don't bother checking whether isascii(c)
+	before testing ISSPACE(c); ISSPACE(c) includes '\n'.
+
 2000-12-06  Rodney Brown  <RodneyBrown@mynd.com>
 
 	* actions.h: Standarize copyright statement.
@@ -217,7 +223,7 @@ Sun Feb 27 16:40:33 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 
 Sat Feb 19 18:43:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 
-	* decl.c (layout_enum): Set DECL_SIZE_UNIT.	
+	* decl.c (layout_enum): Set DECL_SIZE_UNIT.
 	* satisfy.c (safe_satisfy_decl): Likewise.
 
 2000-02-15  Jonathan Larmour  <jlarmour@redhat.co.uk>
@@ -284,9 +290,9 @@ Sat Feb 19 18:43:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 
 	* expr.c (build_chill_function_call): Don't call a variadic
 	function with a non-literal format string.
-	
+
 	* grant.c (write_spec_module): Likewise.
-	
+
 	* parse.c (require, expect): Likewise.
 
 	* tasking.c (get_struct_type_name, get_struct_debug_type_name,
@@ -567,10 +573,10 @@ Tue Sep  7 15:59:56 1999  Dave Brolley  <brolley@cygnus.com>
 
 1999-08-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-        * actions.c (lang_identify): Constify a char*.
+	* actions.c (lang_identify): Constify a char*.
 
-        * lang.c (chill_print_error_function): Likewise.
-        (lang_init): Remove redundant prototype for `print_error_function'.
+	* lang.c (chill_print_error_function): Likewise.
+	(lang_init): Remove redundant prototype for `print_error_function'.
 
 1999-07-25  Richard Henderson  <rth@cygnus.com>
 
@@ -609,14 +615,14 @@ Wed Apr 14 21:07:30 1999  Mumit Khan  <khan@xraylith.wisc.edu>
 
 Fri Apr  2 15:49:44 1999  Jeffrey A Law  (law@cygnus.com)
 
-        * Make-lang.in (CHILL_FLAGS_TO_PASS): Do not pass $(CC).
+	* Make-lang.in (CHILL_FLAGS_TO_PASS): Do not pass $(CC).
 
 Wed Mar 31 10:44:47 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-        * Makefile.in (hash.h): Generate using gperf language 'C', not
-        'KR-C', so gperf uses the `const' keyword on strings.
-	 
-        * gperf (resword): Const-ify a char*.
+	* Makefile.in (hash.h): Generate using gperf language 'C', not
+	'KR-C', so gperf uses the `const' keyword on strings.
+
+	* gperf (resword): Const-ify a char*.
 
 Sun Mar 28 00:30:36 1999  Jeffrey A Law  (law@cygnus.com)
 
@@ -655,7 +661,7 @@ Tue Jan 19 23:24:36 1999  Jeffrey A Law  (law@cygnus.com)
 	(parse_multi_dimension_case_action): Initialize "end_case_label".
 	* tasking.c (build_start_process): Initialize "struct_type_node".
 	* typeck.c (apply_chill_field_layout): Initialize "word".
-	(type_for_mode); Unconditionally cast RHS & LHS to ints to shut up	
+	(type_for_mode); Unconditionally cast RHS & LHS to ints to shut up
 	signed/unsigned comparison warning.
 
 Mon Jan 18 11:55:06 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
@@ -672,7 +678,7 @@ Wed Jan  6 02:53:38 1999  Jeffrey A Law  (law@cygnus.com)
 	* Makefile.in: Add some missing $(exeext).  Remove some obsolete
 	runtime stuff.
 	* Make-lang.in: Similarly.
-	
+
 Tue Nov 24 09:57:34 1998  Jeffrey A Law  (law@cygnus.com)
 
 	* Makefile.in (lex.c): Do not depend on hash.h.
@@ -694,7 +700,7 @@ Thu Oct 15 09:25:21 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 	* parse.c (parse_spec_module): Remove unused variable
 	`module_name', but preserve function call from initialization.
 	(parse_operand6): Mark variable `location' with ATTRIBUTE_UNUSED.
-	
+
 	* inout.c (init_text_location): Remove unused variable `textlength'.
 
 Wed Oct 14 22:19:48 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
@@ -742,7 +748,7 @@ Thu Oct  1 10:43:45 1998  Nick Clifton  <nickc@cygnus.com>
 	* lex.c: Replace occurances of HANDLE_SYSV_PRAGMA with
 	HANDLE_GENERIC_PRAGMAS.
 	(handle_generic_pragma): New function: Parse generic pragmas.
-	
+
 Wed Sep 30 20:22:34 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
 	* parse.c (emit_label): Fix return-type of prototype.
@@ -750,7 +756,7 @@ Wed Sep 30 20:22:34 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 Wed Sep 30 19:41:36 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
 	* actions.c (chill_handle_multi_case_label): Always return a value
-	in function returning non-void. 
+	in function returning non-void.
 
 	* except.c: Include OS headers before any local ones.
 
@@ -966,7 +972,7 @@ Sun Sep 20 09:25:13 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
  	explicit braces to avoid ambiguous `else'.
 	(expand_constant_to_buffer): Likewise.
 	(build_chill_slice): remove unused variable `is_static'.
-	(chill_compatible): Add explicit braces to avoid ambiguous `else'. 
+	(chill_compatible): Add explicit braces to avoid ambiguous `else'.
 	(apply_chill_array_layout): Remove unused variable `offset'.
 	(smash_dummy_type): Remove unused variable `save_lang_specific'.
 	(initializer_constant_valid_p): Add default case in switch.
@@ -1130,7 +1136,7 @@ Thu Apr  9 12:46:55 1998  Dave Brolley  <brolley@cygnus.com>
 
 	* lang.c (finput): Declare.
 	* ch-tree.h (init_lex): Remove.
-	
+
 
 Wed Apr  8 14:47:33 1998  Dave Brolley  <brolley@cygnus.com>
 
@@ -1271,14 +1277,14 @@ Thu Feb 19 17:33:06 1998  Dave Brolley  <brolley@cygnus.com>
 
 Wed Feb 18 23:48:57 1998  Richard Henderson  <rth@cygnus.com>
 
-	* Make-lang.in (cc1chill): Kill lingering bc-opcode.h dependancy. 
+	* Make-lang.in (cc1chill): Kill lingering bc-opcode.h dependancy.
 
 Wed Feb 18 17:35:05 1998  Dave Brolley  <brolley@cygnus.com>
 
 	* parse.c (parse_field): Get rid of warning for multiple case selectors.
 
 	* decl.c (layout_chill_variants): Fix loop indexing error.
-	
+
 Mon Feb 16 15:54:47 1998  Dave Brolley  <brolley@cygnus.com>
 
 	* parse.c (parse_case_expression): Remove code which checked for
@@ -1349,11 +1355,11 @@ Thu Jan 29 15:34:18 1998  Dave Brolley  <brolley@cygnus.com>
 
 	* decl.c (init_decl_processing): Don't allocate chill_tree_code_...
 	(init_decl_processing): Change last argument to 'sizeof(char)'.
-	
+
 
 Tue Nov 25 10:44:19 1997  Nick Clifton  <nickc@cygnus.com>
 
-	* Make-lang.in (mostlyclean): Use && to separate commands, so that 
+	* Make-lang.in (mostlyclean): Use && to separate commands, so that
 	if the directory change fails, the rule will not loop.
 
 Mon Mar  3 12:08:19 1997  Fred Fish  <fnf@cygnus.com>
@@ -1364,38 +1370,38 @@ Mon Mar  3 12:08:19 1997  Fred Fish  <fnf@cygnus.com>
 
 Tue Nov 26 05:12:40 1996  Wilfried Moser  <moser@rtl.cygnus.com>
 
-        * tasking.c (build_receive_buffer_case_label): Rework in a manner,
-        that the buffer location gets evaluated only once, in
-        build_receive_buffer_case_end. 
+	* tasking.c (build_receive_buffer_case_label): Rework in a manner,
+	that the buffer location gets evaluated only once, in
+	build_receive_buffer_case_end.
 
-        * typeck.c (build_chill_bin_type): Rework.
-        (layout_chill_range_type): Process BIN mode.
-        (build_chill_array_type): Remove checking of layout. This is done
-        at the parse.
+	* typeck.c (build_chill_bin_type): Rework.
+	(layout_chill_range_type): Process BIN mode.
+	(build_chill_array_type): Remove checking of layout. This is done
+	at the parse.
 
-        * parse.c (parse_on_exception_list): Don't allow ON name:.
-        (parse_opt_layout): Parse POS and STEP and return a tree instead
-        of int.
+	* parse.c (parse_on_exception_list): Don't allow ON name:.
+	(parse_opt_layout): Parse POS and STEP and return a tree instead
+	of int.
 
-        * lex.c (init_lex), lex.h: Define and initialise RID_BIN.
+	* lex.c (init_lex), lex.h: Define and initialise RID_BIN.
 
-        * grant.c (print_integer_type): Take care of BIN.
+	* grant.c (print_integer_type): Take care of BIN.
 
-        * expr.c (build_chill_descr): Make descr static if requested
-        location is static.
-        (build_chill_length): Process text mode name and text location as
-        described in Z.200/1992.
-        (build_compare_expr): Don't allow < <= > >= for composite modes.
+	* expr.c (build_chill_descr): Make descr static if requested
+	location is static.
+	(build_chill_length): Process text mode name and text location as
+	described in Z.200/1992.
+	(build_compare_expr): Don't allow < <= > >= for composite modes.
 
-        * decl.c (grok_chill_fixedfields): Remove checking of
-        layout. This is done at the parser.
+	* decl.c (grok_chill_fixedfields): Remove checking of
+	layout. This is done at the parser.
 
-        * convert.c (digest_structure_tuple): Take care of wrong (probably
-        array) tuple. Printing error may cause sigsegv.
+	* convert.c (digest_structure_tuple): Take care of wrong (probably
+	array) tuple. Printing error may cause sigsegv.
 
-        * ch-tree.h: Change prototypes of grok_chill_fixedfields and
-        build_chill_array_type (layout is passed now as a tree instead of
-        int).
+	* ch-tree.h: Change prototypes of grok_chill_fixedfields and
+	build_chill_array_type (layout is passed now as a tree instead of
+	int).
 
 Fri Nov 15 15:17:44 1996  Per Bothner  <bothner@deneb.cygnus.com>
 
@@ -1405,22 +1411,22 @@ Fri Nov 15 15:17:44 1996  Per Bothner  <bothner@deneb.cygnus.com>
 
 Mon Oct 28 12:48:06 1996  Jeffrey A Law  (law@cygnus.com)
 
-        * typeck.c (signed_or_unsigned_type): If the given type already
-        as the correct signedness, then just return it.
+	* typeck.c (signed_or_unsigned_type): If the given type already
+	as the correct signedness, then just return it.
 
-        * typeck.c ({un,}signed_type): If can't do anything, call
-        signed_or_unsigned_type.
+	* typeck.c ({un,}signed_type): If can't do anything, call
+	signed_or_unsigned_type.
 
 Fri Sep  6 02:50:08 1996  Wilfried Moser  <moser@rtl.cygnus.com>
 
-	* typeck.c (build_chill_cast): In case of rangecheck, take care of 
+	* typeck.c (build_chill_cast): In case of rangecheck, take care of
 	constant expression (when defining a SYN).
 
 Thu Sep  5 04:30:32 1996  Wilfried Moser  <moser@rtl.cygnus.com>
 
 	* parse.c (define__PROCNAME__): New function to define a SYNONYM
 	__PROCNAME__ (__procname__) which is a character string containing
-	the name of the current procedure. This is quit the same as 
+	the name of the current procedure. This is quit the same as
 	__FUNCTION__ in C.
 	(parse_proc_body): Add call to define__PROCNAME__.
 
@@ -1569,7 +1575,7 @@ Thu Feb 29 23:39:54 1996  Per Bothner  <bothner@kalessin.cygnus.com>
 	(build_chill_function_call):  Error if OUT/INOUT arg is TREE_READONLY.
 	* actions.c (chill_expand_assignment):  Also error if TREE_READONLY.
 	Use convert_from_reference.
-	
+
 Thu Feb 29 11:14:09 1996  Per Bothner  <bothner@kalessin.cygnus.com>
 
 	* parse.c (parse_do_action):  DO WITH expressions are evaluated in
@@ -1678,7 +1684,7 @@ Wed Jan 24 05:10:08 1996  Wilfried Moser  <moser@rtl.cygnus.com>
 	* Make-lang.in: Change GNUCHILL_VERSION to 1.5.2.
 
 	* decl.c (layout_enum): Add check for negative values if
-	enum is numbered and duplicate values in an enum. 
+	enum is numbered and duplicate values in an enum.
 
 Mon Jan 15 06:21:52 1996  Wilfried Moser  <moser@rtl.cygnus.com>
 
@@ -1836,7 +1842,7 @@ Mon Nov  6 04:12:06 1995  Wilfried Moser  <moser@rtl.cygnus.com>
 	given. This is also not allowed.
 	Add initialisation of variables of the above modes during
 	runtime. This influence the mechanism for detecting to
-	build a constructor. 
+	build a constructor.
 	(push_modedef): NEW- or SYNMODES of ASSOCIATION, ACCESS, TEXT,
 	BUFFER, and EVENT mode must not be READonly.
 	(start_chill_function): Arguments of modes ASSOCIATION, ACCESS,
@@ -1864,7 +1870,7 @@ Mon Nov  6 04:12:06 1995  Wilfried Moser  <moser@rtl.cygnus.com>
 
 	* inout.c: Completely rewritten for implementing Chapter 7 of
 	Z.200 (input and output).
-	
+
 	* lex.c (yylex): An '_' after a '.' doesn't mean, that we are
 	parsing numbers.
 
@@ -1883,7 +1889,7 @@ Mon Nov  6 04:12:06 1995  Wilfried Moser  <moser@rtl.cygnus.com>
 	ACCESS, TEXT, BUFFER, or EVENT and print an error in this case.
 	(satisfy (case RECORD_TYPE)): If exp is TEXT mode, check the text length.
 
-	* typeck.c (extract_constant_from_buffer): Fix thinko in case 
+	* typeck.c (extract_constant_from_buffer): Fix thinko in case
 	of ! BYTES_BIG_ENDIAN.
 	(build_chill_cast): Implement representation conversion between
 	INT's and REAL's.
@@ -1900,11 +1906,11 @@ Mon Nov  6 04:12:06 1995  Wilfried Moser  <moser@rtl.cygnus.com>
 	CH_IS_USAGE_MODE, CH_IS_WHERE_MODE, and CH_IS_TEXT_MODE.
 	Add some prototypes.
 	(enum chill_built_in_function): Add BUILT_IN_ARCCOS, BUILT_IN_ARCSIN,
-	BUILT_IN_CH_DELETE, BUILT_IN_LOG, BUILT_IN_SQRT. 
+	BUILT_IN_CH_DELETE, BUILT_IN_LOG, BUILT_IN_SQRT.
 	Remove BUILT_IN_READLEN, BUILT_IN_ROUND, BUILT_IN_SKIPRECORD.
 
 	* gperf, hash.h: Remove definition of WHERE.
-	
+
 Thu Oct  5 06:22:19 1995  Wilfried Moser  <moser@rtl.cygnus.com>
 
 	* grant.c (decode_constant_selective): Add some newlines
@@ -1982,7 +1988,7 @@ Wed Sep 13 14:24:12 1995  Per Bothner  <bothner@kalessin.cygnus.com>
 	CH_IS_INSTANCE_MODE, not CH_COMPATIBLE.
 	* actions.c, convert.c (instance_type_node):  Remove redundant
 	extern declaration.
-	
+
 Wed Sep 13 14:19:37 1995  Per Bothner  <bothner@kalessin.cygnus.com>
 
 	* regression.awk2:  Use \ line-continuation-markers
@@ -2100,7 +2106,7 @@ Thu Jul 27 23:08:51 1995  Per Bothner  <bothner@kalessin.cygnus.com>
 	set proper value of CH_DECL_FLAG on both the decl and its value.
 
 	* convert.c (digest_array_tuple); Slightly better errors.
-	
+
 Wed Jul 26 22:13:39 1995  Per Bothner  <bothner@cygnus.com>
 
 	* expr.c (expand_packed_set):  Also allocate the CONSTRUCTOR itself.
@@ -2134,9 +2140,9 @@ Tue Jun 27 05:00:04 1995  Wilfried Moser  <moser@rtl.cygnus.com>
 	code for reraising the exceptions (call chill_reraise_exceptions).
 
 	* except.c (chill_reraise_exceptions): New function to generate
-	code for reraising exceptions are specified at the function 
+	code for reraising exceptions are specified at the function
 	definition.
-	
+
 	* ch-tree.h: Add prototype for chill_reraise_exceptions.
 
 	* decl.c (build_chill_function_type): When the function (type)
@@ -2198,16 +2204,16 @@ Mon Jun 19 06:01:42 1995  Wilfried Moser  <moser@rtl.cygnus.com>
 	New marco CH_ALREADY_GRANTED. Used in grant.c to determine if an
 	identifier already has been written to grant file.
 
-        * grant.c (write_spec_module): If not GRANT ALL specified,
-        write only this identifiers to grant file which are
-        neccessary to form a prober grant file. This will shorten
-        grant files and speed up compilation.
-        (decode_constant_selective, decode_mode_selective,
-        get_type_selective, decode_decl_selective,
-        grant_array_type_selective, get_tag_value_selective,
-        print_enumeral_selective, print_integer_selective, 
-        print_struct_selective, print_proc_tail_selective,
-        grant_one_decl_selective): New functions.
+	* grant.c (write_spec_module): If not GRANT ALL specified,
+	write only this identifiers to grant file which are
+	neccessary to form a prober grant file. This will shorten
+	grant files and speed up compilation.
+	(decode_constant_selective, decode_mode_selective,
+	get_type_selective, decode_decl_selective,
+	grant_array_type_selective, get_tag_value_selective,
+	print_enumeral_selective, print_integer_selective,
+	print_struct_selective, print_proc_tail_selective,
+	grant_one_decl_selective): New functions.
 
 	* lex.c (yywrap): Remove writing of not yet written USE_SEIZE_FILE
 	directives to grant file.
@@ -2506,7 +2512,7 @@ Thu Mar 30 02:51:59 1995  Wilfried Moser  <moser@rtl.cygnus.com>
 	EMPTY_ON and EMPTY_OFF.
 
 	* lex.c: New variables empty_checking and runtime_checking_flag.
-	(ch_lex_init): Initialize empty_checking and range_checking 
+	(ch_lex_init): Initialize empty_checking and range_checking
 	when switching from pass 1 to 2.
 	(read_directive): Add processing of EMPTY_OFF/ON.
 
@@ -2524,7 +2530,7 @@ Thu Mar 30 02:51:59 1995  Wilfried Moser  <moser@rtl.cygnus.com>
 	* ch-tree.h: Change prototype of build_chill_indirect_ref.
 	Add declaration of runtime_checking_flag and empty_checking.
 
-	* actions.c (check_non_null): Do null pointer checking only 
+	* actions.c (check_non_null): Do null pointer checking only
 	when enabled (empty_checking != 0).
 
 Wed Mar 29 15:18:23 1995  Per Bothner  <bothner@kalessin.cygnus.com>
@@ -2739,7 +2745,7 @@ Tue Feb 28 16:00:03 1995  Per Bothner  <bothner@kalessin.cygnus.com>
 Tue Feb 28 00:29:51 1995  Per Bothner  <bothner@cygnus.com>
 
 	* configure:  Merge in code for calculating host, build, and
-	target and canon_{host,build,target} from ../configure.  
+	target and canon_{host,build,target} from ../configure.
 	Fix calculation of mainsrcdir.  Host canon_* variables
 	to merge in build-make (as in ../configure).
 
@@ -2753,7 +2759,7 @@ Tue Feb 21 01:41:56 1995  Wilfried Moser  <moser@rtl.cygnus.com>
 	* inout.c (build_chill_writetext): Add processing of
 	conditional expressions in argument list.
 
-	* parse.c (parse_opt_name_string): Print error message only 
+	* parse.c (parse_opt_name_string): Print error message only
 	in pass 1.
 
 	* chill.texi: Add chapter about compiler directives.
@@ -2768,7 +2774,7 @@ Tue Feb 14 16:45:19 1995  Per Bothner  <bothner@kalessin.cygnus.com>
 Fri Feb  3 04:30:28 1995  Wilfried Moser  <moser@rtl.cygnus.com>
 
 	* grant.c (really_grant_this, search_in_list): New static
-	functions to determine if a decl should be written to 
+	functions to determine if a decl should be written to
 	grant file.
 	(write_spec_module): Add call to really_grant_this.
 
@@ -2840,7 +2846,7 @@ Fri Jan 13 13:04:41 1995  Per Bothner  <bothner@kalessin.cygnus.com>
 Wed Jan 11 14:03:47 1995  Per Bothner  <bothner@kalessin.cygnus.com>
 
 	* parse.c (parse_modulion):  Undo yesterday's change (to allow
-	an ON-handler to follow) until we re-implement module.	
+	an ON-handler to follow) until we re-implement module.
 
 Tue Jan 10 17:23:55 1995  Per Bothner  <bothner@kalessin.cygnus.com>
 
@@ -2870,7 +2876,7 @@ Tue Jan 10 04:46:42 1995  Wilfried Moser  <moser@rtl.cygnus.com>
 	* expr.c (chill_expand_expr): When calling __psslice take care
 	of a newmoded min_value.
 
-	* parse.c (parse_name_string): Print error message only in 
+	* parse.c (parse_name_string): Print error message only in
 	pass 1.
 
 Tue Jan  3 19:56:36 1995  Per Bothner  <bothner@kalessin.cygnus.com>
@@ -3130,7 +3136,7 @@ Fri Nov 11 13:06:29 1994  Wilfried Moser  (moser@rtl.cygnus.com)
 
 	* inout.c (build_chill_writetext, build_chill_readtext): Use stack
 	temporary variables for the iolist so that they can get reused in
-	subsequent calls. Emit code immediately instead of building a 
+	subsequent calls. Emit code immediately instead of building a
 	compound expr.
 
 Fri Nov  4 12:00:54 1994  Per Bothner  <bothner@kalessin.cygnus.com>
@@ -3167,7 +3173,7 @@ Wed Nov  2 05:33:03 1994  Wilfried Moser  (moser@rtl.cygnus.com)
 
 	* ch-tree.h: Add new prototypes.
 
-	* decl.c (init_decl_processing): Remove timing related 
+	* decl.c (init_decl_processing): Remove timing related
 	initialisations. Add call to timing_init.
 
 	* parse.c (parse_action): Process AFTER action.
@@ -3187,7 +3193,7 @@ Wed Nov  2 05:33:03 1994  Wilfried Moser  (moser@rtl.cygnus.com)
 	(build_timeout_preface, build_timesupervised_call): New functions
 	to handle timesupervision in case of blocking system calls (i.e.
 	SEND buffer action, RECEIVE CASE action etc.).
-	
+
 Thu Oct 27 12:50:24 1994  Per Bothner  <bothner@kalessin.cygnus.com>
 
 	* expr.c (build_chill_repetition_op):  Fix repeating all-zero
@@ -3225,7 +3231,7 @@ Thu Oct 20 05:37:17 1994  Wilfried Moser  (moser@rtl.cygnus.com)
 
 Mon Oct 17 02:30:38 1994  Wilfried Moser  (moser@rtl.cygnus.com)
 
-	* decl.c (init_decl_processing): Set CH_DERIVED_FLAG for 
+	* decl.c (init_decl_processing): Set CH_DERIVED_FLAG for
 	boolean_true_node and boolean_false_node. TRUE and FALSE have
 	the BOOL derived class.
 
@@ -3400,7 +3406,7 @@ Tue Sep 13 06:19:42 1994  Wilfried Moser  (moser@rtl.cygnus.com)
 
 	* expr.c (compare_records): In case of -fpack do always
 	a memcmp instead of comparing each field of the
-	structure. If the structure is a variant structure, 
+	structure. If the structure is a variant structure,
 	issue a warning.
 
 Mon Sep 12 13:15:09 1994  Per Bothner  (bothner@cygnus.com)
@@ -3418,7 +3424,7 @@ Fri Sep  9 01:53:30 1994  Wilfried Moser  (moser@rtl.cygnus.com)
 	like arguments of a function. There will be a wrapper
 	which is the real entry point for a PROCESS. This wrapper
 	is automatically build after a PROCESS definition and gets
-	as argument a pointer to a structure looking like the 
+	as argument a pointer to a structure looking like the
 	arguments of the PROCESS. This wrapper will call the
 	PROCESS (see build_process_wrapper).
 	(build_process_wrapper): New function (see above).
@@ -3445,12 +3451,12 @@ Fri Sep  9 01:53:30 1994  Wilfried Moser  (moser@rtl.cygnus.com)
 	* grant.c (write_spec_module): Write GNUCHILL and gcc
 	version into grant file.
 
-	* Make-lang.in (CHILL_FLAGS_TO_PASS): Add passing of CC and 
+	* Make-lang.in (CHILL_FLAGS_TO_PASS): Add passing of CC and
 	GNUCHILL_VERSION to ch/Makefile.
 	* Make-lang.in (CHILL.mostlyclean): Add ch/ch-version.c.
 
 	* Makefile.in (CHILL_OBJS): Add ch-version.o. ch-version.c
-	will get generated every time a new Makefile will get 
+	will get generated every time a new Makefile will get
 	generated.
 	* Makefile.in (GNUCHILL_VERSION): Remove it, its defined in
 	Make-lang.in.
@@ -3572,8 +3578,8 @@ Fri Aug 19 07:10:43 1994  Wilfried Moser  (moser@rtl.cygnus.com)
 
 	* inout.c (build_chill_io_list_type, build_enum_tables),
 	tasking.c (build_tasking_struct): Temporarily reset
-        maximum_field_alignment to 0, so that the compiler-built
-        data structures needed by the RTS can be independent of -fpack.
+	maximum_field_alignment to 0, so that the compiler-built
+	data structures needed by the RTS can be independent of -fpack.
 
 Thu Aug 18 13:39:51 1994  Per Bothner  (bothner@kalessin.cygnus.com)
 
@@ -3589,7 +3595,7 @@ Wed Aug 17 23:48:33 1994  Wilfried Moser  (moser@rtl.cygnus.com)
 Wed Aug 17 13:47:50 1994  Per Bothner  (bothner@kalessin.cygnus.com)
 
 	* decl.c (switch_to_pass_2):  Revert June 13 change,
-        (Don't exit after pass 1 if an error was found.)
+	(Don't exit after pass 1 if an error was found.)
 
 	* ch-tree.def (SLICE_EXPR):  New tree-code.
 	* typeck.c (build_chill_slice):  For building a slice of a
@@ -3681,7 +3687,7 @@ Thu Aug  4 17:40:38 1994  Per Bothner  (bothner@kalessin.cygnus.com)
 
 Thu Jul 28 04:00:11 1994  Wilfried Moser  (moser@rtl.cygnus.com)
 
-	* expr.c (build_allocate_global_memory_call, build_allocate_memory_call): 
+	* expr.c (build_allocate_global_memory_call, build_allocate_memory_call):
 	Add new checks.
 
 Tue Jul 26 22:48:15 1994  Michael Tiemann  (tiemann@blues.cygnus.com)
@@ -3745,7 +3751,7 @@ Wed Jul  6 20:12:13 1994  Per Bothner  (bothner@kalessin.cygnus.com)
 	* expr.c, ch-tree.h (finish_chill_unary_op):  New function,
 	based on code ripped out of build_chill_unary_op.
 	(build_chill_unary_op):  Call finish_chill_unary_op unless pass==1.
-	* satisfy.c (satisfy):   Call finish_chill_unary_op when needed. 
+	* satisfy.c (satisfy):   Call finish_chill_unary_op when needed.
 
 Mon Jun 27 11:29:18 1994  Per Bothner  (bothner@kalessin.cygnus.com)
 
@@ -3799,7 +3805,7 @@ Tue Jun 14 16:44:14 1994  Per Bothner  (bothner@kalessin.cygnus.com)
 	Therefore we must check for ignoring here.
 	* parse.c (parse_loc_declaration):  Set ignoring in pass 2
 	when parsing the mode.
-	
+
 	* tasking.c (generate_tasking_code_variable):  Do arithmetic
 	on signal_code etc using unsigned rather than signed shorts.
 
@@ -3913,7 +3919,7 @@ Tue May 31 18:12:00 1994  Per Bothner  (bothner@kalessin.cygnus.com)
 
 Tue May 31 04:33:28 1994  Wilfried Moser  (moser@rtl.cygnus.com)
 
-	* inout.c (build_chill_writetext): Add correct processing 
+	* inout.c (build_chill_writetext): Add correct processing
 	of POWERSET RANGE (setmode).
 
 	* lex.l (same_file): Add searching for file(s) in
@@ -4012,7 +4018,7 @@ Tue May 24 22:36:51 1994  Per Bothner  (bothner@kalessin.cygnus.com)
 	* grant.c (chill_grant):  Set it here instead.
 
 	* expr.c (fold_set_expr):  Use int_size_in_bytes instead of
-	TYPE_PRECISION (which is not defined for a SET_TYPE).	
+	TYPE_PRECISION (which is not defined for a SET_TYPE).
 
 Fri May 20 15:21:26 1994  Per Bothner  (bothner@kalessin.cygnus.com)
 
@@ -4085,7 +4091,7 @@ Thu May  5 18:58:22 1994  Per Bothner  (bothner@kalessin.cygnus.com)
 Mon May  2 14:33:44 1994  Per Bothner  (bothner@kalessin.cygnus.com)
 
 	* parse.y (sendaction):   Fix thinko (in sense of condition).
-	* tasking.c (build_receive_case_label):  Another thinko.	
+	* tasking.c (build_receive_case_label):  Another thinko.
 
 	* parse.y (optsigdest):  Force ignore_exprs to 0 while parsing
 	the (signal-)name.
@@ -4095,7 +4101,7 @@ Mon May  2 14:33:44 1994  Per Bothner  (bothner@kalessin.cygnus.com)
 	properly satisfied).
 	* satisfy.c (satisfy):  Layout FUNCTION_TYPEs.
 	* parse.y (procmode):  Call build_chill_pointer_type, rather
-	than build_pointer_type (which incorrectly sets TYPE_SIZE). 
+	than build_pointer_type (which incorrectly sets TYPE_SIZE).
 
 	* parse.y (get_type_of):  Handle TYPE_DECL (again).
 	* parse.y (optresultspec):  Call build_chill_reference_type, rather
@@ -4197,7 +4203,7 @@ Thu Apr 28 15:21:56 1994  Wilfried Moser  (moser@rtl.cygnus.com)
 	* parse.y (sendaction): Add code for SEND buffer.
 	* parse.y (rccase_label): Change error processing.
 	* tasking.c (build_gen_inst): More checks.
-	* tasking.c (build_gen_code): Add checking for argument is a 
+	* tasking.c (build_gen_code): Add checking for argument is a
 	  PROCESS or a SIGNAL.
 	* tasking.c (struct rc_state_type): Add new fields for easier
 	  error processing.
@@ -4337,7 +4343,7 @@ Thu Apr 14 13:30:19 1994  Wilfried Moser  (moser@phishhead.cygnus.com)
 	* expr.c (build_chill_inttime_type): New function to built type
 	for the INTTIME builtin.
 	* expr.c (build_chill_inttime): New function to process builtin
-	INTTIME. 
+	INTTIME.
 	* expr.c (build_chill_duration): New function to process builtin's
 	MILLISECS, SECS, MINUTES, HOURS and DAYS.
 
@@ -4389,7 +4395,7 @@ Mon Apr  4 22:06:31 1994  Per Bothner  (bothner@cygnus.com)
 	* actions.c (chill_expand_result):  Save result in saved_result_rtx
 	or assign to DECL_RESULT as appropriate.
 	* decl.c, ch-tree.h (current_function_returns_value,
-        current_function_returns_null, current_extern_inline):
+	current_function_returns_null, current_extern_inline):
 	Don't use.  Only define first two to allow linking with ch-typeck.c.
 
 	* typeck.c (chill_l_equivalent):  Add forward declaration.
@@ -4431,7 +4437,7 @@ Tue Mar 29 13:24:27 1994  Wilfried Moser  (fs_moser at rcsw1h)
 
 	* Makefile.in: Change version string to 1.2.1
 	* ch-tree.h (enum chill_built_in_function): Delete no longer valid
-	  entries. 
+	  entries.
 	* ch-tree.h: Change prototype for build_chill_readtext.
 	* decl.c (init_decl_processing): Add builtin_function _readstring,
 	  _readunixstd and READTEXT.
@@ -4440,7 +4446,7 @@ Tue Mar 29 13:24:27 1994  Wilfried Moser  (fs_moser at rcsw1h)
 	* gperf: Remove keyword READTEXT.
 	* parse.y: Remove token READTEXT.
 	* inout.c (build_chill_io_list_type): Add building type for
-	  READTEXT. 
+	  READTEXT.
 	* inout.c (build_chill_readtext): Implement the function
 	  (partial).
 	* inout.c (build_chill_writetext): Do some cleanups.
@@ -4464,7 +4470,7 @@ Tue Mar 29 12:30:59 1994  Per Bothner  (bothner@kalessin.cygnus.com)
 	* ch-tree.h, decl.c (shadow_record_fields), decl.c
 	(shadow_record_fields), expr.c (chill_expand_case_expr,
 	build_chill_function_call), grant.c (chill_finish_compile),
-	typeck.c (build_empty_string, build_init_struct):  Rename magic	
+	typeck.c (build_empty_string, build_init_struct):  Rename magic
 	identifiers of the form "<...>" to "__..." for better portability.
 
 	* actions.c (adjust_parm_or_field):  Remove extraneous
@@ -4564,7 +4570,7 @@ Tue Mar 22 10:17:58 1994  Bill Cox  (bill@rtl.cygnus.com)
 	  string assignment case.
 	* expr.c (chill_expand_expr): Now that we're using build_chill_function_call,
 	  the actual parameters need to be converted to the unsigned long
-	  type explicitly.  Do that.	
+	  type explicitly.  Do that.
 	* satisfy.c (safe_satisfy_decl): Correct range-checking code.
 
 Mon Mar 21 16:25:07 1994  Bill Cox  (bill@rtl.cygnus.com)
@@ -4585,7 +4591,7 @@ Mon Mar 21 13:29:23 1994  Per Bothner  (bothner@kalessin.cygnus.com)
 	* expr.c (chill_expand_expr):  Code to expand SET_IN_EXPR,
 	moved from expand_expr in ../expr.c.  Also add some extra
 	conversions (because we're now using build_chill_function-call).
-	* actions.c, decl.c, expr.c, grant.c, parse.y, typeck.c: 
+	* actions.c, decl.c, expr.c, grant.c, parse.y, typeck.c:
 	Use SET_IN_EXPR in place of IN_EXPR.
 
 	* expr.c (build_compare_discrete_expr), ch-tree.h:  New function,
@@ -4643,14 +4649,14 @@ Sun Mar 20 11:48:10 1994  Per Bothner  (bothner@kalessin.cygnus.com)
 
 Sun Mar 20 08:54:27 1994  Bill Cox  (bill@rtl.cygnus.com)
 
-	* actions.c (expand_assignment_to_varying_array): 
+	* actions.c (expand_assignment_to_varying_array):
 	  Call build_chill_array_ref to get index checking.
-          (chill_convert_for_assignment): Delete unused errstr
-          variable.
+	  (chill_convert_for_assignment): Delete unused errstr
+	  variable.
 	  (chill_expand_assignment): Call build_chill_array_ref
 	  to get runtime index checking.
 	  (expand_varying_length_assignment): Use new interface
-          to varying_array_index_p.
+	  to varying_array_index_p.
 	* ch-tree.h (varying_array_index_p): New proto.
 	* convert.c (convert): Call build_chill_array_ref
 	  to get runtime index checking.
@@ -4694,7 +4700,7 @@ Fri Mar 18 00:12:48 1994  Per Bothner  (bothner@deneb.cygnus.com)
 Thu Mar 17 17:29:43 1994  Bill Cox  (bill@rtl.cygnus.com)
 
 	* expr.c (build_chill_function_call): Give function call the correct
-          type tree.
+	  type tree.
 	* typeck.c (build_chill_slice_with_length): Restore dynamic range
 	  checking, so it doesn't obscure the CONSTANTness of the length.
 
@@ -4710,7 +4716,7 @@ Wed Mar 16 17:23:31 1994  Per Bothner  (bothner@kalessin.cygnus.com)
 	* typeck.c (valid_array_index_p):  Check compatibility using
 	correct types.
 	* typeck.c (build_chill_slice_with_length);  For now revert
-	calling valid_array_index_p on length.  (It makes it harder 
+	calling valid_array_index_p on length.  (It makes it harder
 	to realize when the slice is constant length.)
 	* expr.c (build_chill_indirect_expr):  Minor tweak.  (This
 	seems to work around a weird C compiler bug. ??)
@@ -4750,11 +4756,11 @@ Tue Mar 15 08:42:12 1994  Bill Cox  (bill@rtl.cygnus.com)
 	* actions.c: Fix comment.
 	  (build_rts_call): Ifdef it out - never used.
 	  (expand_varying_length_assignment): call valid_array_index_p.
-          rather than validate_varying_array_ref.
+	  rather than validate_varying_array_ref.
 	* ch-tree.h: Fix prototype for valid_array_index_p.
 	* expr.c (chill_expand_expr): Call build_chill_array_ref to get
 	  index validation.
-          (build_hill_lower, build_chill_upper): Return value now inherits
+	  (build_hill_lower, build_chill_upper): Return value now inherits
 	  the novelty of the input parameter.
 	  (varying_to_slice): Use CH_NOVELTY macro rather than calling
 	  chill_novelty directly.
@@ -4771,7 +4777,7 @@ Tue Mar 15 08:42:12 1994  Bill Cox  (bill@rtl.cygnus.com)
 	  build_loop_iterator parameter, etc.
 	* tasking.c (build_receive_case_end): Chack cond_stack before popping.
 	* typeck.c (validate_varying_array_ref, chill_max_vary_array_index,
-          valid_array_index): Delete them.  They're now unused.
+	  valid_array_index): Delete them.  They're now unused.
 	  (valid_array_index_p): Add function, call it everywhere that an
 	  array index is checked.
 	  (build_chill_slice): Restore old functionality where varying_to_slice
@@ -4802,10 +4808,10 @@ Thu Mar 10 09:41:37 1994  Bill Cox  (bill@rtl.cygnus.com)
 	  derived files.  This allows the gcc/configure list of CHILL
 	  files machinery to work.
 	* ch-tree.h (permanent_allocation): Add a parameter flag.
-	* decl.c (finish_chill_function, finish_decl): Provide the 
+	* decl.c (finish_chill_function, finish_decl): Provide the
 	  new permanent_allocation flag.
 	  (poplevel): Return early, avoid a seg fault.
-	* lex.l (NORMAL): Replace this whole state with the predefined 
+	* lex.l (NORMAL): Replace this whole state with the predefined
 	  INITIAL state.  Force compilation state to global level after
 	  compiler directive error - prevents endless loop on error.
 	  (handle_use_seizefile_directive): Rewrite for readability.
@@ -4842,12 +4848,12 @@ Tue Mar  8 11:51:10 1994  Bill Cox  (bill@rtl.cygnus.com)
 
 Mon Mar  7 19:14:05 1994  Bill Cox  (bill@rtl.cygnus.com)
 
-	* Makefile.in: Use the 'all' target to build the runtime 
+	* Makefile.in: Use the 'all' target to build the runtime
 	  library and chillrt0.o.
 	* README: Explain rules for files in this directory.
-	* addtest, addtest.man, build-release, 
+	* addtest, addtest.man, build-release,
 	  chill.regress.cron: Move to utils subdirectory.
-        * expr.c (build_chill_function_call): Mark the INOUT
+	* expr.c (build_chill_function_call): Mark the INOUT
 	  temporary so it doesn't get optimized into a
 	  register.  Fixes the execute/inout.ch bug.
 	* typeck.c (layout_chill_range_type): Restrict it
@@ -4912,7 +4918,7 @@ Wed Mar  2 16:49:05 1994  Bill Cox  (bill@rtl.cygnus.com)
 
 	* actions.c (adjust_return_value): Simplify.
 	  Delete references to CH_RETURNS_LOC, extra parameters to
-          push_extern_function and start_chill_functions.
+	  push_extern_function and start_chill_functions.
 	  (convert_for_assignment): Check whether to generate runtime
 	  range-checking code.  Handle reference_type in convert call.
 	  (chill_expand_assignment): Produce an INDIRECT_REF for a
@@ -4924,7 +4930,7 @@ Wed Mar  2 16:49:05 1994  Bill Cox  (bill@rtl.cygnus.com)
 	  extra parameters, references to CH_RETURNS_LOC.
 	* grant.c (chill_finish_compile): Delete extra parameter.
 	* parse.y: Delete references to CH_RETURNS_LOC, extra parameters to
-          push_extern_function and start_chill_functions.
+	  push_extern_function and start_chill_functions.
 	* regression.sh (checkprms): Skip PRMS discrepancies if we
 	  can't access PRMS for some reason.
 	* satisfy.c: Correct indentation.
@@ -4945,24 +4951,24 @@ Tue Mar  1 16:24:20 1994  Wilfried Moser  (fs_moser at rcsw1h)
 
 Tue Mar  1 07:34:56 1994  Bill Cox  (bill@rtl.cygnus.com)
 
-        RETURN of LOC value is only half-baked.  Stay tuned...
+	RETURN of LOC value is only half-baked.  Stay tuned...
 	* actions.c (adjust_parm_or_field): Add to comment.
-          (adjust_return_value): New function for issuing errors about
+	  (adjust_return_value): New function for issuing errors about
 	  RETURN and RESULT expressions.  Also converts them.
 	  (chill_expand_result, chill_expand_return): Call new
 	  adjust_return_value function.
 	* ch-tree.h (CH_RETURNS_LOC): Add new flag for function types.
-          New parameter for push_extern_function and start_chill_function.
+	  New parameter for push_extern_function and start_chill_function.
 	* decl.c (push_extern_function, start_chill_function): New parameter
 	  to say whether return value is a LOC.
 	* expr.c (build_chill_indirect_ref): Further qualify the issuing
 	  of the error message.
-	* grant.c (raw_decode_mode): Move test for instance mode under 
+	* grant.c (raw_decode_mode): Move test for instance mode under
 	  STRUCT handling.
 	  (start_chill_module_code, chill_finish_compile): Add new
 	  parameter to start_chill_function calls.
 	* parse.y (get_type_of): Do lookup_name more often.
-	  (quasi_pdef, procedure, procmode, optresultspec): Set 
+	  (quasi_pdef, procedure, procmode, optresultspec): Set
 	  CH_RETURNS_LOC flag.
 	  (optresultattr): Code keywords as a bitmask.
 	* tasking.c (build_process_header): Add new parameter to
@@ -4972,8 +4978,8 @@ Sat Feb 26 12:49:05 1994  Bill Cox  (bill@rtl.cygnus.com)
 
 	* Makefile.in: Replace undefined $(RM) with rm -f.
 	* configure: Make sure scripts are executable.
-	* regression.sh: Make variables to invoke make 
-	  and awk.  Don't process a directory if it 
+	* regression.sh: Make variables to invoke make
+	  and awk.  Don't process a directory if it
 	  doesn't exist.
 
 Fri Feb 25 14:48:48 1994  Bill Cox  (bill@rtl.cygnus.com)
@@ -5062,12 +5068,12 @@ Mon Feb 21 13:24:02 1994  Bill Cox  (bill@rtl.cygnus.com)
 	* grant.c (chill_finish_compile): Bypass handling
 	  module-level code if an earlier error has made
 	  is useless.
-	* tasking.c (build_start_process): Generate error, 
+	* tasking.c (build_start_process): Generate error,
 	  return if process name unknown.
 
 Mon Feb 21 14:29:41 1994  Wilfried Moser  (fs_moser at rcsw47)
 
-	* expr.c (build_generalized_call): Use 
+	* expr.c (build_generalized_call): Use
 	  build_arrow_expr semantics for ADDR () builtin.
 
 Mon Feb 21 12:49:14 1994  Bill Cox  (bill@rtl.cygnus.com)
@@ -5083,9 +5089,9 @@ Sun Feb 20 19:58:14 1994  Bill Cox  (bill@rtl.cygnus.com)
 
 	* regression.sh: Fix cvs update-related commands.
 	  Have cron job always perform the update, so it's
-	  always reporting on the current state of the 
+	  always reporting on the current state of the
 	  sources.
-	* typeck.c (string_assignment_condition): Allow a 
+	* typeck.c (string_assignment_condition): Allow a
 	  mis-match if the LHS is varying.
 
 Fri Feb 18 18:10:04 1994  Bill Cox  (bill@rtl.cygnus.com)
@@ -5187,9 +5193,9 @@ Sat Feb 12 16:24:22 1994  Bill Cox  (bill@rtl.cygnus.com)
 
 	* actions.c, convert.c, decl.c, expr.c, lex.l,
 	  tasking.c, typeck.c: gcc -Wall cleanups.
-        * ch-tree.h: Change loop-related prototypes.
+	* ch-tree.h: Change loop-related prototypes.
 	* loop.c, parse.y: Rewrite to set up correct loop scope.
-          Fix error path where loop variable not declared.
+	  Fix error path where loop variable not declared.
 
 Fri Feb 11 11:12:29 1994  Bill Cox  (bill@rtl.cygnus.com)
 
@@ -5265,7 +5271,7 @@ Wed Feb  2 11:24:57 1994  Wilfried Moser  (fs_moser at rcsw47)
 
 Wed Feb  2 09:31:37 1994  Bill Cox  (bill@rtl.cygnus.com)
 
-        * configure: Add ${srcdir} to Makefile.in's path.
+	* configure: Add ${srcdir} to Makefile.in's path.
 	* loop.c: Delete unused whitespace.
 
 Tue Feb  1 17:09:41 1994  Bill Cox  (bill@rtl.cygnus.com)
@@ -5329,7 +5335,7 @@ Sun Jan 30 12:01:07 1994  Bill Cox  (bill@rtl.cygnus.com)
 	  (expand_varying_length_assignment): Clean up bitrot.
 	* convert.c (convert): Revert most recent change.
 	* loop.c (maybe_skip_loop): New function, split out of
-	  begin_chill_loop.  Add conditional to skip processing an empty 
+	  begin_chill_loop.  Add conditional to skip processing an empty
 	  VARYING array.
 	* parse.y (assignaction): Delete code to recognize LENGTH
 	  on left-hand-side.
@@ -5382,7 +5388,7 @@ Thu Jan 27 14:12:07 1994  Mike Stump  (mrs@cygnus.com)
 Thu Jan 27 10:37:33 1994  Bill Cox  (bill@rtl.cygnus.com)
 
 	* decl.c (bind_sub_modules): Need a parameter on the recursive call.
-	  Thanks, Zoo!	
+	  Thanks, Zoo!
 
 Thu Jan 27 10:37:33 1994  Bill Cox  (bill@rtl.cygnus.com)
 
@@ -5417,7 +5423,7 @@ Tue Jan 25 14:00:02 1994  Wilfried Moser  (fs_moser at rcsw1j)
 	  build the type the DESCR builtin returns.
 	  Add function build_chill_descr, which process the DESCR builtin.
 	* ch-expr.c (build_chill_length): Add code to enable
-	  LENGTH (bitstring). 
+	  LENGTH (bitstring).
 	* ch-expr.ch (build_generalized_call): Add processing of DESCR
 	  builtin.
 	* ch-grant.c: Add code to avoid producing of unnecessary grant
@@ -5493,7 +5499,7 @@ Sat Jan 15 09:15:22 1994  Bill Cox  (bill@rtl.cygnus.com)
  << This set of CHILL frontend sources is now the
     maintainable and master set. Accept no substitutes! >>
 	* Makefile.in, configure: Completely rewritten
-	  to be invoked by gcc/Makefile.in and 
+	  to be invoked by gcc/Makefile.in and
 	  gcc/configure.
 	* addtest (update_ChangeLog): Fix insertion
 	  of the '*'.
@@ -5502,10 +5508,10 @@ Sat Jan 15 09:15:22 1994  Bill Cox  (bill@rtl.cygnus.com)
 	* cpy.sh: Add necessary edits to files as they
 	  are copied down.
 	* actions.c, ch-tree.def, ch-tree.h, convert.c,
-          decl.c, except.c, expr.c, grant.c, inout.c,
+	  decl.c, except.c, expr.c, grant.c, inout.c,
 	  lang.c, lex.h, lex.l, loop.c, parse.y,
 	  satisfy.c, tasking.c, typeck.c: Latest
-	  versions from the repository. 
+	  versions from the repository.
 
 Fri Jan 14 12:28:39 1994  Bill Cox  (bill@rtl.cygnus.com)
 
@@ -5555,7 +5561,7 @@ Wed Dec  8 09:35:54 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 Sun Nov 21 08:34:33 1993  Bill Cox  (bill@rtl.cygnus.com)
 
-        * Makefile.in: Adjust gperf rule for names in this directory.
+	* Makefile.in: Adjust gperf rule for names in this directory.
 	* ch_decomment.l: New file.  Ignores CHILL comments.
 	  Executable is used bu ch_makedepend.
 	* ch_makedepend: New script.  Makes CHILL dependencies for
@@ -5570,7 +5576,7 @@ Sun Nov 21 08:34:33 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 Sat Oct 30 15:02:24 1993  Per Bothner  (bothner@kalessin.cygnus.com)
 
-	* chill.texi:  Add new node about conversions. 
+	* chill.texi:  Add new node about conversions.
 
 Fri Oct 29 14:17:31 1993  Bill Cox  (bill@cygnus.com)
 
@@ -5665,7 +5671,7 @@ Fri Jan 14 21:09:44 1994  Per Bothner  (bothner@kalessin.cygnus.com)
 
 Wed Jan 12 10:19:35 1994  Bill Cox  (bill@rtl.cygnus.com)
 
-	* ch-lex.l (WS): Add BS, VT and CR to definition of 
+	* ch-lex.l (WS): Add BS, VT and CR to definition of
 	  whitespace.
 	  (convert_number): Allow for uppercase hex digits.
 
@@ -5694,7 +5700,7 @@ Mon Jan 10 18:29:36 1994  Bill Cox  (bill@rtl.cygnus.com)
 	* ch-actions.c (chill_convert_for_assignment): Avoid seg fault.
 	* ch-expr.c (expand_packed_set): Add new parameter to pass
 	  set's minimum ordinal value.  Fix loop invariant problem.
-	  (fold_set_expr): Change to add new parameter to 
+	  (fold_set_expr): Change to add new parameter to
 	  expand_packed_set call.
 	* ch-grant.c: Move extern declaration to ch-tree.h.
 	* ch-lex.l (convert_bitstring): Also output the bitstring
@@ -5865,7 +5871,7 @@ Tue Jan  4 00:24:14 1994  Bill Cox  (bill@cygnus.com)
 
 	* ch-actions.c: Fix comments.
 	* ch-parse.y: Define caseaction_flag.
-	  (caseaction): Create new caseaction_flag node at the start, 
+	  (caseaction): Create new caseaction_flag node at the start,
 	  then free it at the end.  Check it before the ELSE code.
 	  (expanded_case_label): Check the flag here.  If set in either
 	  place, generate a jump to the end of the case.
@@ -5897,9 +5903,9 @@ Mon Jan  3 21:49:04 1994  Michael Tiemann  (tiemann@blues.cygnus.com)
 Mon Jan  3 21:24:44 1994  Bill Cox  (bill@cygnus.com)
 
 	* c-typeck.c: Fix comment.
-	* ch-actions.c (chill_expand_assignment): Error assigning to 
-	  READONLY location.  (PR_3903)  Pass filename, linenumber 
-	  to setbitpowerset runtime routine.	
+	* ch-actions.c (chill_expand_assignment): Error assigning to
+	  READONLY location.  (PR_3903)  Pass filename, linenumber
+	  to setbitpowerset runtime routine.
 	* ch-decl.c (init_decl_processing): Add filename, linenumber
 	  parameters to setbitpowerset prototype.
 	* ch-expr.c (build_chill_function_call): Error when passing a
@@ -5919,7 +5925,7 @@ Mon Jan  3 19:03:55 1994  Michael Tiemann  (tiemann@blues.cygnus.com)
 	* ch-typeck.c (validate_varying_array_ref): Simplify interface
 	since INDEX parameter can never meaningfully be an INDEXLIST.
 	* ch-actions.c (expand_varying_length_assignment): Caller changed.
-	
+
 Mon Jan  3 07:29:45 1994  Michael Tiemann  (tiemann@blues.cygnus.com)
 
 	* ch-typeck.c (build_chill_cast): Set TREE_CONSTANT on NOP_EXPRs.
@@ -5993,7 +5999,7 @@ Sat Jan  1 10:29:19 1994  Michael Tiemann  (tiemann@blues.cygnus.com)
 	TREE_CONSTANT not being set by calling `build1' when `build_unary_op'
 	should have been called.
 
-	* ch-convert.c (digest_struct_tuple): Restore code which tracks 
+	* ch-convert.c (digest_struct_tuple): Restore code which tracks
 	field initializations so that the compiler can deduce what variant
 	initializations to assume.
 
@@ -6053,9 +6059,9 @@ Fri Dec 31 11:31:01 1993  Michael Tiemann  (tiemann@blues.cygnus.com)
 
 Fri Dec 31 15:32:56 1993  Bill Cox  (bill@rtl.cygnus.com)
 
-	* ch-lex.l (convert_number): Output the converted number if 
+	* ch-lex.l (convert_number): Output the converted number if
 	  yydebug is enabled.
-	* ch-parse.y (signaldef): Set ignore_exprs correctly for a 
+	* ch-parse.y (signaldef): Set ignore_exprs correctly for a
 	  SIGNAL declaration.
 
 Fri Dec 31 13:17:48 1993  Bill Cox  (bill@cygnus.com)
@@ -6085,10 +6091,10 @@ Thu Dec 30 14:28:25 1993  Bill Cox  (bill@rtl.cygnus.com)
 	  (build_receive_case_label): Move between start and end functions.
 	  (build_delay_case_start): Pass SET name and priority also.
 	  Generally update to correct functioning.
-          (build_delay_case_label): Move between start and end fucntions, 
+	  (build_delay_case_label): Move between start and end fucntions,
 	  correct its functioning.
 	  (build_delay_case_end): Correct the code.
-          (tasking_init): Lots of tasking-related code moved here from
+	  (tasking_init): Lots of tasking-related code moved here from
 	  init_decl_processing.
 	* ch-tree.h: Update, add prototypes.
 
@@ -6130,7 +6136,7 @@ Tue Dec 28 18:20:14 1993  Bill Cox  (bill@rtl.cygnus.com)
 	  (build_receive_case_start, build_receive_case_label): Defer
 	  calling runtime routine until we know whether we have a signal
 	  or a buffer to wait for.
-	  (build_delay_case_start, build_delay_case_end, 
+	  (build_delay_case_start, build_delay_case_end,
 	   build_delay_case_label, build_delay_action,
 	   process_event_decls): Added functions.
 	* ch-typeck.c (chill_similar): Allow all integers of differing
@@ -6239,7 +6245,7 @@ Tue Dec 14 15:41:32 1993  Per Bothner  (bothner@kalessin.cygnus.com)
 
 Mon Dec 13 16:44:43 1993  Per Bothner  (bothner@kalessin.cygnus.com)
 
-	* ch-expr.c (build_chill_addr_expr, build_chill_addr_expr):  Don't re-write 
+	* ch-expr.c (build_chill_addr_expr, build_chill_addr_expr):  Don't re-write
 
 	* ch-tree.h (chill_root_resulting_mode):  Fix typo (missing '_').
 
@@ -6271,7 +6277,7 @@ Mon Dec 13 14:57:55 1993  Bill Cox  (bill@rtl.cygnus.com)
 	  variable.
 	* ch-tasking.c: Use expand_expr_stmt to avoid C-specific
 	  conversions.
-          (build_buffer_decl): Save the tasking_code_variable's decl
+	  (build_buffer_decl): Save the tasking_code_variable's decl
 	  in the buffer decl tree.
 	  (build_buffer_descriptor): Real, working version.
 
@@ -6284,7 +6290,7 @@ Mon Dec 13 03:13:36 1993  Bill Cox  (bill@rtl.cygnus.com)
 	  (locdec): Enable building of a buffer decl.
 	  (optresultspec, optresultattr): Add optional
 	  result attributes such as LOC.  Semantics
-          not enabled yet.
+	  not enabled yet.
 	* ch-tasking.c (expand_send_buffer): Renamed.
 	* ch-tree.h (build_send_buffer): Renamed.
 	* ch-typeck.c (chill_expr_class): Do more complete,
@@ -6312,7 +6318,7 @@ Fri Dec 10 10:00:42 1993  Bill Cox  (bill@rtl.cygnus.com)
 	* ch-grant.c (decode_decl): Restore code mistakenly deleted.
 	  Move instance-handling code to raw_decode_mode.
 	* ch-parse.y (formpar): Allow READ modifier in SPEC MODULE.
-          Add rough draft of DELAY statement handling.
+	  Add rough draft of DELAY statement handling.
 	* ch-tasking.c (build_event_type): New function.
 	* ch-tree.h (build_event_type): Add prototype.
 	* ch-typeck.c (smash_dummy_type): Add buffer & event handling.
@@ -6380,14 +6386,14 @@ Mon Dec  6 14:35:31 1993  Per Bothner  (bothner@kalessin.cygnus.com)
 
 Sat Dec  4 22:16:19 1993  Bill Cox  (bill@rtl.cygnus.com)
 
-	* ch-actions.c (cond_range_exception, 
+	* ch-actions.c (cond_range_exception,
 	  cond_type_range_exception): Check command-line flag before
 	  generating code.  Fix comments.
 	* ch-expr.c (build_chill_num): Add generation of OVERFLOW
 	  code, commented out.
 	* ch-loop.c (build_chill_iterator): Comment out
 	  exception code generation.
-	* ch-parse.y: Delete quasi_signal flag, use 
+	* ch-parse.y: Delete quasi_signal flag, use
 	  current_module->is_spec_module instead.
 	* ch-tasking.c (build_buffer_decl, build_buffer_descriptor):
 	  Delete quasi_decl flag.  Look at current_module
@@ -6473,7 +6479,7 @@ Tue Nov 30 14:05:23 1993  Bill Cox  (bill@rtl.cygnus.com)
 	* ch-decl.c (init_decl_processing): Add filename, line number
 	  parameters to tasking-related runtime routines.
 	* ch-grant.c (decode_decl): Check for BUFFER mode differently.
-	* ch-parse.y (BUFFER_CODE, EVENT_CODE): Move token to 
+	* ch-parse.y (BUFFER_CODE, EVENT_CODE): Move token to
 	  lex-only list.
 	  (quasi_locdec): Set/reset quasi_decl flag.
 	* ch-tasking.c (build_start_process, expand_send_signal,
@@ -6564,7 +6570,7 @@ Sat Nov 20 20:17:15 1993  Bill Cox  (bill@rtl.cygnus.com)
 	* ch-decl.c (init_decl_processing): Add filename
 	  and linenumber to allocate, free memory calls.
 	* ch-expr.c (build_allocate_memory_call,
-	  (build_allocate_global_memory_call): Add 
+	  (build_allocate_global_memory_call): Add
 	  filename, linenumber to call.
 	* ch-loop.c: Complete rewrite for maintainability.
 
@@ -6606,7 +6612,7 @@ Wed Nov 17 16:40:05 1993  Bill Cox  (bill@rtl.cygnus.com)
 	  of powerset runtime routines.
 	* ch-expr.c (chill_expand_expr): Change parameters to powerset
 	  runtimes so bitlengths are long unsigned ints.
-	* ch-inout.c (build_chill_writetext): Add filename and linenumber	
+	* ch-inout.c (build_chill_writetext): Add filename and linenumber
 	  as runtime parameters, for better error messages.
 	* ch-loop.c: general pre-rewrite cleanup.
 	* expr.c (store_constructor): Rewrite set interface to
@@ -6691,7 +6697,7 @@ Fri Nov 12 13:27:12 1993  Per Bothner  (bothner@rtl.cygnus.com)
 
 	* ch-expr.c (chill_expand_expr, build_concat_expr): Simplify
 	string concatenation by treating varying strings as slices.
-        (varying_to_slice): New function.
+	(varying_to_slice): New function.
 	* ch-typeck.c (build_chill_slice): Changed to support the above.
 
 Fri Nov 12 12:07:28 1993  Bill Cox  (bill@rtl.cygnus.com)
@@ -6715,7 +6721,7 @@ Thu Nov 11 07:49:53 1993  Bill Cox  (bill@rtl.cygnus.com)
 	  word.  It's only predefined.
 	* ch-inout.c: Add special_UC to conditionals
 	  to determine case of reserved words.
-	  (build_chill_writetext): Change for call from 
+	  (build_chill_writetext): Change for call from
 	  build_generalized_call.  Add code to format
 	  integers.
 	* ch-lang.c (lang_decode_option): Add special_UC and
@@ -6755,8 +6761,8 @@ Wed Nov 10 02:29:53 1993  Bill Cox  (bill@rtl.cygnus.com)
 	  token before checking for reserved words.
 	* ch-parse.y: Delete ADDR as a reserved word.
 	  (mode2, optlayout): Allow PACK/UNPACK specifier.
-	  (call): Use build_generalized_call for 
-	          primval LPRN modename RPRN.
+	  (call): Use build_generalized_call for
+		  primval LPRN modename RPRN.
 	  (primval): Delete ADDR reference.  It's now only
 	  predefined, not reserved.
 	* ch-tree.h: Add BUILT_IN_ADDR as a predefined.
@@ -6773,8 +6779,8 @@ Tue Nov  9 15:07:02 1993  Bill Cox  (bill@rtl.cygnus.com)
 	  (init_decl_processing): Add builtin_function calls for lots of
 	  predefined functions.
 	* ch-expr.c: Change builtin function handlers back to accepting
-	  args, not a treelist.  
-          (route_to_predefined_function): Delete it and its call.
+	  args, not a treelist.
+	  (route_to_predefined_function): Delete it and its call.
 	  (build_generalized_call): Add lots of builtin functions.
 	* ch-gperf (backwards, duration, inttime, null): Delete them.
 	* ch-hash.h: New version.
@@ -6786,7 +6792,7 @@ Tue Nov  9 15:07:02 1993  Bill Cox  (bill@rtl.cygnus.com)
 	* ch-parse.y: Delete lots of stuff which should only be predefined.
 	* ch-tasking.c: Change special_UC to ignore_case everywhere.
 	  Change builtin function handlers back to accepting args,
-          not a treelist.  
+	  not a treelist.
 	* ch-tree.h: Add lots of builtin functions to the enumerator.
 
 Mon Nov  8 18:08:27 1993  Bill Cox  (bill@rtl.cygnus.com)
@@ -6802,7 +6808,7 @@ Mon Nov  8 17:30:22 1993  Bill Cox  (bill@rtl.cygnus.com)
 	  function.
 	  (lookup_name): Check for a CONST_DECL, don't ask about DECL_NESTING
 	  stuff for builtin constant like TRUE.
-	* ch-expr.c (route_to_predefined_function): Add a bunch of 
+	* ch-expr.c (route_to_predefined_function): Add a bunch of
 	  predefined functions to the list.
 	* ch-gperf: Define the list of reserved words, minus the predefined
 	  words, using the special_UC flag.  Remove NULL, TRUE, FALSE -
@@ -6814,10 +6820,10 @@ Mon Nov  8 17:30:22 1993  Bill Cox  (bill@rtl.cygnus.com)
 	* ch-lex.h: Add enumerators for TRUE, FALSE, NULL.
 	* ch-lex.l: Total rewrite of reserved-word recognition, using
 	  the ch-hash.h lookup routines.
-	* ch-parse.y: Delete a bunch of unused rules for predefined 
+	* ch-parse.y: Delete a bunch of unused rules for predefined
 	  procedures and their parameters.
 	* ch-tasking.c (tasking_init): Build predefined functions
-          for COPY_NUMBER, GEN_CODE, GEN_INST, and GEN_PTYPE.  Not
+	  for COPY_NUMBER, GEN_CODE, GEN_INST, and GEN_PTYPE.  Not
 	  complete yet.  Change interface to builtin handlers to accept
 	  just an expression list.
 
@@ -6840,7 +6846,7 @@ Wed Nov  3 18:07:08 1993  Bill Cox  (bill@rtl.cygnus.com)
 	* ch-lex.l (init_lex): Initialize ridpointers to uppercase
 	  if special_UC flag is set.
 	  (downcase, getlc, check_newline): Don't do this if ignore_case
-          flag is set.
+	  flag is set.
 	* ch-parse.y (variantdef, case_expr): Report 'sorry' for use of
 	  multiple selector expressions.
 
@@ -6910,7 +6916,7 @@ Thu Oct 28 16:43:36 1993  Bill Cox  (bill@rtl.cygnus.com)
 	  Check for invalid parameters, issue errors.
 	* expr.c (store_constructor): Calculate bitlength, startrtx
 	  and endrtx of powerset correctly.  Define targetx, use it
-          and XEXP correctly.
+	  and XEXP correctly.
 
 Wed Oct 27 08:25:56 1993  Bill Cox  (bill@rtl.cygnus.com)
 
@@ -6977,7 +6983,7 @@ Wed Oct 20 09:52:44 1993  Bill Cox  (bill@rtl.cygnus.com)
 	  (decl_tasking_code_var): Delete it.  Its calls are replaced woth
 	  generate_tasking_code_variable calls, plus a little glue.
 	  (push_extern_process): generate tasking_code_variable as local
-	  static variable, point the process' function_decl at it for later 
+	  static variable, point the process' function_decl at it for later
 	  reference by build_start_process.
 	  (print_mode): Use CHILL upper-case convention to print modes.
 	* ch-lex.l: Must initialize tasking-related trees to NULL at start
@@ -6985,7 +6991,7 @@ Wed Oct 20 09:52:44 1993  Bill Cox  (bill@rtl.cygnus.com)
 	  specify a value for each of them.
 	* ch-parse.y (check_end_label, action, exceptlist): Only output
 	  error message in pass 1.
-          (sendaction): Add comments.
+	  (sendaction): Add comments.
 	  (sigdef): Comment out special handling for external signals.
 	  Chain tasking_variable_decl onto signal structure decl, for
 	  easier non-symbol-table access later.
@@ -7000,7 +7006,7 @@ Wed Oct 20 09:52:44 1993  Bill Cox  (bill@rtl.cygnus.com)
 	  function decl.
 	  (build_signal_struct_type): Return the type decl, to be accessed by ...
 	  (build_signal_descriptor): .. this function.
-	  (build_receive_case_label): Get data buffer pointer not from hash 
+	  (build_receive_case_label): Get data buffer pointer not from hash
 	  table, but from Tiemann's current rc_state structure instead.
 	* ch-tree.h: Change prototype, fix comment, add DECL_TASKING_CODE_DECL
 	  macro for tasking_code_variable storage.
@@ -7057,7 +7063,7 @@ Sun Oct 17 23:15:00 1993  Bill Cox  (bill@cygnus.com)
 	* ch-decl.c (do_decl): Revert bogus initializer type change.
 	* ch-grant.c (chill_finish_module_code): Put module's decl onto
 	  the module_init_list, for chill_finish_compile's possible use.
-	  (chill_finish_compile): Rename variables for clarity, add 
+	  (chill_finish_compile): Rename variables for clarity, add
 	  commented-out code as example for assignment of module address to its
 	  init_list entry.
 
@@ -7094,7 +7100,7 @@ Fri Oct 15 21:44:11 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)
 
 Fri Oct 15 10:30:09 1993  Bill Cox  (bill@cygnus.com)
 
-	* ch-expr.c (finish_chill_binary_op): Activate some 
+	* ch-expr.c (finish_chill_binary_op): Activate some
 	  type-setup code.
 	* expr.c (store_constructor): Subtract arrays minimum element.
 	  Makes orientexpress work.
@@ -7106,7 +7112,7 @@ Fri Oct 15 09:26:24 1993  Bill Cox  (bill@cygnus.com)
 
 Thu Oct 14 13:20:02 1993  Bill Cox  (bill@cygnus.com)
 
-	* ch-actions.c (build_chill_cause_exception): Pass the 
+	* ch-actions.c (build_chill_cause_exception): Pass the
 	  *address* of the filename string to the runtime routine,
 	  rather than passing the string by value.
 
@@ -7160,7 +7166,7 @@ Mon Oct 11 17:23:02 1993  Bill Cox  (bill@cygnus.com)
 	* ch-decl.c (init_decl_processing): Define __whoami and
 	  __wait_buffer functions.
 	* ch-lex.l (ch_lex_init): Reset tasking numbers to zero.
-	* ch-parse.y (sigdef): Add new add_taskstuff_to_list 
+	* ch-parse.y (sigdef): Add new add_taskstuff_to_list
 	  parameter.
 	* ch-tasking.c (get_tasking_code): Search tasking_list for
 	  tasking code name match.  Can't use lookup_name.
@@ -7173,7 +7179,7 @@ Mon Oct 11 17:23:02 1993  Bill Cox  (bill@cygnus.com)
 	  list entries no built by ..
 	  (add_taskstuff_to_list): Accept new parameter,
 	  add it to the list.
-	* ch-tree.h (add_taskstuff_to_list): Add new 
+	* ch-tree.h (add_taskstuff_to_list): Add new
 	  parameter.
 
 Mon Oct 11 14:54:50 1993  Per Bothner  (bothner@kalessin.cygnus.com)
@@ -7193,7 +7199,7 @@ Sun Oct 10 09:11:52 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 Fri Oct  8 16:00:04 1993  Bill Cox  (bill@cygnus.com)
 
-	* ch-actions.c (adjust_parm_or_field): Add parameter to 
+	* ch-actions.c (adjust_parm_or_field): Add parameter to
 	  decl_temp1 call.
 	*ch-decl.c (decl_tasking_code_var): Replace do_decl call with
 	  decl_temp1 call.
@@ -7201,14 +7207,14 @@ Fri Oct  8 16:00:04 1993  Bill Cox  (bill@cygnus.com)
 	  (shadow_record_fields): Add parameter to decl_temp1 call.
 	* ch-expr.c (chill_expand_case_expr): Add parameter
 	  to decl_temp1 call.
-	* ch-grant.c (chill_finish_compile): Add code to spoof 
+	* ch-grant.c (chill_finish_compile): Add code to spoof
 	  get_file_function_name,  so we don't get __tmp_s1_code,
 	  for example, as the module-level code's name.
 	* ch-loop.c (build_temporary_variable, begin_for_range,
-          init_loop_counter): Add parameter to decl_temp1 call.
+	  init_loop_counter): Add parameter to decl_temp1 call.
 	* ch-parse.y (quasi_signaldef): Clear quasi_signal flag here,
 	  for easier maintenance.
-          (sendaction): Rewrite to receive SIGNALNAME token correctly
+	  (sendaction): Rewrite to receive SIGNALNAME token correctly
 	  from ch-lex.l (name_type_signal).
 	  (signaldef): Don't clear quasi_signal here.
 	* ch-tasking.c (generate_tasking_code_variable): Tell decl_temp1
@@ -7216,7 +7222,7 @@ Fri Oct  8 16:00:04 1993  Bill Cox  (bill@cygnus.com)
 	  (build_start_process): Add parameter to decl_temp1 call.
 	  (tasking_setup): Comment out band-aid hack which calls
 	  generate_tasking_code_variable.  Shouldn't be necessary.
-	  Use null_pointer_node rather than integer_zero_node in 
+	  Use null_pointer_node rather than integer_zero_node in
 	  entry_point.  More rewrites.
 	  (build_signal_descriptor): Name the non-signal in the error msg.
 	  Rewrite the building of the signal envelope - avoid seg fault.
@@ -7232,7 +7238,7 @@ Tue Oct  5 13:51:27 1993  Bill Cox  (bill@cygnus.com)
 	* ch-grant.c: Standardize indentation.
 	* ch-parse.y (end_function): Unconditionally poplevel for processes.
 	* ch-tasking.c (build_process_header): Unconditionally pushlevel.
-          (generate_tasking_code_variable): Stop using pass number to
+	  (generate_tasking_code_variable): Stop using pass number to
 	  force a one-time action.
 	* ch-tree.h (build_chill_slice): Delete proto since function went static.
 
@@ -7250,7 +7256,7 @@ Mon Oct  4 13:52:36 1993  Bill Cox  (bill@cygnus.com)
 	  (generate_tasking_code_variable): Return the var's decl.
 	  (build_signal_struct_type): Move generate_tasking_code_variable
 	  and add_taskstuff_to_list calls to ..
-        * ch-parse.y (sigdef): .. here.  And make indentation changes.
+	* ch-parse.y (sigdef): .. here.  And make indentation changes.
 	* ch-tree.h: Rename functions, add return values.
 
 Mon Oct  4 15:43:56 1993  Per Bothner  (bothner@kalessin.cygnus.com)
@@ -7336,7 +7342,7 @@ Wed Sep 29 13:36:23 1993 1993  Bill Cox  (bill@cygnus.com)
 	  fault.
 	  (procedure, process): Change calls to end_function, remove
 	  code saving value from build_process_header.  Delete redundant chill_
-	  phrases from some function calls.  
+	  phrases from some function calls.
 	* ch-tasking.c: Remove some redundant _chill phrases from function
 	  names.
 	* ch-tree.h: Remove some redundant _chill phrases from function
@@ -7498,7 +7504,7 @@ Fri Sep 24 15:27:13 1993  Bill Cox  (bill@cygnus.com)
 	  due to the language's 2-pass nature.
 	* ch-parse.y (arrayindex): Rewrite for correctness, and to avoid
 	  a seg fault.
-	* ch-tree.h (lookup_remembered_name): Comment out the prototype. 
+	* ch-tree.h (lookup_remembered_name): Comment out the prototype.
 
 Fri Sep 24 11:01:31 1993  Michael Tiemann  (tiemann@blues.cygnus.com)
 
@@ -7522,9 +7528,9 @@ Fri Sep 24 11:01:31 1993  Michael Tiemann  (tiemann@blues.cygnus.com)
 	  (build_tasking_message_type): Layout the type.
 	  (rc_state_type): New structure to keep nested receive-case
 	  info in.
-          (build_chill_receive_case_start, build_chill_receive_case_end):
+	  (build_chill_receive_case_start, build_chill_receive_case_end):
 	  Use the new struct.
-	  
+
 
 Fri Sep 24 04:19:15 1993  Michael Tiemann  (tiemann@blues.cygnus.com)
 
@@ -7600,10 +7606,10 @@ Thu Sep 23 09:18:35 1993  Bill Cox  (bill@cygnus.com)
 
 	* ch-decl.c (print_lang_decl): Make weak name output more standard.
 	  (print_lang_identifier): Make signal-data flag output more standard.
-          (push_chill_extern_process): Pass correct arg tree to
+	  (push_chill_extern_process): Pass correct arg tree to
 	  push_chill_extern_function.
-	  (push_syn_decls, fixup_unknown_type, chill_modes_equiv): 
-	  Standardize function header layouts (Makes the tcov script 
+	  (push_syn_decls, fixup_unknown_type, chill_modes_equiv):
+	  Standardize function header layouts (Makes the tcov script
 	  work better).
 	* ch-except.c (chill_finish_on): Standardize function header.
 	* ch-expr.c (fold_set_or): Standardize function header.
@@ -7643,7 +7649,7 @@ Wed Sep 22 10:42:31 1993  Per Bothner  (bothner@kalessin.cygnus.com)
 	(CH_CLASS_IS_XXX, TYPE_NEWMODE, CH_CLASS_MODE):  Removed.
 	* ch-typeck.c (classify_chill_expr renamed to chill_expr_class):
 	Take extra output parameter (for M, as in M-value class).
-	* ch-typeck.c (chill_novelty):  New function.  (Also de-references.) 
+	* ch-typeck.c (chill_novelty):  New function.  (Also de-references.)
 
 	* ch-expr.c (resolve_component_ref, build_chill_component_ref):
 	New functions.  Handle 2-pass and variant records.
@@ -7692,20 +7698,20 @@ Tue Sep 21 14:19:11 1993  Bill Cox  (bill@cygnus.com)
 	* ch-grant.c (decode_decl): Write proper header for a process.
 	* ch-parse.y (quasi_pdef): process now uses processparlist,
 	  which doesn't change with the passes.
-          (quasi_locdec): Call build_chill_reference_type to defer
+	  (quasi_locdec): Call build_chill_reference_type to defer
 	  doing the type's layout.
 	  (processpar): Use paramnamelist, but reformat it into a
 	  list of identifiers in pass 2, so a processpar is the same
 	  structure in both passes.
-          (locdec): Call build_chill_reference_type to defer doing the
-          type's layout.
+	  (locdec): Call build_chill_reference_type to defer doing the
+	  type's layout.
 	* ch-tasking.c (generate_tasking_code_variable): Call do_decl to
 	  build the decl.  Only update the variable's tree in pass 2.
-          (make_process_struct): Call build_chill_reference_type to defer
+	  (make_process_struct): Call build_chill_reference_type to defer
 	  doing the type's layout.
-          (build_process_header): New code to call make_process_struct.
+	  (build_process_header): New code to call make_process_struct.
 	  New pass-2 code to make a PARM_DECL for start_chill_function.
-          Pass a void_type_node, not a NULL_TREE for an empty list.
+	  Pass a void_type_node, not a NULL_TREE for an empty list.
 	  Get input for shadow_record_fields from current_function_decl.
 	  (build_buffer_decl): Call do_decl not decl_temp1.
 	* ch-typeck.c: Reindent to standards.
@@ -7836,8 +7842,8 @@ Sun Sep 12 21:10:10 1993  Per Bothner  (bothner@kalessin.cygnus.com)
 
 	* ch-parse.y (labellist):  Don't do anything if ignore_exprs.
 
-        * c-typeck.c (output_pending_init_elements): Handle
-        !constructor_incremental case of filling in empty positions.
+	* c-typeck.c (output_pending_init_elements): Handle
+	!constructor_incremental case of filling in empty positions.
 	(Patch by Jim Wilson.  CYGNUS LOCAL until we have approval.)
 	* ch-decl.c (pop_module):  Don't grant a seized name.
 	* ch-grant.c (decode_constant):  Support CALL_EXPR.
@@ -7873,7 +7879,7 @@ Sun Sep 12 18:06:23 1993  Bill Cox  (bill@rtl.cygnus.com)
 	  (quasi_formparlist): Write more clearly.
 	  (rcaltlist, optelsercvcase, optstartset): Add ignore_actions
 	  guards.
-	  (rccase_label, sendaction): Use NAME, not SIGNALNAME 
+	  (rccase_label, sendaction): Use NAME, not SIGNALNAME
 	  or BUFFERNAME.
 	  (process): Handle like procedure.
 	  (mode): Add SIGNAL as a generic signal parameter.  This
@@ -7886,7 +7892,7 @@ Sun Sep 12 15:03:21 1993  Per Bothner  (bothner@kalessin.cygnus.com)
 
 	* c-typeck.c (digest_init):  Compare types using comptypes
 	instead of comparing pointers.  (Helps Chill front end.)
-	* ch-expr.c (finish_chill_binary_op): 
+	* ch-expr.c (finish_chill_binary_op):
 	* ch-typeck.c (build_chill_array_ref, build_chill_bitref),
 	ch-expr.c (finish_chill_binary_op):  For now, prefer IN_EXPR
 	over BIT_FIELD_REF because of various problems with BIT_FIELD_REF
@@ -7941,7 +7947,7 @@ Fri Sep 10 15:47:52 1993  Per Bothner  (bothner@kalessin.cygnus.com)
 Thu Sep  9 18:21:46 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-typeck.c (my_build_array_ref): Delete pedantic
-          C-specific error message.
+	  C-specific error message.
 
 Thu Sep  9 17:44:20 1993  Jeffrey Wheat  (cassidy@eclipse.cygnus.com)
 
@@ -7954,7 +7960,7 @@ Thu Sep  9 12:22:22 1993  Per Bothner  (bothner@kalessin.cygnus.com)
 
 Wed Sep  8 13:03:49 1993  Per Bothner  (bothner@kalessin.cygnus.com)
 
-	* ch-except.c (finish_handler_array), ch-decl.c (finish_decl): 
+	* ch-except.c (finish_handler_array), ch-decl.c (finish_decl):
 	Don't use store_init_value, since it calls digest_init instead
 	of chill_digest_init.
 	* ch-except.c (finish_handler_array):  Use build1 (ADDR_EXPR, ...)
@@ -8013,7 +8019,7 @@ Tue Sep  7 11:16:10 1993  Bill Cox  (bill@rtl.cygnus.com)
 	* ch-decl.c (chill_digest_init): New function.  Calls were
 	  changed, since it has fewer parameters than old digest_init.
 	* ch-parse.y (untyped_expr, primval, tupleelement): Calls to
-          new init stuff.
+	  new init stuff.
 	  (elementlist): Delete unused code.
 	* ch-satisfy.c (safe_satisfy_decl): Just return if decl == NULL.
 	* ch-tasking.c (build_tasking_enum): Attempt to adapt to 2-pass.
@@ -8023,7 +8029,7 @@ Tue Sep  7 11:16:10 1993  Bill Cox  (bill@rtl.cygnus.com)
 Tue Sep  7 12:06:28 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-decl.c, ch-parse.y, ch-tree.h, ch-typeck.c: Revert
-          files to their pre-init-change state.
+	  files to their pre-init-change state.
 
 Mon Sep  6 15:28:27 1993  Bill Cox  (bill@rtl.cygnus.com)
 
@@ -8052,16 +8058,16 @@ Wed Sep  1 13:21:53 1993  Per Bothner  (bothner@kalessin.cygnus.com)
 Tue Aug 31 14:57:35 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-decl.c (print_lang_decl): Print weak-name status.
-          (print_lang_identifier): Print signal_data as T or F.
+	  (print_lang_identifier): Print signal_data as T or F.
 	* ch-lex.l (convert_bitstring, convert_charliteral,
-          convert_float, convert_number): Pass string directly to convert
+	  convert_float, convert_number): Pass string directly to convert
 	  as a parameter.  Return token code consistently, return 0
 	  for error.
-          (equal_number): Parse differently, allowing hex, binary
+	  (equal_number): Parse differently, allowing hex, binary
 	  and octal constants.
 	* ch-parse.y (dowithaction, structured_variable): Only
-          push/pop scopes once per DO WITH.
-          (structured_variable_list): Check ignore_actions flag here.
+	  push/pop scopes once per DO WITH.
+	  (structured_variable_list): Check ignore_actions flag here.
 	* gcc.c: Delete 'traditional' from string, add 'itu'
 	  as the standard flag's name.
 
@@ -8092,7 +8098,7 @@ Wed Aug 25 16:58:13 1993  Bill Cox  (bill@rtl.cygnus.com)
 	* .cvsignore: Add g++.sum
 	* ch-actions.c (chill_expand_result): Stop building a temp.
 	  Assign the expression directly into function's DECL_RESULT.
-	* ch-decl.c: Add formfeeds.  
+	* ch-decl.c: Add formfeeds.
 	  (start_chill_function): Don't need to zero DECL_RESULT's pointer any more.
 	  (push_chill_function_context): Delete C pedwarn message.
 	* ch-expr.c: Move builtin functions together.
@@ -8114,7 +8120,7 @@ Wed Aug 25 13:24:06 1993  Bill Cox  (bill@rtl.cygnus.com)
 Wed Aug 25 08:34:36 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-lex.l, ch-parse.y: Delete CONTINUE_EVENT token.
-          It wasn't used anyway.
+	  It wasn't used anyway.
 
 Tue Aug 24 17:51:18 1993  Bill Cox  (bill@rtl.cygnus.com)
 
@@ -8128,7 +8134,7 @@ Tue Aug 24 16:38:24 1993  Per Bothner  (bothner@kalessin.cygnus.com)
 	* ch-tree.c (build_bitstring_type):  Remove all layout-like
 	stuff, and defer that to layout_powerset_type.
 	* ch-expr.c (chill_expand_expr):  For various SET_xxx_EXPRs,
-	allocate stack temp for target using correct mode. 
+	allocate stack temp for target using correct mode.
 
 Tue Aug 24 10:27:19 1993  Bill Cox  (bill@rtl.cygnus.com)
 
@@ -8152,7 +8158,7 @@ Mon Aug 23 12:15:11 1993  Bill Cox  (bill@rtl.cygnus.com)
 	* Makefile.in: Add dependency lines for ch-except.o and
 	  ch-satisfy.o.  Correct dependency lines for ch-convert.o,
 	  ch-expr.o, ch-inout.o, and ch-loop.o.
-          (chill, install-common): Add clean-up commands.
+	  (chill, install-common): Add clean-up commands.
 
 Sat Aug 21 17:11:26 1993  Bill Cox  (bill@rtl.cygnus.com)
 
@@ -8163,7 +8169,7 @@ Sat Aug 21 17:11:26 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 Sat Aug 21 13:59:40 1993  Bill Cox  (bill@rtl.cygnus.com)
 
-	* ch-decl.c (init_decl_processing): Define setbitpowerset	
+	* ch-decl.c (init_decl_processing): Define setbitpowerset
 	  runtime function.
 	* ch-expr.c (chill_expand_assignment): Call setbitpowerset
 	  to set a bit.
@@ -8177,7 +8183,7 @@ Fri Aug 20 17:29:56 1993  Bill Cox  (bill@rtl.cygnus.com)
 	* ch-typeck.c: Indent to standard.
 	* stor-layout.c: Fix comment.
 	* toplev.c: Change -L option ti -I.
-	* varasm.c (emit_set_data): Align set constant to word 
+	* varasm.c (emit_set_data): Align set constant to word
 	  boundary.
 
 Fri Aug 20 08:20:07 1993  Bill Cox  (bill@rtl.cygnus.com)
@@ -8202,7 +8208,7 @@ Wed Aug 18 17:36:53 1993  Bill Cox  (bill@cygnus.com)
 	* ch-parse.y (dowithaction): Always compute & save # of
 	  'with' variables seen (both passes), and always pop that
 	  number of levels.
-          (structured_variable_list): Always chain variables into a list.
+	  (structured_variable_list): Always chain variables into a list.
   	  (structured_variable): Put pushlevel here (from shadow_record_fields).
 	* ch-tasking.c: Indentation fixes.
 	* ch-tree.h: Change proto.
@@ -8274,11 +8280,11 @@ Mon Aug 16 14:41:29 1993  Per Bothner  (bothner@kalessin.cygnus.com)
 
 Mon Aug 16 11:13:07 1993  Bill Cox  (bill@rtl.cygnus.com)
 
-	* ch-actions.c (chill_comptypes): Correct handling reference        
+	* ch-actions.c (chill_comptypes): Correct handling reference
  	  of type 1.
-          (build_chill_length, build_chill_num,
+	  (build_chill_length, build_chill_num,
 	   build_chill_sizeof): Convert result to CHILL integer.
-          (build_chill_function_call): Clean up INOUT and OUT
+	  (build_chill_function_call): Clean up INOUT and OUT
 	  parameter handling.
 	* ch-decl.c (build_chill_function_type): Handle INOUT and
 	  OUT parameters.
@@ -8302,7 +8308,7 @@ Sun Aug 15 15:06:01 1993  Bill Cox  (bill@rtl.cygnus.com)
 	* ch-parse.y (doaction): Unconditionally make a scope
 	  for a loop, pop it later.
 	  (controlpart, iteration): Save return from
-          build_chill_iterator.
+	  build_chill_iterator.
 	* expr.c: Readability changes.
 
 Sat Aug 14 19:42:32 1993  Bill Cox  (bill@rtl.cygnus.com)
@@ -8383,37 +8389,37 @@ Fri Aug 13 13:39:59 1993  Bill Cox  (bill@rtl.cygnus.com)
 	* ch-decl.c (decl_temp): Break the chain of decls.  This
 	  prevents an infinite loop.
 	* ch-lang.c (make_chill_pointer_type): Fix compiler warning.
-	* ch-lex.l (equal_number): Check passes in looking up a 
+	* ch-lex.l (equal_number): Check passes in looking up a
 	  symbolic value.
 	* ch-parse.y: Fix comments.
 	* ch-tasking.c (tasking_setup): Only act in pass 2.
-          (make_signal_struct, build_signal_decl,
+	  (make_signal_struct, build_signal_decl,
 	   build_chill_receive_case_label): Don't go indirect
 	   thru NULL decl pointer.
 
 Thu Aug 12 11:02:34 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-actions.c (route_to_predefined_function): New function called
-          from build_chill_function_call, to call the proper predefined routine.
-          (build_chill_card, build_chill_length, build_chill_lower,
-          build_chill_max, build_chill_min, build_chill_num, 
-          build_chill_pred, build_chill_sizeof, build_chill_succ,
-          build_chill_upper): Rewritten to run only in pass 2.
+	  from build_chill_function_call, to call the proper predefined routine.
+	  (build_chill_card, build_chill_length, build_chill_lower,
+	  build_chill_max, build_chill_min, build_chill_num,
+	  build_chill_pred, build_chill_sizeof, build_chill_succ,
+	  build_chill_upper): Rewritten to run only in pass 2.
 	* ch-decl.c (init_decl_processing): Build predefined functions for card,
-          length, lower, max, min, num, pred, sizeof, succ and upper.  Delete
-          unused builtin_function calls.
+	  length, lower, max, min, num, pred, sizeof, succ and upper.  Delete
+	  unused builtin_function calls.
 	* ch-grant.c (chill_finish_module_code): Save current_function_decl
 	  before calling finish_chill_function, and use that to build the
-          initializer structure.
+	  initializer structure.
 	* ch-lex.l: Remove following tokens, since they're now just predefined,
-          not reserved: card, length, lower, max, min, num, pred, sizeof, succ
-          and upper.
+	  not reserved: card, length, lower, max, min, num, pred, sizeof, succ
+	  and upper.
 	* ch-loop.c: Readability, indentation changes.
 	* ch-parse.y: Delete tokens for card, length, lower, max, min, num, pred,
-          sizeof, succ and upper.  Delete special rules for calls to these.
-          Delete mode_location and upper_lower_arg non-terminals.
+	  sizeof, succ and upper.  Delete special rules for calls to these.
+	  Delete mode_location and upper_lower_arg non-terminals.
 	  (pmodearg): Eliminate convolutions.
-          (call): Add rule for typename parameter.
+	  (call): Add rule for typename parameter.
 	* ch-tasking.c: Readability changes.
 	* ch-tree.h: Add prototypes.
 
@@ -8495,7 +8501,7 @@ Tue Aug 10 21:33:10 1993  Per Bothner  (bothner@kalessin.cygnus.com)
 	* ch-parse.y (modename):  Changed to yield identifier, not type.
 	This allows following changes, which work better for 2-pass:
 	(location):  primval ARROW optmodename -> primval ARROW optname.
-	(primval):  Tuple can now be prefixed by unsatisfied name.	
+	(primval):  Tuple can now be prefixed by unsatisfied name.
 
 	* ch-actions.c (chill_grant_only):  Renamed to grant_only_flag.
 	* ch-lex.l (yywrap):  Don't read seizefiles if grant_only_flag.
@@ -8592,7 +8598,7 @@ Mon Aug  9 15:44:01 1993  Bill Cox  (bill@rtl.cygnus.com)
 	  structure's decl.
 	  (chill_finish_compile): Clear module_init_list to NULL.
 	* ch-parse.y (quasi_formparlist): Rewrite to avoid seg fault.
-	  Rename reverse_scopes to switch_to_pass_2, delete setting 
+	  Rename reverse_scopes to switch_to_pass_2, delete setting
 	  of pass = 2.
 	* ch-tree.h: Rename reverse_scopes proto.
 
@@ -8632,13 +8638,13 @@ Mon Aug  9 01:00:33 1993  Per Bothner  (bothner@kalessin.cygnus.com)
 Sun Aug  8 16:26:40 1993  Per Bothner  (bothner@kalessin.cygnus.com)
 
 	* ch-lex.h:  Add some missing RID_'s.
-	* ch-decl.c (init_decl_processing): 
+	* ch-decl.c (init_decl_processing):
 
 Sun Aug  8 15:32:54 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-grant.c (module_has_actions): Delete this and all
 	  references.  It was a botch.
-          (chill_finish_module_code): Move finish_chill_function_call inside
+	  (chill_finish_module_code): Move finish_chill_function_call inside
 	  the test whether actions were found at module level.
 	  Use current_function_name in the initializer build,
 	  and init_entry_id in the module_list setup.
@@ -8660,7 +8666,7 @@ Sun Aug  8 13:13:29 1993  Per Bothner  (bothner@kalessin.cygnus.com)
 
 Sun Aug  8 10:31:04 1993  Bill Cox  (bill@rtl.cygnus.com)
 
-	Generally, replace 'function' with 'procedure' 
+	Generally, replace 'function' with 'procedure'
 	and 'type' with 'mode' in error/warning messages.
 	* ch-actions.c: See Generally. Fix up 'too many' and 'too few' error msgs.
 	* ch-decl.c: See Generally.
@@ -8685,11 +8691,11 @@ Sun Aug  8 08:59:23 1993  Bill Cox  (bill@rtl.cygnus.com)
 	  (init_decl_processing): Build __tmp_initializer_type.
 	  Code moved from chill_finish_module_code.
 	* ch-grant.c: New flag module_has_actions.  Set TRUE by push_actions,
-	  used, reset by chill_finish_module_code.    Replaces test of 
-          module_function_name.  Shuffled finish-up code to end of module.
-          (chill_finish_module_code): Use global_bindings_p to determine
+	  used, reset by chill_finish_module_code.    Replaces test of
+	  module_function_name.  Shuffled finish-up code to end of module.
+	  (chill_finish_module_code): Use global_bindings_p to determine
 	  'nested' parameter for finish_chill_function.  Use new
-          module_has_actions flag to trigger generation of module_init list
+	  module_has_actions flag to trigger generation of module_init list
 	  entry.  We now can handle not only multiple modules per file,
 	  but modules nested inside functions (I think).
 	* ch-lang.c (build_chill_pointer_type): Restore missing assignment.
@@ -8697,7 +8703,7 @@ Sun Aug  8 08:59:23 1993  Bill Cox  (bill@rtl.cygnus.com)
 	  (modulion, spec_module): Save possibly-generated module name
 	  returned by push_module.
 	* ch-satisfy.c (satisfy): Put switch cases into alpha order, add
-          case for POINTER_TYPE.
+	  case for POINTER_TYPE.
 	* ch-tasking.c: Replace build_pointer_type calls with
 	  build_chill_pointer_type calls.
 	* ch-tree.h: Fix, add prototypes.
@@ -8746,7 +8752,7 @@ Sat Aug  7 09:28:17 1993  Bill Cox  (bill@rtl.cygnus.com)
 	  (decl_temp, decl_temp1): Delete unused code.
 	  (init_decl_processing): Call build_instance_type and
 	  build_tasking_type in both passes.
-	  Generally change current_scope comparisons against 
+	  Generally change current_scope comparisons against
 	  global_scope to global_biidings_p calls.
 	* ch-except.c (push_handler): Add space before parameter paren.
 	* ch-grant.c (chill_start_module, chill_finish_module,
@@ -9003,11 +9009,11 @@ Thu Jul 22 18:56:16 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* c-decl.c (pushdecllist): Standardize loop for readability.
 	* ch-decl.c (decl_temp): Call pushdecllist to store decl
-          into hash table, move after current_scope declaration.
+	  into hash table, move after current_scope declaration.
 	  (decl_temp1): Move also.
 	* ch-lex.l (getlc): New function.  Force char to lower case.
 	  (check_newline): Call it, so comparisons work on uppercase
-          keywords.
+	  keywords.
 
 Wed Jul 21 22:17:22 1993  Bill Cox  (bill@rtl.cygnus.com)
 
@@ -9018,7 +9024,7 @@ Wed Jul 21 22:17:22 1993  Bill Cox  (bill@rtl.cygnus.com)
 	* ch-loop.c (build_temporary_variable, begin_for_range):
 	  Replace start_decl, finish_decl pairs with decl_temp1 calls.
 	* ch-parse.y (parnamelist): Eliminate warning by eliminating
-          the %type for now.
+	  the %type for now.
 	* ch-actions.c, ch-tasking.c: Replace do_decls calls with
 	  decl_temp1 calls.
 	* ch-tree.h: New prototypes.
@@ -9032,7 +9038,7 @@ Wed Jul 21 21:06:18 1993  Bill Cox  (bill@rtl.cygnus.com)
 	* ch-lex.l (RETURN_TOKEN): Don't use the 'do { .. return } while 0'
 	  in the macro - Sun's compiler throws warnings.  Thanks, Brendan.
 	* ch-satisfy.c (satisfy): Add forward declaration.
-          (SATISFY): Add outer parens for greater safety.
+	  (SATISFY): Add outer parens for greater safety.
 
 Wed Jul 21 12:59:20 1993  Per Bothner  (bothner@kalessin.cygnus.com)
 
@@ -9083,10 +9089,10 @@ Wed Jul 21 14:23:25 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-actions.c (lang_decode_option): Add option -Lpath
 	  to specify seize file path.
-          (ch_singleton_set): Readability formatting.
+	  (ch_singleton_set): Readability formatting.
 	  Add comment, move functions to easier found places.
 	* ch-lex.l (setup_seizefile_read): Check for *no* slashes.
-          (register_seize_path): Use memcpy so pathlen has an effect.
+	  (register_seize_path): Use memcpy so pathlen has an effect.
 	* gcc.c (default_compilers): Add -L option to chill
 	  compiler SPECs.
 
@@ -9103,13 +9109,13 @@ Wed Jul 21 12:16:51 1993  Bill Cox  (bill@rtl.cygnus.com)
 Wed Jul 21 09:29:24 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-grant.c: #undef strchr and strrchr names in extern
-          declarations, to prevent RS6000 compiler from reporting
-          their misuse as macros.
+	  declarations, to prevent RS6000 compiler from reporting
+	  their misuse as macros.
 	* ch-lex.l (setup_seizefile_read): Refer to list of  paths
 	  for seizefiles specified by -L options on command line.
-          (register_seize_path): Add a new path to the seize file list.
+	  (register_seize_path): Add a new path to the seize file list.
 	* toplev.c (strip_off_ending): Recognize chill suffix.
-          (main): Recognize -L option, specifying a seize file path.
+	  (main): Recognize -L option, specifying a seize file path.
 
 Tue Jul 20 12:41:52 1993  Bill Cox  (bill@rtl.cygnus.com)
 
@@ -9126,14 +9132,14 @@ Tue Jul 20 11:01:30 1993  Bill Cox  (bill@rtl.cygnus.com)
 	* ch-lex.l (convert_float): Give variable `d' correct
 	  type so build_real call is correct.  Should remove
 	  vxworks portability problem.
-          (convert_float): Re-indent to standards.
+	  (convert_float): Re-indent to standards.
 
 Mon Jul 19 17:32:10 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-actions.c (build_char_array_expr): Add field decls to
 	  constructor.  Now, it generates the library call.
 	* ch-expr.c (chill_expand_array_assignment): Make sure that all
-          error messages say 'mode' not 'type'.
+	  error messages say 'mode' not 'type'.
 
 Mon Jul 19 14:44:46 1993  Bill Cox  (bill@rtl.cygnus.com)
 
@@ -9173,11 +9179,11 @@ Thu Jul 15 13:25:33 1993  Bill Cox  (bill@rtl.cygnus.com)
 	  varying array to be assigned to a smaller, with a runtime
 	  test (to be provided).
 	* ch-parse.y (locdec): Comment out bogus error msg.
-          (elementlist): Replace several lines with chainon call.
+	  (elementlist): Replace several lines with chainon call.
 	* ch-tree.h (SCALAR_P): New macro.  New prototype for
 	  build_array_type_for_scalar.
 	* ch-typeck.c (build_chill_cast): Re-indent.
-          (chill_expand_tuple): Comment out strange addition of 
+	  (chill_expand_tuple): Comment out strange addition of
 	  varying string's length to front of constructor list.
 
 Thu Jul 15 05:58:46 1993  Bill Cox  (bill@rtl.cygnus.com)
@@ -9193,12 +9199,12 @@ Mon Jul 12 16:07:53 1993  Bill Cox  (bill@rtl.cygnus.com)
 	* c-typeck.c (build_function_call): Bypass default
 	  parameter promotions, format param syntax check for
 	  CHILL; they've already been converted in
-          build_chill_function_call.
+	  build_chill_function_call.
 	* ch-actions.c (chill_expand-return): Correct tests
 	  for function which returns no value.
 	* ch-convert.c (base_type_size_in_bytes): Check for
 	  NULL type parameter, just return.
-          (convert): Allow conversion of CHAR to varying array
+	  (convert): Allow conversion of CHAR to varying array
 	  of CHAR.
 	  Change error msg to "conversion" from "assignment".
 	  Remove default from case, which short-circuited before
@@ -9212,12 +9218,12 @@ Sun Jul 11 11:27:08 1993  Bill Cox  (bill@cygnus.com)
 
 	* ch-actions.c (chill_expand_result, chill_expand_return):
 	  Move here from ch-typeck.c.  Add a temporary to remember the
-	  result value in.  Change return handler to fetch that 
+	  result value in.  Change return handler to fetch that
 	  temporary value, if there is one.
 	* ch-parse.y (pdef): Call chill_expand_return to fetch
 	  the temp's value.
 	* ch-tree.h, ch-typeck.c: Move return, result functions to
-          ch-actions.c.  And their prototypes.
+	  ch-actions.c.  And their prototypes.
 
 Fri Jul  9 15:47:51 1993  Bill Cox  (bill@rtl.cygnus.com)
 
@@ -9229,10 +9235,10 @@ Fri Jul  9 15:47:51 1993  Bill Cox  (bill@rtl.cygnus.com)
 Fri Jul  9 09:41:05 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-grant.c (decode_decl): Grant BUFFER, INSTANCE variables.
-          (print_integer): Delete old non-working INSTANCE code.
+	  (print_integer): Delete old non-working INSTANCE code.
 	* ch-lex.l (name_type_signal): Recognize BUFFER name, too.
 	* ch-parse.y (rccase_label): Move all actions inside if.
-          Use BUFFERNAME to recognize receice case buffer clause,
+	  Use BUFFERNAME to recognize receice case buffer clause,
 	  eliminate one shift-reduce conflict.
 	* ch-tasking.c (build_buffer_descriptor): Check for
 	  CH_DECL_BUFFER flag, remove unused code.
@@ -9246,14 +9252,14 @@ Thu Jul  8 11:17:32 1993  Bill Cox  (bill@rtl.cygnus.com)
 	  isn't hidden.
 	* ch-lex.l: Clean up prototypes for readability.
 	* ch-parse.y (sendaction): Add send buffer action.
-          (locdec): Add rule for buffer declaration.
+	  (locdec): Add rule for buffer declaration.
 	* ch-tasking.c (generate_tasking_code): standardize indentation.
-          (make_signal_struct): Readability changes.
-          (build_chill_send_buffer, build_buffer_decl, 
-           build_buffer_descriptor): New functions.
+	  (make_signal_struct): Readability changes.
+	  (build_chill_send_buffer, build_buffer_decl,
+	   build_buffer_descriptor): New functions.
 	* ch-tree.h (IDENTIFIER_BUFFER_SIZE): Add place to save
 	  buffer's maximum queue length in buffer decl.
-          (CH_DECL_BUFFER): Add flag in decl.  Clean up for
+	  (CH_DECL_BUFFER): Add flag in decl.  Clean up for
 	  readability.  Add prototypes.
 	* ch-typeck.c (build_chill_cast): Call convert rather
 	  than storing directly into TREE_TYPE field.
@@ -9270,7 +9276,7 @@ Mon Jul  5 10:02:27 1993  Wilfried Moser  (fs_moser at rcsw1j)
 
 	* ch-lex.l: Add compiler directive SUPPORT_CAUSING_ADDRESS.
 	* ch-except.c (initialize_exceptions): Change the layout of the
-	  structure __ch_handler. The entry __jbuf is moved to the end 
+	  structure __ch_handler. The entry __jbuf is moved to the end
 	  of the structure and its size was changed to _JBLEN+10.
 	* ch-decl.c (push_chill_extern_process): Add processing of
 	  processes with no arguments.
@@ -9279,12 +9285,12 @@ Mon Jul  5 10:02:27 1993  Wilfried Moser  (fs_moser at rcsw1j)
 	* ch-tasking.c (build_process_header, build_chill_start_process):
 	  Add processing of processes with no arguments.
 	  (make_process_struct): Add processing of IN attribute for
-          process arguments.
+	  process arguments.
 	  (tasking_setup): Add NUL-character to name of a tasking
-          element. The name must be NUL terminated.
+	  element. The name must be NUL terminated.
 	  (build_chill_send_signal): Default SEND_SIGNAL_PRIORITY
-          to 0 with a warning if -Wall specified on command-line.
-	
+	  to 0 with a warning if -Wall specified on command-line.
+
 Fri Jul  2 16:01:57 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-parse.y: Change 'empty' comments to new non-terminal
@@ -9293,15 +9299,15 @@ Fri Jul  2 16:01:57 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 Fri Jul  2 12:43:25 1993  Bill Cox  (bill@rtl.cygnus.com)
 
-	* ch-parse.y (action): Catch and report actions which 
-          shouldn't have exception clauses, but do.  Unfortunately,
-	  catching more than one of these per compilation will 
-          have to await the general addition of syntax error
-          recovery to the parser.
+	* ch-parse.y (action): Catch and report actions which
+	  shouldn't have exception clauses, but do.  Unfortunately,
+	  catching more than one of these per compilation will
+	  have to await the general addition of syntax error
+	  recovery to the parser.
 
 Fri Jul  2 10:45:35 1993  Bill Cox  (bill@rtl.cygnus.com)
 
-	* ch-parse.y (locdec): Issue error for initialization 
+	* ch-parse.y (locdec): Issue error for initialization
 	  of bitstring with tuple, not for powerset init with
 	  tuple.
 
@@ -9328,10 +9334,10 @@ Wed Jun 30 14:02:23 1993  Bill Cox  (bill@rtl.cygnus.com)
 	* ch-grant.c (print_an_int): New function to print a
 	  decimal integer string or the CONST_DECL (SYN) which
 	  best matches it.
-          (print_integer): Call the above function.  Replace
+	  (print_integer): Call the above function.  Replace
 	  calls to SAME_TYPE macro with TYPE_MAIN_VARIANT
 	  comparisons, as suggested by Jim Wilson.
-          (decode_decl): Set current_grant_modename sooner,
+	  (decode_decl): Set current_grant_modename sooner,
 	  be sure to clear it when done.
 
 Wed Jun 30 10:10:57 1993  Bill Cox  (bill@rtl.cygnus.com)
@@ -9339,7 +9345,7 @@ Wed Jun 30 10:10:57 1993  Bill Cox  (bill@rtl.cygnus.com)
 	* ch-actions.c (build_max_min): Change interface to accept
 	  just a max/min flag.  Get min/max values from an
 	  enumeral constructor.
-          (build_chill_max, build_chill_min): Change calls to
+	  (build_chill_max, build_chill_min): Change calls to
 	  build_max_min.
 	* ch-lang.c (deep_const_expr): Check for NULL_TREE
 	  arguments, don't seg fault.
@@ -9361,34 +9367,34 @@ Tue Jun 29 13:13:46 1993  Bill Cox  (bill@rtl.cygnus.com)
 	  optional ELSE clause, error for multiple case-selector
 	  expressions, error for missing ELSE clause.
 	* ch-expr.c (chill_expand_assignment): Error if multiple
-	  location assignment and locations not novelty 
+	  location assignment and locations not novelty
 	  equivalent.
 	* ch-parse.y (caseaction): Add range_list_clause non-
-          terminal, sorry message for it.
-          (assignaction): error if operator used on multiple
+	  terminal, sorry message for it.
+	  (assignaction): error if operator used on multiple
 	  assignment.
-	  (case_expr): Pass optional ELSE tree to 
+	  (case_expr): Pass optional ELSE tree to
 	  build_chill_case_expr for checking.
 	* ch-tree.h (build_chill_case_expr): Change proto.
 
 Fri Jun 25 17:22:41 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-actions.c (chill_comptypes, build_chill_binary_op):
-          Allow PROC mode variables.
+	  Allow PROC mode variables.
 	* ch-convert.c (convert): Turn a NULL literal into a zero
 	  valued pointer-to-function, given such a type.  Also
 	  build the ADDR_EXPR of a function variable.
 	* ch-grant.c: Pervasive -Wall -pedantic cleanup.
-          (print_enumeral, print_integer, print_struct) Moved these
+	  (print_enumeral, print_integer, print_struct) Moved these
 	  large functions out of the switch in raw_decode_mode for
 	  readability, and to encourage future code-sharing.
-          (print_proc_tail, print_proc_exceptions): Moved these out
+	  (print_proc_tail, print_proc_exceptions): Moved these out
 	  of decode_decl, to share them.  They're used also to
 	  output PROC modes.
 	* ch-parse.y (mode2): Enable PROC modes.
 	  (procmode): Represent PROC mode as a ptr-to-function type.
-          (call): Recognize ptr-to-function as indirect call.
-          Cleanup 'primval LPRN untyped_exprlist RPRN' action code.
+	  (call): Recognize ptr-to-function as indirect call.
+	  Cleanup 'primval LPRN untyped_exprlist RPRN' action code.
 
 Thu Jun 24 15:59:20 1993  Bill Cox  (bill@rtl.cygnus.com)
 
@@ -9401,11 +9407,11 @@ Thu Jun 24 13:52:10 1993  Bill Cox  (bill@rtl.cygnus.com)
 	  Explicitly convert a varying array's length field to an
 	  integer_type_node, now that it's only a chill_integer_
 	  type_node.
-	* ch-expr.c (chill_expand_expr, 
-                     expand_assignment_to_varying_array, 
-                     chill_expand_array_assignment,
-                     expand_varying_length_assignment): Explicitly 
-          convert a varying array's length field to an integer_type_node,
+	* ch-expr.c (chill_expand_expr,
+		     expand_assignment_to_varying_array,
+		     chill_expand_array_assignment,
+		     expand_varying_length_assignment): Explicitly
+	  convert a varying array's length field to an integer_type_node,
 	  now that it's only a chill_integer_type_node.
 	* ch-loop.c (init_loop_counter, top_of_loop_test): Change
 	  to handle varying array location iterations.
@@ -9413,16 +9419,16 @@ Thu Jun 24 13:52:10 1993  Bill Cox  (bill@rtl.cygnus.com)
 	  as opposed to '*' members.  Issue error if there were none.
 	  (setelement): Count named set members.  Generate a unique
 	  identifier for the '*' element.
-	* ch-typeck.c (validate_varying_array_ref):  Explicitly 
-          convert a varying array's length field to an integer_type_node,
+	* ch-typeck.c (validate_varying_array_ref):  Explicitly
+	  convert a varying array's length field to an integer_type_node,
 	  now that it's only a chill_integer_type_node.
 
 Wed Jun 23 19:18:28 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-lang.c (finish_chill_enum): Change test for too-
-          large enumerations.
+	  large enumerations.
 	* ch-parse.y (setelement, optsetvalue): Allow numbered,
-          unnamed set elements.
+	  unnamed set elements.
 
 Wed Jun 23 16:25:06 1993  Bill Cox  (bill@rtl.cygnus.com)
 
@@ -9431,7 +9437,7 @@ Wed Jun 23 16:25:06 1993  Bill Cox  (bill@rtl.cygnus.com)
 	  array is VARYING, as signaled by C_TYPE_VARIABLE_SIZE.
 	* ch-actions.c (lang_init): Set flag_short_enums, so that CHILL
 	  enumerations *can* be only a byte in size.
-          (adjust_parm_or_field): Convert untyped parameter before
+	  (adjust_parm_or_field): Convert untyped parameter before
 	  looking at its type to process it.
 	* ch-convert.c (convert): Generate [ -1, -1 ] value for
 	  an INSTANCE type.
@@ -9443,24 +9449,24 @@ Wed Jun 23 16:25:06 1993  Bill Cox  (bill@rtl.cygnus.com)
 	  enumeration values exceeds 256.
 	* ch-parse.y (check_end_label): Error, not warning if start
 	  and end labels don't match.
-          (assignaction): Convert RHS.  Allows untyped tuples to be
+	  (assignaction): Convert RHS.  Allows untyped tuples to be
 	  passed to stabilize_reference.
-          (exceptlist, onexceptprefix): Error if non-unique exception
+	  (exceptlist, onexceptprefix): Error if non-unique exception
 	  name is coded.
 	* ch-tree.c: Added form feeds, comment reformatted.
 	* ch-typeck.c (chill_expand_tuple): Compare tree value to
 	  NULL_TREE, not zero.  Add a constructor element for a
 	  VARYING array's length to the constructor list.
-          (build_varying_struct): Mark the type as VARYING for
+	  (build_varying_struct): Mark the type as VARYING for
 	  process_init_constructor.
 	* toplev.c (lang_options): Add '-lang-chill' and
-          '-fchill-grant-only' options to table.
+	  '-fchill-grant-only' options to table.
 
 Tue Jun 22 13:13:41 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-actions.c (build_chill_function_call): Add check
 	  to prevent calling a PROCESS like a PROCEDURE.
-	* ch-parse.y (rcalternative): Add check for an 
+	* ch-parse.y (rcalternative): Add check for an
 	  receive case alternative after a RECEIVE CASE
 	  statement.
 	* ch-tree.h: Fix macro ENCAPSULATED_ARRAY_P.
@@ -9473,24 +9479,24 @@ Mon Jun 21 17:56:48 1993  Bill Cox  (bill@rtl.cygnus.com)
 	* ch-actions.c (lang_init): Add else_clause flag to
 	  __wait_signal parameter list.
 	* ch-lex.l: Add SIGNALNAME token, return when appropriate.
-	* ch-parse.y (SIGNALNAME): New token.  Delete 
-	  empty_untyped_exprlist token, no longer used.  Add 
+	* ch-parse.y (SIGNALNAME): New token.  Delete
+	  empty_untyped_exprlist token, no longer used.  Add
 	  name_or_signal non-terminal.  Standardize a few NULL
 	  tests.  Add real RECEIVE CASE semantics.  Add checks that
 	  SIGNALS, BUFFERs are only declared at global scope.
 	  (call): Add signal declarations with/without data fields.
 	* ch-tasking.c (get_tasking_code_name, get_tasking_code,
-          build_chill_receive_case_start, build_chill_receive_case_end,
-          build_chill_receive_case_label): New functions.
-	  Replace build (CONSTRUCTOR, ... calls with build_nt 
-          (CONSTRUCTOR, calls.
+	  build_chill_receive_case_start, build_chill_receive_case_end,
+	  build_chill_receive_case_label): New functions.
+	  Replace build (CONSTRUCTOR, ... calls with build_nt
+	  (CONSTRUCTOR, calls.
 	* ch-tree.h: New prototypes.
 
 Thu Jun 17 18:36:38 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	SIGNAL declaration compilation, seizing & granting,
-          SENDing also.
-	* ch-actions.c (lang_init): Move instance_type_node 
+	  SENDing also.
+	* ch-actions.c (lang_init): Move instance_type_node
 	  build to ch-tasking.c.  Call build_tasking_message_type.
 	  Build a type for send_signal.  Put builtin_function
 	  calls into alpha order.
@@ -9505,18 +9511,18 @@ Thu Jun 17 18:36:38 1993  Bill Cox  (bill@rtl.cygnus.com)
 	* ch-loop.c (get_unique_identifier): Standardize loop
 	  temporary's name to assure that it's not granted.
 	* ch-parse.y (SIG_NAME): Delete unused token.
-          (spec_declist): Delete silly printf.
+	  (spec_declist): Delete silly printf.
 	  (quasi_signaldef): Add non-terminal.
 	  (sendaction, optsendwith, optsendto, optpriority):
-          Implement actual working semantics.
-          (call, empty_untyped_exprlist): Allow empty signal 
-          fields between parens.
+	  Implement actual working semantics.
+	  (call, empty_untyped_exprlist): Allow empty signal
+	  fields between parens.
 	* ch-tasking.c: Rename adjust_proc_param calls, add
 	  is_signal flag to calls.  Make instance_type_node a
-          type, not a TYPE_DECL, change references.  Fix all
+	  type, not a TYPE_DECL, change references.  Fix all
 	  CONSTRUCTOR builds.  Add make_signal_struct function.
-          Move build_instance_type here from lang_init.
-          (build_tasking_message-type, build_signal_descriptor,
+	  Move build_instance_type here from lang_init.
+	  (build_tasking_message-type, build_signal_descriptor,
 	  build_chill_send_signal): New functions.
 	* ch-tree.h: Add, update protos.
 	* ch-typeck.c (build_chill_cast): Check for NULL expression
@@ -9532,7 +9538,7 @@ Wed Jun 16 07:12:53 1993  Bill Cox  (bill@rtl.cygnus.com)
 	  to ch-tasking.c.
 	* ch-decl.c (push_chill_extern_function): Drop is_process
 	  parameter, and marking process decl trees.
-          (push_chill_extern_process): New function for
+	  (push_chill_extern_process): New function for
 	  SEIZEd processes.  Lotsa form feeds added for print
 	  readability.
 	* ch-grant.c (decode_decl): Handle GRANTing of SIGNAls.
@@ -9562,25 +9568,25 @@ Mon Jun 14 18:17:13 1993  Bill Cox  (bill@rtl.cygnus.com)
 	* ch-lex.l (equal_number): Also accept synonym
 	  name for numeric value.
 	* ch-parse.y (primval): Add process-related
-	  function calls.  
-          (signaldef, etc.): Rough draft of SIGNAL definition
-          processing. 
-          (stopaction): Call runtime function.
-          (pdef): Pop symbol level if ending a process
-          and there were parameters.
-          (primval): Call `whoami' runtime function for THIS.
+	  function calls.
+	  (signaldef, etc.): Rough draft of SIGNAL definition
+	  processing.
+	  (stopaction): Call runtime function.
+	  (pdef): Pop symbol level if ending a process
+	  and there were parameters.
+	  (primval): Call `whoami' runtime function for THIS.
 	* ch-tasking.c (build_process_header): Be sure
-          to define the tasking enum, if it hasn't already
+	  to define the tasking enum, if it hasn't already
 	  been done.  Only call shadow_record_fields if there
-	  are parameters.  
-          (build_tasking_enum): Only call start_enum *after*
-          checking the already_built flag.
-          (build_copy_number, get_tasking_code,
+	  are parameters.
+	  (build_tasking_enum): Only call start_enum *after*
+	  checking the already_built flag.
+	  (build_copy_number, get_tasking_code,
 	  build_gen_code, build_gen_inst, build_get_ptype,
 	  build_proc_type): New functions for process-related
 	  builtins.
-          (build_signal_decl): New function for SIGNAL
-          declaration - rough draft.
+	  (build_signal_decl): New function for SIGNAL
+	  declaration - rough draft.
 	* ch-tree.def (INSTANCE_TYPE): new tree code.
 	* ch-tree.h: New prototypes.  Defines for instance
 	  type field access.
@@ -9591,53 +9597,53 @@ Sat Jun 12 21:15:02 1993  Bill Cox  (bill@rtl.cygnus.com)
 	* ch-actions.c (adjust_proc_param): new function,
 	  extracted from build_chill_function_call and called
 	  from there.
-	* ch-tree.h, ch-grant.c (do_seize): Add process_type 
+	* ch-tree.h, ch-grant.c (do_seize): Add process_type
 	  parameter to add_taskstuff_to_list call, prototype.
 	* ch-parse.y (start_parlist): New non-terminal for
 	  START action.
-          (startaction): Reference start_parlist, check for
+	  (startaction): Reference start_parlist, check for
 	  integer-valued process copy-number.
-          (optstartset): Check instance parameter - must be
+	  (optstartset): Check instance parameter - must be
 	  an INSTANCE_TYPE location.
 	* ch-tasking.c (generate_tasking_code_variable): New
-	  function, extracted from tasking_setup and called 
-          from there.  Also called from build_process_header.
+	  function, extracted from tasking_setup and called
+	  from there.  Also called from build_process_header.
 	  (build_process_header): Add process_type parameter
 	  to add_taskstuff_to_list call.  Remove incrementing
 	  of process_type (moved into generate_tasking_code
 	  _variable).
-          (build_chill_start_process): Complete rewrite.
+	  (build_chill_start_process): Complete rewrite.
 	  (add_tasking_stuff_to_list): Add stuffnumber parameter
-	  putit on the list.          
+	  putit on the list.
 
 Sat Jun 12 06:08:09 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	Getting processes compiled, initialized and granted:
 	* .cvsignore: Add chill file.
 	* c-decl.c (shadow_record_fields): Allow PARM_DECL
-          as well as VAR_DECL.
+	  as well as VAR_DECL.
 	* ch-actions.c (lang_init): Move build of
 	  initializer_type into ch-tasking.c.  Change
 	  definition of THIS to function call.
 	* ch-decl.c (massage_param_node): Add comments.
 	  (start_chill_function): Set nested flag in
-          start_function call based upon current_function_decl,
+	  start_function call based upon current_function_decl,
 	  not as constant zero.
 	* ch-grant.c (decode_decl): lotsa code by Wilfried to
-	  GRANT process decls.  
-          (finish_chill_module): Completely rewrote interface
-          to runtime.
+	  GRANT process decls.
+	  (finish_chill_module): Completely rewrote interface
+	  to runtime.
 	* ch-lex.l (THIS): Just return the token code.
 	* ch-parse: Add THIS token.
 	  (processpar, processparlist): New rules, to collect
-          process parameters. 
-          (pdef): Add code to pop the process' WITH scope.
-          (procedure): Set process WITH scope flag to zero.
-          (process): Move most code into build_process_header.
-          (primval): Output function call for THIS.
+	  process parameters.
+	  (pdef): Add code to pop the process' WITH scope.
+	  (procedure): Set process WITH scope flag to zero.
+	  (process): Move most code into build_process_header.
+	  (primval): Output function call for THIS.
 	* ch-tasking.c (add_taskstuff_to_list, build_tasking_enum,
-          make_process_struct, build_process_header): New code 
-          to handle process translation and interface to runtime.
+	  make_process_struct, build_process_header): New code
+	  to handle process translation and interface to runtime.
 	* ch-tree.h: New prototypes.
 
 Thu Jun 10 13:32:51 1993  Bill Cox  (bill@rtl.cygnus.com)
@@ -9683,7 +9689,7 @@ Wed Jun  9 09:03:55 1993  Bill Cox  (bill@rtl.cygnus.com)
 	* ch-grant.c (chill_start_module_code): Rename actual
 	  module-level code to just the modulename, which is
 	  *not* public.
-          (chill_finish_module_code): Allocate space for initializer
+	  (chill_finish_module_code): Allocate space for initializer
 	  list entry, build real initializer function, which puts
 	  the list entry on the runtime list.  Name the init function
 	  as the module's constructor function.
@@ -9696,10 +9702,10 @@ Thu Jun  3 17:04:01 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* c-decl.c: Fix comment.
 	* ch-actions.c, ch-grant.c: Standardize front end:
-          #define first, etc.  Add comments.
+	  #define first, etc.  Add comments.
 	  (lang_init): Delete unused flag, code for inapplicable
-          gen-decls option.  (lang_decode_option): Delete
-          gen-decls option, add grant-only option, flag.
+	  gen-decls option.  (lang_decode_option): Delete
+	  gen-decls option, add grant-only option, flag.
 	* ch-convert.c, ch-decl.c, ch-except.c, ch-tree.c,
 	  ch-typeck.c: Add form feed after front end.
 	* ch-expr.c: Standardize testing for error_mark node.
@@ -9735,11 +9741,11 @@ Wed May 19 16:45:54 1993  Bill Cox  (bill@rtl.cygnus.com)
 	  better name to unsigned flag.
 	* ch-expr.c (chill_expand_assignment): Correct calling
 	  sequence for setpowersetbits runtime routine.
-	* ch-grant.c (raw_decode_mode): Give better name to 
-          unsigned flag.  (decode_constant): Check for null
-          'val' ptr, avoid seg fault.
-	* ch-lex.l (convert_number):  Give better name to 
-          unsigned flag. (convert_bitstring): Move increment
+	* ch-grant.c (raw_decode_mode): Give better name to
+	  unsigned flag.  (decode_constant): Check for null
+	  'val' ptr, avoid seg fault.
+	* ch-lex.l (convert_number):  Give better name to
+	  unsigned flag. (convert_bitstring): Move increment
 	  of bl counter to emphasize that it increments once
 	  per loop.
 	* ch-tree.h: (NO_SOURCE_UNARY_MINUS): Define new flag.
@@ -9753,8 +9759,8 @@ Thu May 13 17:03:04 1993  Bill Cox  (bill@rtl.cygnus.com)
 	  TREE_UNSIGNED flag FALSE for raw_decode_mode.
 	* ch-grant.c (grant_array_type): Correct the May 12
 	  check for circularity.
-          (raw_decode_mode): Use TREE_UNSIGNED flag to
-          control range's printing.
+	  (raw_decode_mode): Use TREE_UNSIGNED flag to
+	  control range's printing.
 	  (chill_grant): Remove useless, bogus code.
 	* ch-lex.l (convert_number): Set the TREE_UNSIGNED
 	  flag TRUE for raw_decode_mode.
@@ -9764,7 +9770,7 @@ Wed May 12 18:04:01 1993  Bill Cox  (bill@rtl.cygnus.com)
 	* ch-decl.c (push_syndecls, push_modedef): Comment
 	  reminders to check for circular definitions.  Later!
 	* ch-grant.c (grant_array_type, decode_decl): Prevent
-	  circular definitions in the use of the array's 
+	  circular definitions in the use of the array's
 	  type name.
 
 Wed May 12 16:06:13 1993  Bill Cox  (bill@rtl.cygnus.com)
@@ -9777,11 +9783,11 @@ Wed May 12 16:06:13 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 Wed May 12 07:49:00 1993  Bill Cox  (bill@rtl.cygnus.com)
 
-	* ch-actions.c (fold_set_*): Correct tests for 
+	* ch-actions.c (fold_set_*): Correct tests for
 	  range set-constructor list entries.
 	  (lang_init): Define setpowersetbits function.
 	* expr.c (store_constructor): Handle non-constant
-          set constructors.
+	  set constructors.
 
 Tue May 11 18:25:40 1993  Per Bothner  (bothner@cygnus.com)
 
@@ -9803,12 +9809,12 @@ Tue May 11 15:24:31 1993  Bill Cox  (bill@rtl.cygnus.com)
 Mon May 10 18:45:18 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-actions.c (invalid{left right}_operand): Add
-          handlers for REPLICATE_EXPR.
+	  handlers for REPLICATE_EXPR.
 	  (build_chill_repetition_op): Build constructor list
 	  for repetition of bitstring.
 	* ch-parse.y (call): Recognize more trees as arrays,
 	  to avoid error msg.
-          (operand5): Add count, string temporaries, use them.
+	  (operand5): Add count, string temporaries, use them.
 
 Mon May 10 16:49:08 1993  Per Bothner  (bothner@cygnus.com)
 
@@ -9822,10 +9828,10 @@ Mon May 10 10:54:57 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-grant.c (do_seize, seize_implied_types): Move
 	  result and parameter processing to proper place.
-          (chill_seize): Mark unseized identifier with
-          error_mark_node, to avoid excessive errors.
-	* ch-parse.y (call): Check for ERROR_MARK before 
-          reporting an error.
+	  (chill_seize): Mark unseized identifier with
+	  error_mark_node, to avoid excessive errors.
+	* ch-parse.y (call): Check for ERROR_MARK before
+	  reporting an error.
 
 Sun May  9 17:21:24 1993  Bill Cox  (bill@rtl.cygnus.com)
 
@@ -9851,20 +9857,20 @@ Sun May  9 17:11:33 1993  Per Bothner  (bothner@cygnus.com)
 Fri May  7 10:30:34 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-actions.c (lang_init): Add definition of psslice
-          runtime routine. (build_chill_binary_op_1,
-          build_chill_binary_op): Have result type of
-          TRUTH_ANDIF_EXPR be boolean, not integer.  Some
+	  runtime routine. (build_chill_binary_op_1,
+	  build_chill_binary_op): Have result type of
+	  TRUTH_ANDIF_EXPR be boolean, not integer.  Some
 	  reindenting.
 	* ch-convert.c (convert): Use consistent notation
 	  for expression.
 	* ch-parse.y: Add front-end pass count. (locdec):
-          Add syntax for other BASED declaration.
+	  Add syntax for other BASED declaration.
 	* ch-tree.c: Fix comment.
 	* ch-typeck.c (build_chill_slice): Implement a runtime
 	  call for bitstring slices. (build_chill_cast):
-          Add code for BITS_BIG_ENDIAN bit loop.
+	  Add code for BITS_BIG_ENDIAN bit loop.
 	  (chill_expand_tuple): Don't pass ref type to
-          digest_init, only underlying type.
+	  digest_init, only underlying type.
 
 Thu May  6 12:52:14 1993  Per Bothner  (bothner@cygnus.com)
 
@@ -9874,16 +9880,16 @@ Thu May  6 12:52:14 1993  Per Bothner  (bothner@cygnus.com)
 Wed May  5 19:02:55 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-actions.c: Break out separate routines for set
-          folding, handle ranges in set_fold_eq and set_fold_ne.
-          Fix folding as req'd by TTC test.
+	  folding, handle ranges in set_fold_eq and set_fold_ne.
+	  Fix folding as req'd by TTC test.
 	* ch-grant.c (raw_decode_more): Check for content match
 	  to decide output mode, not pointer identity.
 	* ch-typeck.c: Add cross-reference comment.
 	* varasm.c (emit_set_data): Clarify parameter name.
 	  Handle INTEGER_CST as set constructor.
-          (output_constant): Handle CONSTRUCTOR node for sets.
+	  (output_constant): Handle CONSTRUCTOR node for sets.
 	  Apparently forgot to actually 'checkin' this one last
-          time.
+	  time.
 
 Wed May  5 12:23:58 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
 
@@ -9892,26 +9898,26 @@ Wed May  5 12:23:58 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
 Tue May  4 15:47:44 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-actions.c (fold_set_expr): new function to fold
-          set expressions.  Calls inserted into 
+	  set expressions.  Calls inserted into
 	  build_chill_binary_op and build_chill_unary_op.
-          (build_chill_repetition_op): New function, called
+	  (build_chill_repetition_op): New function, called
 	  from build_chill_function_call.
-	* ch-expr.c (chill_expand_assignment): Call 
+	* ch-expr.c (chill_expand_assignment): Call
 	  build_chill_repetition_op.
 	* ch-grant.c (decode_constant): Comment out deep_fold
 	  call.  The earlier fold_set_expr calls should make
 	  this one unnecessary.  Prevent seg fault when name
 	  of structure field is NULL.  Standardize for loop.
 	* ch-parse.y: Fix comments.
-          (operand5): build a REPLICATE_EXPR.  Don't call
+	  (operand5): build a REPLICATE_EXPR.  Don't call
 	  build_repetition_op until we have a type.
 	* ch-tree.def (REPLICATE_EXPR): Define tree-code.
 	* ch-tree.h (build_chill_repetiton_op): Fix proto.
-	* ch-typeck.c (chill_expand_result): Call 
+	* ch-typeck.c (chill_expand_result): Call
 	  build_chill_repetition_op if needed.
 	* varasm.c (emit_set_data): Clarify parameter name.
 	  Handle INTEGER_CST as set constructor.
-          (output_constant): Handle CONSTRUCTOR node for sets.
+	  (output_constant): Handle CONSTRUCTOR node for sets.
 
 Mon May  3 13:06:47 1993  Per Bothner  (bothner@cygnus.com)
 
@@ -9924,7 +9930,7 @@ Mon May  3 13:06:47 1993  Per Bothner  (bothner@cygnus.com)
 Mon May  3 08:22:45 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-grant.c (decode_constant): Revert interpretation
-          of SET_TYPE as integer.
+	  of SET_TYPE as integer.
 
 Mon May  3 07:55:46 1993  Bill Cox  (bill@rtl.cygnus.com)
 
@@ -9941,28 +9947,28 @@ Sat May  1 14:55:58 1993  Bill Cox  (bill@rtl.cygnus.com)
 	  Redefine __inpowerset to take a 'minval' parameter
 	  that matches the new runtime.  Added comments.
 	* ch-expr.c (chill_handle_case_label): Handle
-          NULL or ERROR trees.
+	  NULL or ERROR trees.
 	* ch-grant.c (get_type): Survive bogus type params,
 	  return empty string.
 	* ch-tree.c (build_powerset_type): Diagnose powerset
-          of non-discrete type.
+	  of non-discrete type.
 	* ch-typeck.c (discrete_type_p): Reindent.
 
 Fri Apr 30 16:08:54 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-grant.c (decode_constant): Interpret SET_TYPE
-          with integer value, so we output the same stuff as
-          the user gave us.
+	  with integer value, so we output the same stuff as
+	  the user gave us.
 	* ch-parse.y: Fix indentation.
 
 Fri Apr 30 09:34:03 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-actions.c (chill_comptypes): Simplify, correct
-          integer subrange analysis.
+	  integer subrange analysis.
 	* ch-grant.c (seize_implied_names): Add handling for
 	  PROCESS_DECL, PROCESS_TYPE.
-          (do_seize): Call seize_implied_names for process,
-          procedure parameters and return value.
+	  (do_seize): Call seize_implied_names for process,
+	  procedure parameters and return value.
 	* ch-lang.c (finish_chill_enum): Canonicalize enum
 	  types.
 	* ch-tree.def (PROCESS_TYPE): Add.
@@ -9973,11 +9979,11 @@ Fri Apr 30 09:34:03 1993  Bill Cox  (bill@rtl.cygnus.com)
 Thu Apr 29 13:07:55 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-actions.c (build_chill_lower, build_chill_upper):
-          Handle enumeration types.
+	  Handle enumeration types.
 	  (build_chill_binary_op): Call chill_comptypes
 	  to error check IN arguments.  Change error
-          messages to say 'mode' rather than 'type'.  Cast
-          tree codes when build is called.
+	  messages to say 'mode' rather than 'type'.  Cast
+	  tree codes when build is called.
 	* ch-expr.c (chill_expand_array_assignment): Call
 	  chill_comptypes to validate assignment args.
 	* ch-lex.l: Add newline for readability.
@@ -9987,18 +9993,18 @@ Wed Apr 28 15:22:18 1993  Bill Cox  (bill@rtl.cygnus.com)
 	* Makefile.in (ch-hash.h): Add rule to build this
 	  from chill.gperf.  Not yet used.
 	* ch-actions.c (build_chill_binary_op): Allow enum
-          subranges on RHS of IN operator.
-	* ch-grant.c (decode_constant): Recognize 
+	  subranges on RHS of IN operator.
+	* ch-grant.c (decode_constant): Recognize
 	  error_mark_node as empty powerset initializer,
 	  re-indent a bit.
 	* ch-lang.c (deep_fold): Return error_mark_node for
-          NULL input pointer or incoming error_mark_node.
+	  NULL input pointer or incoming error_mark_node.
 	* ch-lex.l: Ignore PACK and UNPACK keywords. Return
 	  POS, ROW, and STEP as user-defined names.
-          (name_or_type): New function for above.
+	  (name_or_type): New function for above.
 	* ch-parse.y: Move token defs for following, comment
 	  them separately: NOPACK, PACK, POS, ROW, STEP
-	* varasm.c (output_constant): Check for VAR_DECLs in 
+	* varasm.c (output_constant): Check for VAR_DECLs in
 	  records & unions, like arrays.  Don't abort.
 
 Tue Apr 27 17:42:29 1993  Bill Cox  (bill@rtl.cygnus.com)
@@ -10011,25 +10017,25 @@ Tue Apr 27 17:42:29 1993  Bill Cox  (bill@rtl.cygnus.com)
 	  IDENTIFIER_GLOBAL_VALUE, for full generality.
 	* ch-expr.c (chill_expand_assignment): Need to
 	  handle non-NOP modify codes here, since C code
-	  in build_modify_expr won't understand powersets, 
+	  in build_modify_expr won't understand powersets,
 	  etc.
 
 Tue Apr 27 09:05:31 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-actions.c (build_max_min): Assign the set's
 	  base type to the function's return type.
-          (build_chill_function_call): Before complaining
-          about parameter mismatches, convert certain actual
-          parameters.
-	* ch-expr.c (chill_expand_assignment): Before 
-          complaining about LHS/RHS mismatches, convert
-          certain RHS expressions.
-	* ch-grant.c (decode_constant): Deep-fold incoming 
+	  (build_chill_function_call): Before complaining
+	  about parameter mismatches, convert certain actual
+	  parameters.
+	* ch-expr.c (chill_expand_assignment): Before
+	  complaining about LHS/RHS mismatches, convert
+	  certain RHS expressions.
+	* ch-grant.c (decode_constant): Deep-fold incoming
 	  expression, so we can output it.
 	* ch-lang.c (deep_const_expr): New function, called
-	  from const_expr, actually traverses the tree 
+	  from const_expr, actually traverses the tree
 	  looking at its leaves for 'const'ness.
-	  (deep_fold): New function to fold already-built 
+	  (deep_fold): New function to fold already-built
 	  trees.
 	* ch-parse.y (case_expr): Add whitespace.
 	* ch-tree.h: Add prototype for deep_fold.
@@ -10037,22 +10043,22 @@ Tue Apr 27 09:05:31 1993  Bill Cox  (bill@rtl.cygnus.com)
 Tue Apr 27 07:21:43 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-actions.c (chill_comptypes): Allow enumeration
-          subranges as compatible with the parent enum.
-          (build_chill_function_call): Before checking type
-          compatibility, use convert on typeless expressions,
-          like constructors.
-	* ch-expr.c (chill_expand_assignment): Before 
-	  checking type compatibility, use convert on 
-          typeless expressions, like constructors.
+	  subranges as compatible with the parent enum.
+	  (build_chill_function_call): Before checking type
+	  compatibility, use convert on typeless expressions,
+	  like constructors.
+	* ch-expr.c (chill_expand_assignment): Before
+	  checking type compatibility, use convert on
+	  typeless expressions, like constructors.
 	* ch-lex.l: Add comment.
 
 Thu Apr 22 17:23:25 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* .cvsignore: Add genopinit, insn-opinit.c
 	* c-common.c (binary_op_error): Prevent seg fault on
-          unknown node code.
+	  unknown node code.
 	* ch-typeck.c (build_chill_array_ref): Remove old
-          lower-bound-of-array-index-nonzero code.
+	  lower-bound-of-array-index-nonzero code.
 	* expr.c (expand-expr, get_inner_reference): Remove
 	  old lower-bound-of-array-index-nonzero code.
 
@@ -10061,14 +10067,14 @@ Thu Apr 22 16:01:09 1993  Bill Cox  (bill@rtl.cygnus.com)
 	* c-decl.c (shadow_record_fields): Add pushlevel for
 	  each PROCESS parameter, too.
 	* ch-process.c (make_process_struct): First working
-          version.
+	  version.
 	* ch-tree.def: Add PROCESS_DECL definition.
 	* ch-tree.h: Add CH_IS_EVENT_MODE macro, change proto
-          for make_process_struct.
-	* expr.c (expand_expr): Add references to 
-          PROCESS_DECL.  Add #include of ch-tree.h.
+	  for make_process_struct.
+	* expr.c (expand_expr): Add references to
+	  PROCESS_DECL.  Add #include of ch-tree.h.
 	* tree.c (decl_function_context): Add check for a
-          PROCESS_DECL, and #include for ch-tree.h.
+	  PROCESS_DECL, and #include for ch-tree.h.
 
 Thu Apr 22 09:25:08 1993  Bill Cox  (bill@rtl.cygnus.com)
 
@@ -10084,67 +10090,67 @@ Wed Apr 21 16:17:07 1993  Bill Cox  (bill@rtl.cygnus.com)
 Thu Apr 22 09:25:08 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-expr.c (chill_expand_expr): Add missing
-          parameters to expand_expr calls.  Some trivial
+	  parameters to expand_expr calls.  Some trivial
 	  reformatting for readability.
 
 Wed Apr 21 16:17:07 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-lex.l: Make send_*_prio externally visible,
-          default them to zero, eliminate the init flags.
-          Same for process_type.
+	  default them to zero, eliminate the init flags.
+	  Same for process_type.
 
 Sat Apr 17 10:59:50 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-actions.c (build_chill_binary_op): Build a
-          BIT_FIELD_REF tree for IN_EXPR operations.
+	  BIT_FIELD_REF tree for IN_EXPR operations.
 	* ch-typeck.c (build_chill_array_ref): Build a
-          BIT_FIELD_REF tree for access to packed array of
+	  BIT_FIELD_REF tree for access to packed array of
 	  bits.
 
 Fri Apr 16 12:33:34 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-parse.y (EXIT action): Improve error checking,
-          messages.
+	  messages.
 	* ch-typeck.c (chill_expand_tuple): Remove code to
 	  pack sets (moved to varasm.c long ago).
 	* varasm.c (unpack_set_constructor): Rename size to
-          bit_size, since 'size' always means bytes.
-          (pack_set_constructor): Rename size to wd_size,
-          since 'size' always means bytes.
+	  bit_size, since 'size' always means bytes.
+	  (pack_set_constructor): Rename size to wd_size,
+	  since 'size' always means bytes.
 	  (output_constant): Set size to zero, so that extra
-          bytes of padding aren't output after set constants.
+	  bytes of padding aren't output after set constants.
 
 Fri Apr 16 11:57:50 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* .cvsignore: Add .gdbinit.
 	* ch-decl.c (start_chill_bindings): Add function name
-          to binding contour's exit_label for EXIT stmt.
+	  to binding contour's exit_label for EXIT stmt.
 	* ch-parse.y (EXIT action): Call lookup_name to avoid
-          inserting label for function name.  Also check
-          IDENTIFIER_LABEL_VALUE for label's decl.
-          (caseaction, beginendblock, ifaction): Call
-          stamp_nesting_label to put action's label into
-          contour for EXIT to find.
+	  inserting label for function name.  Also check
+	  IDENTIFIER_LABEL_VALUE for label's decl.
+	  (caseaction, beginendblock, ifaction): Call
+	  stamp_nesting_label to put action's label into
+	  contour for EXIT to find.
 
 Thu Apr 15 17:17:05 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* expr.c (expand_expr): Unify, clean up handling of
-          IN_EXPR, and handling of bit-string element ref.
+	  IN_EXPR, and handling of bit-string element ref.
 	  Now, all goes through IN_EXPR handler.
 	* stmt.c (stamp_nesting_label, expand_exit_labelled):
-          New functions, which allow either label or 
-          function decls.
+	  New functions, which allow either label or
+	  function decls.
 
 Thu Apr 15 17:17:05 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-actions.c ch-actions.h ch-convert.c ch-decl.c ch-except.c
-          ch-expr.c ch-grant.c ch-inout.c ch-lang.c ch-lex.h ch-lex.l
+	  ch-expr.c ch-grant.c ch-inout.c ch-lang.c ch-lex.h ch-lex.l
 	  ch-loop.c ch-parse.y ch-process.c ch-tree.c ch-tree.def
 	  ch-tree.h ch-typeck.c: Add 1993 copyright, fix titles.
 	* ch-actions.c (build_chill_binary_op): Move runtime function call
 	  to expr.c.  Just build a tree here.  Clean up error checking.
 	* ch-convert.c (convert): Simply store a type into an expression if
-          TREE_TYPE (expr) == NULL.  Prevent error if an enum is to be
+	  TREE_TYPE (expr) == NULL.  Prevent error if an enum is to be
 	  converted to a set of such enums.
 	* ch-loop.c (init_loop_counter): Restore error msg for undeclared
 	  variable if no local scope is to be created for the loop.
@@ -10157,7 +10163,7 @@ Wed Apr 14 07:54:00 1993  Bill Cox  (bill@rtl.cygnus.com)
 	* ch-convert.c (convert): Check pointers better - avoid NULL reference.
 	  Remove redundant check for ERROR_MARK - already checked earlier.
 	* ch-parse.y (get_type_of): Add parameter checks for NULL ptrs and
-          error_mark_node.
+	  error_mark_node.
 
 Tue Apr 13 16:00:37 1993  Per Bothner  (bothner@cygnus.com)
 
@@ -10183,32 +10189,32 @@ Tue Apr 13 16:00:37 1993  Per Bothner  (bothner@cygnus.com)
 Tue Apr 13 15:48:25 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-loop.c (begin_chill_loop): Also stamp the user's loop name into
-          current contour for DO FOR EVER loops.
+	  current contour for DO FOR EVER loops.
 
 Tue Apr 13 14:37:39 1993  Bill Cox  (bill@rtl.cygnus.com)
 
-	* ch-parse.y (actionstatement): Add error rule.  Delete 
-          POP_UNUSED_ON_CONTEXT.  Add comments about label name usage.
+	* ch-parse.y (actionstatement): Add error rule.  Delete
+	  POP_UNUSED_ON_CONTEXT.  Add comments about label name usage.
 	  (nohandleraction): Better error check in EXIT processing.
-          (optexprlist): Comment out make_function_rtl call.
-          (seizestatement): Change error to warning.
+	  (optexprlist): Comment out make_function_rtl call.
+	  (seizestatement): Change error to warning.
 
 Tue Apr 13 08:29:31 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-grant.c (raw_decode_mode): Supply missing parameter in get_type
-          call.
+	  call.
 	* ch-loop.c (begin_chill_loop): Take loop label as parameter.  Stamp
-          its name into the current contour's exit_label, for EXIT to use.
+	  its name into the current contour's exit_label, for EXIT to use.
 	* ch-parse.y: (actionlabel): Save label tree in global variable.
-          (actionstatement): Clear label to NULL when action is finished.
-	  (handlerstatement, nohandlerstatement): Split actions into 
-          categories which do/don't permit exception handlers.
-          (exitaction): Move code into nohandleraction, make it work.
-          (doaction): Pass (possibly NULL) label tree to begin_chill_loop.
+	  (actionstatement): Clear label to NULL when action is finished.
+	  (handlerstatement, nohandlerstatement): Split actions into
+	  categories which do/don't permit exception handlers.
+	  (exitaction): Move code into nohandleraction, make it work.
+	  (doaction): Pass (possibly NULL) label tree to begin_chill_loop.
 	* ch-tree.h: Add parameter  to begin_chill_tree prototype.
 	* stmt.c (stamp_nesting_label, expand_exit_labelled): Add functions.
-          Note: This implementation of EXIT only exits from loops, not yet 
-                from other bracketted statements.
+	  Note: This implementation of EXIT only exits from loops, not yet
+		from other bracketted statements.
 
 Mon Apr 12 13:41:55 1993  Per Bothner  (bothner@rtl.cygnus.com)
 
@@ -10226,45 +10232,45 @@ Mon Apr 12 08:10:34 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-loop.c: Diffuse cleanup after big functional changes.
 	* ch-parse.y: Eliminate temporary variables, now unnecessary.  Use
-          parse-time stack instead.
+	  parse-time stack instead.
 	* ch-tree.h: Change build_chill_iterator prototype.
 
 Sun Apr 11 15:50:33 1993  Bill Cox  (bill@rtl.cygnus.com)
 
-	* ch-convert.c (convert): Replace an ERROR_MARK type - from a 
+	* ch-convert.c (convert): Replace an ERROR_MARK type - from a
 	  untyped_expr with the given type.  Move chill_expand_case_expr
 	  call inside chill_expand_expr.
-	* ch-expr.c, ch-tree.h, ch-typeck.c (chill_handle_case_default, 
-          chill_handle_case_label, chill_expand_case_expr):  Move to ch-expr.c
-          from ch-typeck.c.
+	* ch-expr.c, ch-tree.h, ch-typeck.c (chill_handle_case_default,
+	  chill_handle_case_label, chill_expand_case_expr):  Move to ch-expr.c
+	  from ch-typeck.c.
 	* ch-loop.c: Major reorganization to support multiple iterators in
-          DO FOR loop, very little new code, just a re-org.
+	  DO FOR loop, very little new code, just a re-org.
 	* ch-parse.y (iterationlist): Add handling for multiple loop iterators.
 
 Sat Apr 10 14:40:12 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-actions.c (build_chill_lower, build_chill_upper): Clean up.
 	* ch-grant.c (chill_grant): Avoid making strange SYNMODE for enum
-          member.
+	  member.
 	* ch-lex.l (equal_number): Add function to look in the input for '='
-          followed by a decimal literal.  Call it from directive scanning.
-          (start state 'ccitt'): Deleted, unused.  Moved unused, but reserved,
-          tokens to NORMAL state.
-          (compiler_directive): Replaced by equal_number.  Now the only
-          recursive call to yylex happens in check_newline at the beginning
-          of a compilation.
+	  followed by a decimal literal.  Call it from directive scanning.
+	  (start state 'ccitt'): Deleted, unused.  Moved unused, but reserved,
+	  tokens to NORMAL state.
+	  (compiler_directive): Replaced by equal_number.  Now the only
+	  recursive call to yylex happens in check_newline at the beginning
+	  of a compilation.
 
 Sat Apr 10 09:55:50 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-actions.c (build_chill_case_expr): Added from ch-parse.y.
 	* ch-lex.l (ENTRY, PERVASIVE, ROW, STEP): Add token recognition to
-          'reserve' them.
+	  'reserve' them.
 	* ch-parse.y (case_expr): Move code into ch-actions.c.  There will
-          need to be much more written.
+	  need to be much more written.
 	* ch-tree.def (VARY_ARRAY_REF): Add comment.
 	* ch-tree.h (build_chill_case_expr): Add prototype.
 	* ch-typeck.c (build_chill_cast): Allow untyped_expr - just assign the
-          type to the expr.  Check for CASE_EXPR, call expand_case_expr.
+	  type to the expr.  Check for CASE_EXPR, call expand_case_expr.
 
 Sat Apr 10 01:10:51 1993  Per Bothner  (bothner@rtl.cygnus.com)
 
@@ -10298,9 +10304,9 @@ Sat Apr 10 01:10:51 1993  Per Bothner  (bothner@rtl.cygnus.com)
 Fri Apr  9 09:37:38 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-expr.c (chill_expand_array_assignment): Remove false error	about
-	  arrays that are too small.    
+	  arrays that are too small.
 	* ch-parse.y (callaction): Don't pass an error_mark_node to
-          c_expand_expr_stmt.
+	  c_expand_expr_stmt.
 
 Fri Apr  9 00:26:54 1993  Per Bothner  (bothner@rtl.cygnus.com)
 
@@ -10328,12 +10334,12 @@ Fri Apr  9 00:26:54 1993  Per Bothner  (bothner@rtl.cygnus.com)
 Thu Apr  8 16:56:52 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-actions.c (build_char_array_expr): Add handling of varying
-          arrays in relational expressions.
+	  arrays in relational expressions.
 	* ch-decl.c: Add prototype for lookup_name_current_level.
-	* ch-expr.c (chill_expand_expr): Make concat_expr's temp a BLKmode, 
-          so its length is used as the temp's size.
+	* ch-expr.c (chill_expand_expr): Make concat_expr's temp a BLKmode,
+	  so its length is used as the temp's size.
 	  (chill_expand_array_assignment): Correct for varying := varying
-          assignment, clean up.
+	  assignment, clean up.
 	* ch-typeck.c: Add prototype for require_complete_type.
 
 Wed Apr  7 16:41:29 1993  Bill Cox  (bill@rtl.cygnus.com)
@@ -10368,24 +10374,24 @@ Tue Apr  6 18:05:40 1993  Bill Cox  (bill@rtl.cygnus.com)
 	* ch-actions.c: Move build_varying_struct to ch-typeck.c.
 	* ch-parse.y (formpar): Turn ARRAY_TYPE parms into structure.
 	* ch-parse.y (location): Do build_component_ref for an array wrapped
-          in a structure.
+	  in a structure.
 	* ch-tree.h: Add prototype, #define for build_chill_array_parm_type.
 	* ch-typeck.c (build_chill_array_parm_type): Add function, move
 	  build_varying_struct here from ch-actions.c.
 
 Mon Apr  5 19:56:56 1993  Bill Cox  (bill@rtl.cygnus.com)
 
-	* ch-actions.c, ch-decl.c: Use tree_int_cst_equal and integer_zerop 
+	* ch-actions.c, ch-decl.c: Use tree_int_cst_equal and integer_zerop
 	  rather than in-line code - tests LOW and HIGH values.
 	* ch-lang.c: Use tree_int_cst_lt rather than inline code.
 	* ch-typeck.c (my_build_array_ref): Handle case where array low bound
-          isn't zero.
+	  isn't zero.
 
 Mon Apr  5 15:45:10 1993  Bill Cox  (bill@rtl.cygnus.com)
 
-	* ch-typeck.c (my_build_array_ref): Add some more code from 
-          build_array_ref.  Change checks, error messages to mention 
-          'discrete types'.  I.E. types which don't kiss and tell..
+	* ch-typeck.c (my_build_array_ref): Add some more code from
+	  build_array_ref.  Change checks, error messages to mention
+	  'discrete types'.  I.E. types which don't kiss and tell..
 
 Sat Apr  3 09:27:03 1993  Bill Cox  (bill@rtl.cygnus.com)
 
@@ -10393,7 +10399,7 @@ Sat Apr  3 09:27:03 1993  Bill Cox  (bill@rtl.cygnus.com)
 	* ch-grant.c (chill_grant): Remove orphan #else.
 	* ch-tree.h: Add prototype for build_chill_bin_type.
 	* ch-typeck.c: Turn externs into prototypes, delete code which
-          was commented out in chill_expand_return; it will never be used.
+	  was commented out in chill_expand_return; it will never be used.
 
 Fri Apr  2 21:55:14 1993  Per Bothner  (bothner@rtl.cygnus.com)
 
@@ -10516,7 +10522,7 @@ Sun Mar 28 10:12:45 1993  Ken Raeburn  (raeburn@kr-pc.cygnus.com)
 Fri Mar 26 18:32:15 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-parse.y: Put %type directives back into alpha order.
-          (variant_alternative): Simplify error_mark test.
+	  (variant_alternative): Simplify error_mark test.
 	  (variantfields, varianthack): Add error_mark checks.
 
 Fri Mar 26 13:36:23 1993  Bill Cox  (bill@rtl.cygnus.com)
@@ -10524,21 +10530,21 @@ Fri Mar 26 13:36:23 1993  Bill Cox  (bill@rtl.cygnus.com)
 	* ch-lex.l (convert_charliteral): Rewrite to avoid bogus error msg.
 	* ch-parse.y (get_type_of): Add function to deal with possible fwd
 	  declared type name.  Call it from lotsa places.  Add lotsa checks
-          for error_mark_node.  Standardize indentations.
+	  for error_mark_node.  Standardize indentations.
 
 Thu Mar 25 15:00:11 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-expr.c (chill_expand_assignment): Avoid seg fault while checking
-          for array assignments.
+	  for array assignments.
 	* ch-parse.y (action): Add recognition for allocate_memory and
-          allocate_global_memory system calls.
-          (mode2): Remove ill-conceived error check that broke REFs to
-          as-yet-undeclared types.  Check for IDENTIFIER_NODE, lookup its
-          DECL if there, pass TREE_TYPE of decl to build_pointer_type.
-          (variantfields, varianthack): Clean up.
-          (variantfield): Check for IDENTIFIER_NODE, lookup its DECL if
-          there, pass TREE_TYPE of decl to grok_fixedfields.
-          (labellist): Explicitly assign error_mark_node to signal error.
+	  allocate_global_memory system calls.
+	  (mode2): Remove ill-conceived error check that broke REFs to
+	  as-yet-undeclared types.  Check for IDENTIFIER_NODE, lookup its
+	  DECL if there, pass TREE_TYPE of decl to build_pointer_type.
+	  (variantfields, varianthack): Clean up.
+	  (variantfield): Check for IDENTIFIER_NODE, lookup its DECL if
+	  there, pass TREE_TYPE of decl to grok_fixedfields.
+	  (labellist): Explicitly assign error_mark_node to signal error.
 	* ch-typeck.c (chill_compatible): Report FALSE for bad parameters,
 	  rather than seg faulting.
 
@@ -10546,7 +10552,7 @@ Thu Mar 25 10:35:58 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-actions.c (lang_init): build_function_type for allocate_memory
 	  and allocate_global_memory runtime routines.  Move discrete_type_p
-          into ch-typeck.c.
+	  into ch-typeck.c.
 	* ch-typeck.c (discrete_type_p): Move here, where it belongs, call it
 	  in build_chill_cast.
 
@@ -10558,14 +10564,14 @@ Tue Mar 23 15:25:39 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* Makefile.in (ch-actions.o): Add dependencies (expr.h insn-codes.h)
 	* dwarfout.c (fundamental_type_code): Add handling of BOOLEAN_TYPEs,
-          avoid abort.
+	  avoid abort.
 
 Tue Mar 23 09:03:35 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-actions.c (build_char_array_expr): Just build a type for the
-          result of a CONCAT_EXPR, and pass the tree back.  
-          chill_expand_array_assignment can do a better job of 
-          code-generation.
+	  result of a CONCAT_EXPR, and pass the tree back.
+	  chill_expand_array_assignment can do a better job of
+	  code-generation.
 	* ch-expr.c (chill_expand_array_assignment): Generate the CONCAT_EXPR
 	  code.
 
@@ -10592,14 +10598,14 @@ Mon Mar 22 12:42:58 1993  Per Bothner  (bothner@rtl.cygnus.com)
 Fri Mar 19 11:55:35 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-actions.c: Add prototypes, remove unused variables.  Attempt to
-	  continue generating grant file in presence of error (Wilfried's 
-          patch to lang_finish).
+	  continue generating grant file in presence of error (Wilfried's
+	  patch to lang_finish).
 	* ch-expr.c: Change assign_stack_temp calls so temps get recovered
-          after each statement.  Move convert call into
-          chill_expand_assignment from ch-parse.y.
+	  after each statement.  Move convert call into
+	  chill_expand_assignment from ch-parse.y.
 	* ch-grant.c: Generally re-order, clean up.  Include Per's decode_mode
-          simplification.  Include commented-out hack in decode_mode to return
-          type's name if type SEIZEd or already GRANTed in this file.
+	  simplification.  Include commented-out hack in decode_mode to return
+	  type's name if type SEIZEd or already GRANTed in this file.
 	* ch-lex.l: Add prototypes.
 	* ch-parse.y (assignaction): Move convert call into
 	  chill_expand_assignment.
@@ -10608,7 +10614,7 @@ Thu Mar 18 16:04:45 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-convert.c (convert): Remove unused variable, fix int_size_in_bytes
 	  comparison.
-        * ch-decl.c: Add prototypes, correct error message spelling, remove
+	* ch-decl.c: Add prototypes, correct error message spelling, remove
 	  unused variables.
 	* ch-lang.c (build_chill_range_type): Add error message.  Add prototypes.
 	  Correct comment spelling.
@@ -10621,7 +10627,7 @@ Thu Mar 18 16:04:45 1993  Bill Cox  (bill@rtl.cygnus.com)
 	* ch-parse.y (label_spec): Correct assignment within IF expression which
 	  was intended to be equality test.  Remove unused variables.
 	* ch-tree.h: Add prototype.  Remove unused EXCP_CODE enumeration, and
-          prototyping editorial comments.
+	  prototyping editorial comments.
 	* ch-typeck.c: Disable generation of code to validate array index for
 	  now.  Should be done as a call-back from more generic array_ref code.
 	  Clean up parameter checking.  Remove unused variables.
@@ -10648,14 +10654,14 @@ Thu Mar 11 21:06:55 1993  Bill Cox  (bill@rtl.cygnus.com)
 Thu Mar 11 19:20:37 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-actions.c (build_set_expr, build_chill_binary_op): Calculate
-          *BIT* length of powersets and arrays of BOOLs.
+	  *BIT* length of powersets and arrays of BOOLs.
 	  (invalid_left_operand, invalid_right_operand): Disallow relationals
 	  with arrays of BOOL as operands.
-        * ch-convert.c (convert): Test TREE_CODE for ERROR_MARK rather than
+	* ch-convert.c (convert): Test TREE_CODE for ERROR_MARK rather than
 	  comparing pointers.
 	* ch-decl.c (push_newmode): Re-indent.
 	* ch-expr.c (chill_expand_expr): Calculate *BIT* length of powersets
-          and arrays of BOOLs.
+	  and arrays of BOOLs.
 	* ch-lang.c (build_chill_array_type): Add parameter error checking.
 
 Mon Mar  8 17:13:00 1993  Bill Cox  (bill@rtl.cygnus.com)
@@ -10673,7 +10679,7 @@ Mon Mar  8 17:13:00 1993  Bill Cox  (bill@rtl.cygnus.com)
 Mon Mar  8 13:16:05 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* fold-const.c (fold_convert): Allow CHAR_TYPE CONVERT_EXPR to
-          be folded.
+	  be folded.
 
 Mon Mar  8 10:13:57 1993  Bill Cox  (bill@rtl.cygnus.com)
 
@@ -10695,9 +10701,9 @@ Thu Mar  4 18:05:43 1993  Bill Cox  (bill@rtl.cygnus.com)
 	* ch-loop.c (end_chill_loop): Output end-of-loop marker.
 	* ch-parse.y (label_spec): redefine variant structure label_spec
 	  to agree with the Z.200 spec.
-	             (locdec): Error if set/bitstring initialized with a tuple.
-                     (case_label, arrayindex): Use new discrete_type_p 
-                     function. 
+		     (locdec): Error if set/bitstring initialized with a tuple.
+		     (case_label, arrayindex): Use new discrete_type_p
+		     function.
 	* ch-process.c: Fix typo.
 
 Wed Mar  3 14:30:53 1993  Per Bothner  (bothner@rtl.cygnus.com)
@@ -10731,7 +10737,7 @@ Thu Feb 25 17:35:46 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 Fri Feb 26 07:14:34 1993  Bill Cox  (bill@rtl.cygnus.com)
 
-	* c-decl.c (finsh_decl): Don't output non-constant storage size 
+	* c-decl.c (finsh_decl): Don't output non-constant storage size
 	  error for CHILL
 	* ch-actions.c: Call build_temporary_variable, fix build_tree_list
 	  call in build_chill_cause_exception.
@@ -10751,7 +10757,7 @@ Thu Feb 25 12:09:01 1993  Bill Cox  (bill@rtl.cygnus.com)
 	* stor-layout.c (variable_size): Disable complaint about variable-
 	  size type or decl at file scope.  Perhaps later this s.b. a warning.
 	* varasm.c (emit_set_data): Add function.
-	  (output_constant): Call new emit_set_data function for VAR_DECLs, 
+	  (output_constant): Call new emit_set_data function for VAR_DECLs,
 	  in addition to CONSTRUCTORs.
 
 Thu Feb 25 11:34:36 1993  Bill Cox  (bill@rtl.cygnus.com)
@@ -10761,7 +10767,7 @@ Thu Feb 25 11:34:36 1993  Bill Cox  (bill@rtl.cygnus.com)
 	  to references to the TREE_CODE == BOOLEAN_TYPE, to follow the
 	  convention.
 	  build_set_expr: Remove length parameter, call powersetlen() instead.
-	    remove handling of CHAR arrays - they're handled in build_char_array_expr.  
+	    remove handling of CHAR arrays - they're handled in build_char_array_expr.
 	    Call __eqpowerset to test for equality - we can't use a byte-length -
 	    need bitcount instead.
 	  build_chill_compound_expr, internal_build_compound_expr: Copy from C
@@ -10872,7 +10878,7 @@ Thu Feb 18 12:40:56 1993  Michael Tiemann  (fs_tie@rcvie.co.at)
 Thu Feb 18 09:30:11 1993  Michael Tiemann  (fs_tie@rcvie.co.at)
 
 	* ch-actions.c (chill_comptypes): Figure out which newmode or
-          synmode decls look most canonical.
+	  synmode decls look most canonical.
 	* ch-convert.c (convert): handle location conversions of records,
 	  unions and arrays.
 	* ch-decl.c (fixup_unknown_type): changes for variant records
@@ -10995,7 +11001,7 @@ Fri Feb 12 10:32:37 1993  Bill Cox  (bill@rtl.cygnus.com)
 	  assignments to handle INOUT and OUT parameters.
 	* ch-decl.c (build_chill_function_type): better parameter name.
 	* ch-parse.y (action): keep rules in alpha order.
-          (pmodearg): turn INOUT, OUT parameter types into reference types.
+	  (pmodearg): turn INOUT, OUT parameter types into reference types.
 	* ch-typeck.c (build_tree_slice): indentation change.
 
 Thu Feb 11 23:16:34 1993  Per Bothner  (bothner@rtl.cygnus.com)
@@ -11083,7 +11089,7 @@ Tue Feb  9 08:27:18 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 Sun Feb  7 18:20:49 1993  Bill Cox  (bill@rtl.cygnus.com)
 
-	* ch-tree.def: add a new tree type - just for varying array 
+	* ch-tree.def: add a new tree type - just for varying array
 	  references.  We were using ARRAY_REF, but the underlying C
 	  code also generates that one.
 	* ch-convert.c, ch-expr.c, ch-typeck.c: use the new tree type.
@@ -11141,20 +11147,20 @@ Thu Jan 28 17:41:58 1993  Per Bothner  (bothner@rtl.cygnus.com)
 
 Thu Jan 28 16:16:00 1993  Bill Cox  (bill@rtl.cygnus.com)
 
-        * ch-convert.c (convert): correct fixed->varying conversion.
-        * ch-parse.y (mode2): delete unesthetic newline.
+	* ch-convert.c (convert): correct fixed->varying conversion.
+	* ch-parse.y (mode2): delete unesthetic newline.
 
 Thu Jan 28 10:32:55 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-actions.c: delete maybe_array_ref()
-        * ch-expr.c (chill_expand_assignment): handle RHS array_ref, delay
-          calling convert().
-        * ch-lex.l, ch-parse.y, chill.gperf: add keywords, syntax for time
+	* ch-expr.c (chill_expand_assignment): handle RHS array_ref, delay
+	  calling convert().
+	* ch-lex.l, ch-parse.y, chill.gperf: add keywords, syntax for time
 	  supervision actions & builtins
-        * ch-parse.y (call): eliminate optlocarrayidx, call build_chill_slice,
-          smaller actions directly (maybe_array_ref() used to call them).
-        * ch-tree.h: add build_chill_function_call, build_chill_slice
-        * ch-typeck.c: add build_chill_slice()
+	* ch-parse.y (call): eliminate optlocarrayidx, call build_chill_slice,
+	  smaller actions directly (maybe_array_ref() used to call them).
+	* ch-tree.h: add build_chill_function_call, build_chill_slice
+	* ch-typeck.c: add build_chill_slice()
 
 Thu Jan 28 08:44:28 1993  Bill Cox  (bill@rtl.cygnus.com)
 
@@ -11184,7 +11190,7 @@ Wed Jan 27 22:28:36 1993  Per Bothner  (bothner@rtl.cygnus.com)
 Wed Jan 27 15:45:20 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-actions.c: delete convert_chill_parameter, replace call with
-          call to convert().	
+	  call to convert().
 	* ch-convert.c (convert): combine chill_give_type_to_expr in here.
 	* ch-decl.c: call convert rather than chill_give_type_to_expr.
 	* ch-expr.c: delete chill_expand_array_assignment, move code to convert.
@@ -11212,7 +11218,7 @@ Wed Jan 27 15:45:20 1993  Bill Cox  (bill@rtl.cygnus.com)
 Wed Jan 27 15:32:21 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-actions.c (build_chill_length, build_chill_lower,
-                        build_chill_upper): accept parameters, too.
+			build_chill_upper): accept parameters, too.
 	* ch-expr.c (chill_expand_assignment):  decipher ARRAY_REF on RHS.
 	* ch-typeck.c (chill_give_type_to_expr, build_chill_array_ref):
 	  assign proper type to ARRAY_REF expression.
@@ -11252,7 +11258,7 @@ Mon Jan 25 17:26:47 1993  Bill Cox  (bill@rtl.cygnus.com)
 Mon Jan 25 14:57:24 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-parse.y (mode2): eliminate old method to mark varying arrays.
-	* ch-expr.c (expand_varying_length_assignment): repair scaling of 
+	* ch-expr.c (expand_varying_length_assignment): repair scaling of
 	  RHS expression.
 
 Mon Jan 25 11:44:21 1993  Per Bothner  (bothner@cygnus.com)
@@ -11293,9 +11299,9 @@ Wed Jan 20 17:11:05 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 Wed Jan 20 16:48:13 1993  Bill Cox  (bill@rtl.cygnus.com)
 
-	* ch-tree.h, ch-process.c, ch-inout.c, Makefile.in: 
+	* ch-tree.h, ch-process.c, ch-inout.c, Makefile.in:
 	  create new modules for I/O and process-related stuff.
-	* ch-actions.c: move routines to new modules.  
+	* ch-actions.c: move routines to new modules.
 	  call xmalloc, not malloc.
 	* ch-lang.c (build_chill_struct_type): add parameter checking.
 	* ch-lex.l (init_lex): remove redundant cast.
@@ -11304,7 +11310,7 @@ Tue Jan 19 16:33:56 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-parse.y (operand5): delete unnecessary argument to
 	  build_chill_unary_op.  Add rule for string repetition.
-        * ch-parse.y (primval): delete string repetition attempt.
+	* ch-parse.y (primval): delete string repetition attempt.
 	* ch-parse.y (start_process): rough draft of action.
 	* ch-actions.c (build_repetition_op): add it
 	* ch-actions.c (build_chill_binary_op): handle constant arguments
@@ -11316,7 +11322,7 @@ Tue Jan 19 16:33:56 1993  Bill Cox  (bill@rtl.cygnus.com)
 Tue Jan 19 15:03:29 1993  Fred Fish  (fnf@cygnus.com)
 
 	* dwarfout.c (output_type):  Add hack that matches the one in the
-	chill front end to distinquish between true string types and 
+	chill front end to distinquish between true string types and
 	arrays of char, since it uses ARRAY_TYPE for both, rather than
 	trying to use the existing support for STRING_TYPE.
 
@@ -11324,8 +11330,8 @@ Tue Jan 19 13:54:27 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-tree.h: added prototypes for all non-static CHILL functions.
 	* ch-actions.c (lang_init): declare builtin type for start_process
-        * ch-actions.c (build_chill_binary_op): combine	string literals when
-	  concatenated.  
+	* ch-actions.c (build_chill_binary_op): combine	string literals when
+	  concatenated.
 	* ch-actions.c (formpars2struct): added for later start_process
 	  implementation.
 	* ch-actions.h: remove un-needed function declarations.
@@ -11350,11 +11356,11 @@ Mon Jan 18 08:24:21 1993  Bill Cox  (bill@rtl.cygnus.com)
 
 Mon Jan 18 08:00:11 1993  Bill Cox  (bill@rtl.cygnus.com)
 
-	* ch-lex.l, ch-parse.y: make BOOLS synonymous with BIT and 
+	* ch-lex.l, ch-parse.y: make BOOLS synonymous with BIT and
 	CHARS synonymous with CHAR, in the lexer.  Delete unnecessary
 	'bools' non-terminal.
 	* ch-parse.y (assignaction): add lhs version of length() function
-	* ch-actions.c: add builtin_concat function, lots of support for 
+	* ch-actions.c: add builtin_concat function, lots of support for
 	CONCAT_EXPR.
 	* ch-actions.c, ch-tree.h: make a function out of former
 	macro CH_VARYING_TYPE_P
@@ -11462,10 +11468,10 @@ Wed Jan  6 09:48:35 1993  Bill Cox  (bill@cygnus.com)
 	New function build_varying_struct, to do just that.  Use the macros
 	for the special varying field names.
 	* ch-tree.h: define macros for varying field names.
-	* ch-expr.c: use macros for varying struct names.  Simplify 
+	* ch-expr.c: use macros for varying struct names.  Simplify
 	chill_expand_array_assignment.
 	* ch-parse.y: assure that build_varying_struct is called everywhere
-	that it applies.  Add a line-number note before the body of a DO 
+	that it applies.  Add a line-number note before the body of a DO
 	loop.
 	* ch-loop.c: #ifdef out creation of new scope for DO loop body.
 
@@ -11622,20 +11628,20 @@ Wed Dec 30 16:06:55 1992  Bill Cox  (bill@rtl.cygnus.com)
 
 	* ch-parse.y, ch-expr.c: add support for declaring & assigning
 	VARYING arrays.
-        * ch-typeck.c: allow VARYING structures in assign_type_to_expr.
+	* ch-typeck.c: allow VARYING structures in assign_type_to_expr.
 
 Tue Dec 29 15:28:48 1992  Bill Cox  (bill@cygnus.com)
 
 	* ch-actions.c: implement expressions of arrays of char,
-        ( concatenation, relationals ), correct type of code parameters
-        * ch-expr.c: correct type of code parameters
+	( concatenation, relationals ), correct type of code parameters
+	* ch-expr.c: correct type of code parameters
 
 Tue Dec 29 11:16:19 1992  Bill Cox  (bill@cygnus.com)
 
 	* ch-decl.c: cleanup.
-        * ch-parse.y: put emit_line_note() calls in lotsa places,
-        per Fred's request; be sure that statements get counted also.
-        * ch-lex.l: standardize function headers.
+	* ch-parse.y: put emit_line_note() calls in lotsa places,
+	per Fred's request; be sure that statements get counted also.
+	* ch-lex.l: standardize function headers.
 
 Tue Dec 29 10:41:56 1992  Fred Fish  (fnf@cygnus.com)
 
@@ -11840,7 +11846,7 @@ Mon Dec 14 00:22:49 1992  Fred Fish  (fnf@cygnus.com)
 	* Makefile.in (CHILL, chill, cc1chill, chill-runtime, libchill.a,
 	sublibchill.a, ch-parse.o, ch-parse.c ch-*.o, install-libchill,
 	install-librmt):  New targets.
-	* Makefile.in (install-native):  Add install-libchill, 
+	* Makefile.in (install-native):  Add install-libchill,
 	install-librmt.
 
 Sun Dec 13 15:21:06 1992  Bill Cox  (bill@cygnus.com)
@@ -11911,7 +11917,7 @@ Mon Dec  7 14:57:46 1992  Bill Cox  (bill@cygnus.com)
 Mon Dec  7 10:42:35 1992  Bill Cox  (bill@cygnus.com)
 
 	* ch-actions.c: implement relational, logic operations
-        on arrays of BOOLs.
+	on arrays of BOOLs.
 
 Mon Dec  7 08:55:20 1992  Michael Tiemann  (tiemann@rtl.cygnus.com)
 
@@ -11935,7 +11941,7 @@ Sun Dec  6 13:12:32 1992  Bill Cox  (bill@cygnus.com)
 Sun Dec  6 11:15:59 1992  Bill Cox  (bill@cygnus.com)
 
 	* ch-parse.y, ch-actions.c, ch-expr.c: Implement set-oriented
-        relational expressions, including (<, <=, =, /=, >, >=, IN).
+	relational expressions, including (<, <=, =, /=, >, >=, IN).
 
 Fri Dec  4 13:54:58 1992  Brendan Kehoe  (brendan@lisa.cygnus.com)
 
@@ -12000,7 +12006,7 @@ Wed Dec  2 09:52:06 1992  Michael Tiemann  (tiemann@rtl.cygnus.com)
 Tue Dec  2 09:44:05 1992  Bill Cox  (bill@cygnus.com)
 
 	* ch-typeck.c: clean up a gcc warning with a forward
-        declaration of build_string_type.
+	declaration of build_string_type.
 
 Tue Dec  1 16:51:05 1992  Bill Cox  (bill@cygnus.com)
 
@@ -12028,8 +12034,8 @@ Tue Dec  1 12:35:56 1992  Bill Cox  (bill@cygnus.com)
 
 Tue Dec  1 11:10:56 1992  Bill Cox  (bill@cygnus.com)
 
-	* ch-parse.y, ch-actions: added parsing and processing 
-        for upper, lower, and length built-ins.
+	* ch-parse.y, ch-actions: added parsing and processing
+	for upper, lower, and length built-ins.
 
 Tue Dec  1 09:40:49 1992  Fred Fish  (fnf@cygnus.com)
 
diff --git a/gcc/ch/lex.c b/gcc/ch/lex.c
index 5e9a46fc1e89..f747bef570a7 100644
--- a/gcc/ch/lex.c
+++ b/gcc/ch/lex.c
@@ -889,8 +889,7 @@ maybe_downcase (str)
     return;
   while (*str)
     {
-      if (ISUPPER ((unsigned char) *str))
-	*str = TOLOWER (*str);
+      *str = TOLOWER (*str);
       str++;
     }
 }
@@ -1526,9 +1525,9 @@ handle_generic_pragma (buffer)
 	  * buff ++ = c;
 	  c = getc (finput);
 	}
-      while (c != EOF && isascii (c) && ! ISSPACE (c) && c != '\n'
-	     && buff < buffer + 128); /* XXX shared knowledge about size of buffer.  */
-      
+      while (c != EOF && ! ISSPACE (c) && buff < buffer + 128);
+        /* XXX shared knowledge about size of buffer.  */
+
       ungetc (c, finput);
       
       * -- buff = 0;
diff --git a/gcc/config/i370/i370.c b/gcc/config/i370/i370.c
index 73a78803e336..2db1a01b9fc8 100644
--- a/gcc/config/i370/i370.c
+++ b/gcc/config/i370/i370.c
@@ -906,11 +906,11 @@ mvs_need_alias (realname)
      return 1;
    if (strchr (realname, '_') != 0)
      return 1;
-   if (isupper (realname[0]))
+   if (ISUPPER (realname[0]))
      {
        for (i = 1; i < j; i++)
 	 {
-	   if (islower (realname[i]))
+	   if (ISLOWER (realname[i]))
 	     return 1;
 	 }
      }
@@ -918,7 +918,7 @@ mvs_need_alias (realname)
      {
        for (i = 1; i < j; i++)
          {
-	   if (isupper (realname[i]))
+	   if (ISUPPER (realname[i]))
 	     return 1;
 	 }
      }
@@ -951,9 +951,9 @@ mvs_get_alias (realname, aliasname)
 
       c1 = realname[0];
       c2 = realname[1];
-      if (islower (c1)) c1 = toupper (c1);
+      if (ISLOWER (c1)) c1 = TOUPPER (c1);
       else if (c1 == '_') c1 = 'A';
-      if (islower (c2)) c2 = toupper (c2);
+      if (ISLOWER (c2)) c2 = TOUPPER (c2);
       else if (c2 == '_' || c2 == '\0') c2 = '#';
 
       sprintf (aliasname, "%c%c%06d", c1, c2, mvs_hash_alias (realname));
@@ -998,9 +998,9 @@ mvs_check_alias (realname, aliasname)
 
       c1 = realname[0];
       c2 = realname[1];
-      if (islower (c1)) c1 = toupper (c1);
+      if (ISLOWER (c1)) c1 = TOUPPER (c1);
       else if (c1 == '_') c1 = 'A';
-      if (islower (c2)) c2 = toupper (c2);
+      if (ISLOWER (c2)) c2 = TOUPPER (c2);
       else if (c2 == '_' || c2 == '\0') c2 = '#';
 
       sprintf (aliasname, "%c%c%06d", c1, c2, mvs_hash_alias (realname));
diff --git a/gcc/config/winnt/dirent.c b/gcc/config/winnt/dirent.c
index 59f7dc1c6eff..f20e1f7d597e 100644
--- a/gcc/config/winnt/dirent.c
+++ b/gcc/config/winnt/dirent.c
@@ -23,7 +23,7 @@
 
 #include <string.h>
 #include <limits.h>
-#include <ctype.h>
+#include <safe-ctype.h>
 #include <errno.h>
 #include <dirent.h>
 
@@ -332,8 +332,8 @@ IsHPFSFileSystem (directory)
     unsigned int	nDrive;
     char		szCurDir [MAX_PATH];
 
-    if (isalpha (directory[0]) && (directory[1] == ':'))
-	nDrive = toupper (directory[0]) - '@';
+    if (ISALPHA (directory[0]) && (directory[1] == ':'))
+	nDrive = TOUPPER (directory[0]) - '@';
 
     else
     {
diff --git a/gcc/config/winnt/fixinc-nt.c b/gcc/config/winnt/fixinc-nt.c
index f49d6dda1bd6..f7e1a35d0941 100644
--- a/gcc/config/winnt/fixinc-nt.c
+++ b/gcc/config/winnt/fixinc-nt.c
@@ -64,7 +64,7 @@ newname (olddirname)
   char *newname = strdup (olddirname);
 
   if ((strlen (newname) >= 2)
-      && (isalpha (newname[0]) && newname[1] == ':'))
+      && (ISALPHA (newname[0]) && newname[1] == ':'))
     newname [1] = '-';
   else if ((strlen (newname) >= 1) 
            && (newname [0] == '/' || newname [0] == '\\'))
diff --git a/gcc/config/winnt/ld.c b/gcc/config/winnt/ld.c
index 67d53e783214..b02d1ede2295 100644
--- a/gcc/config/winnt/ld.c
+++ b/gcc/config/winnt/ld.c
@@ -86,7 +86,7 @@ locate_file (file_name, path_val)
 
   /* Handle absolute pathnames */
   if (file_name [0] == '/' || file_name [0] == DIR_SEPARATOR
-      || isalpha (file_name [0]) && file_name [1] == ':')
+      || ISALPHA (file_name [0]) && file_name [1] == ':')
     {
       strncpy (buf, file_name, sizeof buf);
       buf[sizeof buf - 1] = '\0';
diff --git a/gcc/cpphash.h b/gcc/cpphash.h
index 1f4f98554c44..e27290aca511 100644
--- a/gcc/cpphash.h
+++ b/gcc/cpphash.h
@@ -135,39 +135,30 @@ struct cpp_buffer
   unsigned char sysp;
 };
 
-/* Character classes.
+/* Character classes.  Based on the more primitive macros in safe-ctype.h.
    If the definition of `numchar' looks odd to you, please look up the
    definition of a pp-number in the C standard [section 6.4.8 of C99].
 
    In the unlikely event that characters other than \r and \n enter
    the set is_vspace, the macro handle_newline() in cpplex.c must be
    updated.  */
-#define ISidnum		0x01	/* a-zA-Z0-9_ */
-#define ISidstart	0x02	/* _a-zA-Z */
-#define ISnumstart	0x04	/* 0-9 */
-#define IShspace	0x08	/* ' ' \t */
-#define ISvspace	0x10	/* \r \n */
-#define ISspace		0x20	/* ' ' \t \r \n \f \v \0 */
-
 #define _dollar_ok(x)	((x) == '$' && CPP_OPTION (pfile, dollars_in_ident))
 
-#define is_idchar(x)	((_cpp_IStable[x] & ISidnum) || _dollar_ok(x))
-#define is_idstart(x)	((_cpp_IStable[x] & ISidstart) || _dollar_ok(x))
-#define is_numchar(x)	(_cpp_IStable[x] & ISidnum)
-#define is_numstart(x)	(_cpp_IStable[x] & ISnumstart)
-#define is_hspace(x)	(_cpp_IStable[x] & IShspace)
-#define is_vspace(x)	(_cpp_IStable[x] & ISvspace)
-#define is_nvspace(x)	((_cpp_IStable[x] & (ISspace | ISvspace)) == ISspace)
-#define is_space(x)	(_cpp_IStable[x] & ISspace)
+#define is_idchar(x)	(ISIDNUM(x) || _dollar_ok(x))
+#define is_numchar(x)	ISIDNUM(x)
+#define is_idstart(x)	(ISIDST(x) || _dollar_ok(x))
+#define is_numstart(x)	ISDIGIT(x)
+#define is_hspace(x)	ISBLANK(x)
+#define is_vspace(x)	IS_VSPACE(x)
+#define is_nvspace(x)	IS_NVSPACE(x)
+#define is_space(x)	IS_SPACE_OR_NUL(x)
 
-/* These tables are constant if they can be initialized at compile time,
+/* This table is constant if it can be initialized at compile time,
    which is the case if cpp was compiled with GCC >=2.7, or another
    compiler that supports C99.  */
 #if HAVE_DESIGNATED_INITIALIZERS
-extern const unsigned char _cpp_IStable[UCHAR_MAX + 1];
 extern const unsigned char _cpp_trigraph_map[UCHAR_MAX + 1];
 #else
-extern unsigned char _cpp_IStable[UCHAR_MAX + 1];
 extern unsigned char _cpp_trigraph_map[UCHAR_MAX + 1];
 #endif
 
diff --git a/gcc/cppinit.c b/gcc/cppinit.c
index 7e5d7f6af67f..9bed926aacbf 100644
--- a/gcc/cppinit.c
+++ b/gcc/cppinit.c
@@ -125,9 +125,6 @@ enum { QUOTE = 0, BRACKET, SYSTEM, AFTER };
    runtime.  */
 #if HAVE_DESIGNATED_INITIALIZERS
 
-#define init_IStable()  /* Nothing.  */
-#define ISTABLE __extension__ const U_CHAR _cpp_IStable[UCHAR_MAX + 1] = {
-
 #define init_trigraph_map()  /* Nothing.  */
 #define TRIGRAPH_MAP \
 __extension__ const U_CHAR _cpp_trigraph_map[UCHAR_MAX + 1] = {
@@ -137,10 +134,6 @@ __extension__ const U_CHAR _cpp_trigraph_map[UCHAR_MAX + 1] = {
 
 #else
 
-#define ISTABLE unsigned char _cpp_IStable[UCHAR_MAX + 1] = { 0 }; \
- static void init_IStable PARAMS ((void)) { \
- unsigned char *x = _cpp_IStable;
-
 #define TRIGRAPH_MAP U_CHAR _cpp_trigraph_map[UCHAR_MAX + 1] = { 0 }; \
  static void init_trigraph_map PARAMS ((void)) { \
  unsigned char *x = _cpp_trigraph_map;
@@ -150,45 +143,13 @@ __extension__ const U_CHAR _cpp_trigraph_map[UCHAR_MAX + 1] = {
 
 #endif
 
-#define A(x) s(x, ISidnum|ISidstart)
-#define N(x) s(x, ISidnum|ISnumstart)
-#define H(x) s(x, IShspace|ISspace)
-#define V(x) s(x, ISvspace|ISspace)
-#define S(x) s(x, ISspace)
-
-ISTABLE
-  A('_')
-
-  A('a') A('b') A('c') A('d') A('e') A('f') A('g') A('h') A('i')
-  A('j') A('k') A('l') A('m') A('n') A('o') A('p') A('q') A('r')
-  A('s') A('t') A('u') A('v') A('w') A('x') A('y') A('z')
-
-  A('A') A('B') A('C') A('D') A('E') A('F') A('G') A('H') A('I')
-  A('J') A('K') A('L') A('M') A('N') A('O') A('P') A('Q') A('R')
-  A('S') A('T') A('U') A('V') A('W') A('X') A('Y') A('Z')
-
-  N('1') N('2') N('3') N('4') N('5') N('6') N('7') N('8') N('9') N('0')
-
-  H(' ') H('\t')
-
-  V('\n') V('\r')
-
-  S('\0') S('\v') S('\f')
-END
-
 TRIGRAPH_MAP
   s('=', '#')	s(')', ']')	s('!', '|')
   s('(', '[')	s('\'', '^')	s('>', '}')
   s('/', '\\')	s('<', '{')	s('-', '~')
 END
 
-#undef A
-#undef N
-#undef H
-#undef V
-#undef S
 #undef s
-#undef ISTABLE
 #undef END
 #undef TRIGRAPH_MAP
 
@@ -507,11 +468,9 @@ initialize ()
   qsort (cl_options, N_OPTS, sizeof (struct cl_option), opt_comp);
 #endif
 
-  /* Set up the trigraph map and the IStable.  These don't need to do
-     anything if we were compiled with a compiler that supports C99
-     designated initializers.  */
+  /* Set up the trigraph map.  This doesn't need to do anything if we were
+     compiled with a compiler that supports C99 designated initializers.  */
   init_trigraph_map ();
-  init_IStable ();
 
   initialized = 1;
 }
diff --git a/gcc/f/ChangeLog b/gcc/f/ChangeLog
index 9ff8f3ad9966..3087b75e4399 100644
--- a/gcc/f/ChangeLog
+++ b/gcc/f/ChangeLog
@@ -1,3 +1,16 @@
+2000-12-07  Zack Weinberg  <zack@wolery.stanford.edu>
+
+	* Make-lang.in: Link f/fini with safe-ctype.o.
+	* bad.c: Don't test ISUPPER(c) || ISLOWER(c) before calling TOUPPER(c).
+	* com.c: Use TOUPPER, not ffesrc_toupper.
+	* fini.c: Don't test ISALPHA(c) before calling TOUPPER(c)/TOLOWER(c).
+	* intrin.c: Don't test IN_CTYPE_DOMAIN(c).
+	* src.c: Delete ffesrc_toupper_ and ffesrc_tolower_ and their
+	initializing code; use TOUPPER and TOLOWER instead of
+	ffesrc_toupper and ffesrc_tolower.
+	* src.h: Don't declare ffesrc_toupper_ or ffesrc_tolower_.
+	Don't define ffesrc_toupper or ffesrc_tolower.
+
 2000-11-28  Richard Henderson  <rth@redhat.com>
 
 	* com.c (ffecom_member_phase2_): Set TREE_USED on the debugging decl.
@@ -35,11 +48,11 @@ Thu Nov 23 02:18:57 2000  J"orn Rennecke <amylaar@redhat.com>
 
 Sun Nov 19 17:29:22 2000  Matthias Klose  <doko@marvin.itso-berlin.de>
 
-        * g77.texi (Floating-point precision): Adjust example
-        to work with glibc (>= 2.1).
+	* g77.texi (Floating-point precision): Adjust example
+	to work with glibc (>= 2.1).
+
+Sat Nov 18 13:54:49 2000  Matthias Klose  <doko@cs.tu-berlin.de>
 
-Sat Nov 18 13:54:49 2000  Matthias Klose  <doko@cs.tu-berlin.de> 
- 
 	* g77.texi (Floating-point Exception Handling): Adjust
 	example to work with glibc (>= 2.1).
 
@@ -149,7 +162,7 @@ Thu Oct 12 22:28:51 2000  Mark Mitchell  <mark@codesourcery.com>
 	(ffeste_R842): Likewise.
 	(ffeste_R843): Likewise.
 	(ffeste_R1001): Likewise.
-	
+
 2000-10-05  Richard Henderson  <rth@cygnus.com>
 
 	* com.c (finish_function): Don't init can_reach_end.
@@ -188,9 +201,9 @@ Sun Oct  1 11:43:44 2000  Mark Mitchell  <mark@codesourcery.com>
 	* intrin.def: Adjust DEFIMP definition of LOG10, (float) MOD.
 
 2000-08-21  Nix  <nix@esperi.demon.co.uk>
-        
-        * lang-specs.h: Do not process -o or run the assembler if
-        -fsyntax-only.  Use %j instead of /dev/null.
+
+	* lang-specs.h: Do not process -o or run the assembler if
+	-fsyntax-only.  Use %j instead of /dev/null.
 
 2000-08-21  Jakub Jelinek  <jakub@redhat.com>
 
@@ -210,7 +223,7 @@ Sun Oct  1 11:43:44 2000  Mark Mitchell  <mark@codesourcery.com>
 	* news.texi: Ditto.
 
 2000-08-11  G. Helffrich  <george@gly.bris.ac.uk>
-            Toon Moene  <toon@moene.indiv.nluug.nl>
+	    Toon Moene  <toon@moene.indiv.nluug.nl>
 
 	* com.c (ffecom_transform_equiv_): Make EQUIVALENCEs addressable
 	so that debug info can be attached to their storage.
diff --git a/gcc/f/Make-lang.in b/gcc/f/Make-lang.in
index 73f149fd5e7b..6af053630d94 100644
--- a/gcc/f/Make-lang.in
+++ b/gcc/f/Make-lang.in
@@ -137,9 +137,9 @@ f/str-op.h f/str-op.j: f/fini$(build_exeext) f/str-op.fin
 f/str-ot.h f/str-ot.j: f/fini$(build_exeext) f/str-ot.fin
 	./f/fini$(build_exeext) $(srcdir)/f/str-ot.fin f/str-ot.j f/str-ot.h
 
-f/fini$(build_exeext): f/fini.o f/proj-h.o
+f/fini$(build_exeext): f/fini.o f/proj-h.o safe-ctype.o
 	$(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o f/fini$(build_exeext) \
-		f/fini.o f/proj-h.o
+		f/fini.o f/proj-h.o safe-ctype.o
 
 f/fini.o:
 	$(HOST_CC) $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) \
diff --git a/gcc/f/bad.c b/gcc/f/bad.c
index 6f25246ab97b..f34253f7a6f4 100644
--- a/gcc/f/bad.c
+++ b/gcc/f/bad.c
@@ -457,7 +457,7 @@ ffebad_finish ()
   if (ffebad_places_ == 0)
     {
       /* Didn't output "warning:" string, capitalize it for message.  */
-      if ((s[0] != '\0') && ISALPHA (s[0]) && ISLOWER (s[0]))
+      if (s[0] != '\0')
 	{
 	  char c;
 
diff --git a/gcc/f/com.c b/gcc/f/com.c
index fbeb74b3bcef..82d99d837ed8 100644
--- a/gcc/f/com.c
+++ b/gcc/f/com.c
@@ -1840,7 +1840,7 @@ ffecom_build_f2c_string_ (int i, const char *s)
       tmp = &space[0];
 
     for (p = s, q = tmp; *p != '\0'; ++p, ++q)
-      *q = ffesrc_toupper (*p);
+      *q = TOUPPER (*p);
     *q = '\0';
 
     t = build_string (i, tmp);
diff --git a/gcc/f/fini.c b/gcc/f/fini.c
index f685df1847a2..0fabf37d9241 100644
--- a/gcc/f/fini.c
+++ b/gcc/f/fini.c
@@ -381,15 +381,9 @@ main (int argc, char **argv)
       for (i = 0; i < newname->namelen; ++i)
 	{
 	  cc = buf[i];
-	  if (ISALPHA (cc))
-	    {
-	      newname->name_uc[i] = TOUPPER (cc);
-	      newname->name_lc[i] = TOLOWER (cc);
-	      newname->name_ic[i] = cc;
-	    }
-	  else
-	    newname->name_uc[i] = newname->name_lc[i] = newname->name_ic[i]
-	      = cc;
+	  newname->name_uc[i] = TOUPPER (cc);
+	  newname->name_lc[i] = TOLOWER (cc);
+	  newname->name_ic[i] = cc;
 	}
       newname->name_uc[i] = newname->name_lc[i] = newname->name_ic[i] = '\0';
 
diff --git a/gcc/f/intrin.c b/gcc/f/intrin.c
index 2d78841a4cd2..0bc6d0e0c93a 100644
--- a/gcc/f/intrin.c
+++ b/gcc/f/intrin.c
@@ -1581,10 +1581,6 @@ ffeintrin_init_0 ()
       p3 = ffeintrin_names_[i].name_ic;
       for (; *p1 != '\0' && *p2 != '\0' && *p3 != '\0'; ++p1, ++p2, ++p3)
 	{
-	  if (! IN_CTYPE_DOMAIN (*p1)
-	      || ! IN_CTYPE_DOMAIN (*p2)
-	      || ! IN_CTYPE_DOMAIN (*p3))
-	    break;
 	  if ((ISDIGIT (*p1) || (*p1 == '_')) && (*p1 == *p2) && (*p1 == *p3))
 	    continue;
 	  if (! ISUPPER ((unsigned char)*p1) || ! ISLOWER ((unsigned char)*p2)
diff --git a/gcc/f/src.c b/gcc/f/src.c
index e434fbf95e8e..28c55cccf4fc 100644
--- a/gcc/f/src.c
+++ b/gcc/f/src.c
@@ -32,16 +32,6 @@ the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 #include "src.h"
 #include "top.h"
 
-/* This array does a toupper (), but any valid char type is valid as an
-   index and returns identity if not a lower-case character.  */
-
-char ffesrc_toupper_[256];
-
-/* This array does a tolower (), but any valid char type is valid as an
-   index and returns identity if not an upper-case character.  */
-
-char ffesrc_tolower_[256];
-
 /* This array is set up so that, given a source-mapped character, the result
    of indexing into this array will match an upper-cased character depending
    on the source-mapped character's case and the established ffe_case_match()
@@ -113,18 +103,10 @@ ffesrc_init_1 ()
       ffesrc_char_match_noninit_[i] = i;
       ffesrc_char_source_[i] = i;
       ffesrc_char_internal_init_[i] = i;
-      ffesrc_toupper_[i] = i;
-      ffesrc_tolower_[i] = i;
       ffesrc_bad_symbol_init_[i] = FFEBAD;
       ffesrc_bad_symbol_noninit_[i] = FFEBAD;
     }
 
-  for (i = 'A'; i <= 'Z'; ++i)
-    ffesrc_tolower_[i] = TOLOWER (i);
-
-  for (i = 'a'; i <= 'z'; ++i)
-    ffesrc_toupper_[i] = TOUPPER (i);
-
   ffesrc_check_symbol_ = (ffe_case_symbol () != FFE_caseNONE);
 
   ffesrc_ok_match_init_upper_ = (ffe_case_match () != FFE_caseLOWER);
@@ -230,8 +212,8 @@ ffesrc_strcmp_1ns2i (ffeCase mcase, const char *var, int len,
       for (; len > 0; --len, ++var, ++str_ic)
 	{
 	  c = ffesrc_char_source (*var);	/* Transform source. */
-	  c = ffesrc_toupper (c);	/* Upcase source. */
-	  d = ffesrc_toupper (*str_ic);	/* Upcase InitialCaps char. */
+	  c = TOUPPER (c);			/* Upcase source. */
+	  d = TOUPPER (*str_ic);		/* Upcase InitialCaps char. */
 	  if (c != d)
 	    {
 	      if ((d != '\0') && (c < d))
@@ -246,7 +228,7 @@ ffesrc_strcmp_1ns2i (ffeCase mcase, const char *var, int len,
       for (; len > 0; --len, ++var, ++str_ic)
 	{
 	  c = ffesrc_char_source (*var);	/* Transform source. */
-	  d = ffesrc_toupper (*str_ic);	/* Transform InitialCaps char. */
+	  d = TOUPPER (*str_ic);	/* Transform InitialCaps char. */
 	  if (c != d)
 	    {
 	      if ((d != '\0') && (c < d))
@@ -261,7 +243,7 @@ ffesrc_strcmp_1ns2i (ffeCase mcase, const char *var, int len,
       for (; len > 0; --len, ++var, ++str_ic)
 	{
 	  c = ffesrc_char_source (*var);	/* Transform source. */
-	  d = ffesrc_tolower (*str_ic);	/* Transform InitialCaps char. */
+	  d = TOLOWER (*str_ic);	/* Transform InitialCaps char. */
 	  if (c != d)
 	    {
 	      if ((d != '\0') && (c < d))
@@ -279,14 +261,14 @@ ffesrc_strcmp_1ns2i (ffeCase mcase, const char *var, int len,
 	  d = *str_ic;		/* No transform of InitialCaps char. */
 	  if (c != d)
 	    {
-	      c = ffesrc_toupper (c);
-	      d = ffesrc_toupper (d);
+	      c = TOUPPER (c);
+	      d = TOUPPER (d);
 	      while ((len > 0) && (c == d))
 		{		/* Skip past equivalent (case-ins) chars. */
 		  --len, ++var, ++str_ic;
 		  if (len > 0)
-		    c = ffesrc_toupper (*var);
-		  d = ffesrc_toupper (*str_ic);
+		    c = TOUPPER (*var);
+		  d = TOUPPER (*str_ic);
 		}
 	      if ((d != '\0') && (c < d))
 		return -1;
@@ -323,7 +305,7 @@ ffesrc_strcmp_2c (ffeCase mcase, const char *var, const char *str_uc,
     case FFE_caseNONE:
       for (; *var != '\0'; ++var, ++str_uc)
 	{
-	  c = ffesrc_toupper (*var);	/* Upcase source. */
+	  c = TOUPPER (*var);	/* Upcase source. */
 	  if (c != *str_uc)
 	    {
 	      if ((*str_uc != '\0') && (c < *str_uc))
@@ -349,11 +331,11 @@ ffesrc_strcmp_2c (ffeCase mcase, const char *var, const char *str_uc,
 	{
 	  if (*var != *str_ic)
 	    {
-	      c = ffesrc_toupper (*var);
+	      c = TOUPPER (*var);
 	      while ((c != '\0') && (c == *str_uc))
 		{		/* Skip past equivalent (case-ins) chars. */
 		  ++var, ++str_uc;
-		  c = ffesrc_toupper (*var);
+		  c = TOUPPER (*var);
 		}
 	      if ((*str_uc != '\0') && (c < *str_uc))
 		return -1;
@@ -393,7 +375,7 @@ ffesrc_strncmp_2c (ffeCase mcase, const char *var, const char *str_uc,
     case FFE_caseNONE:
       for (; len > 0; ++var, ++str_uc, --len)
 	{
-	  c = ffesrc_toupper (*var);	/* Upcase source. */
+	  c = TOUPPER (*var);	/* Upcase source. */
 	  if (c != *str_uc)
 	    {
 	      if (c < *str_uc)
@@ -417,12 +399,12 @@ ffesrc_strncmp_2c (ffeCase mcase, const char *var, const char *str_uc,
 	{
 	  if (*var != *str_ic)
 	    {
-	      c = ffesrc_toupper (*var);
+	      c = TOUPPER (*var);
 	      while ((len > 0) && (c == *str_uc))
 		{		/* Skip past equivalent (case-ins) chars. */
 		  --len, ++var, ++str_uc;
 		  if (len > 0)
-		    c = ffesrc_toupper (*var);
+		    c = TOUPPER (*var);
 		}
 	      if ((len > 0) && (c < *str_uc))
 		return -1;
diff --git a/gcc/f/src.h b/gcc/f/src.h
index 7ba03e0a4044..666bd853056d 100644
--- a/gcc/f/src.h
+++ b/gcc/f/src.h
@@ -33,8 +33,6 @@ the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 #include "bad.h"
 #include "top.h"
 
-extern char ffesrc_toupper_[256];
-extern char ffesrc_tolower_[256];
 extern char ffesrc_char_match_init_[256];
 extern char ffesrc_char_match_noninit_[256];
 extern char ffesrc_char_source_[256];
@@ -136,8 +134,6 @@ int ffesrc_strncmp_2c (ffeCase mcase, const char *var, const char *str_uc,
 #define ffesrc_terminate_2()
 #define ffesrc_terminate_3()
 #define ffesrc_terminate_4()
-#define ffesrc_toupper(c) (ffesrc_toupper_[(unsigned int) (c)])
-#define ffesrc_tolower(c) (ffesrc_tolower_[(unsigned int) (c)])
 
 /* End of #include file. */
 
diff --git a/gcc/fixinc/fixfixes.c b/gcc/fixinc/fixfixes.c
index 3e0d185ae16f..05e700894611 100644
--- a/gcc/fixinc/fixfixes.c
+++ b/gcc/fixinc/fixfixes.c
@@ -156,7 +156,7 @@ emit_gnu_type ( text, rm )
     char* pD = z_TYPE;
 
     while (ps < pe)
-      *(pD++) = toupper( *(pd++) = *(ps++) );
+      *(pD++) = TOUPPER( *(pd++) = *(ps++) );
 
     *pD = *pd = NUL;
   }
@@ -612,20 +612,16 @@ FIX_PROC_HEAD( wrap_fix )
                 "wrap-fix" );
 
   for (;;) {
-    char ch = *(pz_src++);
+    char ch = *pz_src++;
 
-    if (ISLOWER (ch))
-      *(pz_dst++) = TOUPPER ( ch );
-
-    else if (ISALNUM ( ch ))
-      *(pz_dst++) = ch;
-
-    else if (ch == NUL) {
-      *(pz_dst++) = ch;
+    if (ch == NUL) {
+      *pz_dst++ = ch;
       break;
+    } else if (! ISALNUM (ch)) {
+      *pz_dst++ = '_';
+    } else {
+      *pz_dst++ = TOUPPER (ch);
     }
-    else
-      *(pz_dst++) = '_';
 
     if (++len >= sizeof( z_fixname )) {
       void* p = xmalloc( len + strlen( pz_src ) + 1 );
diff --git a/gcc/fixinc/fixincl.c b/gcc/fixinc/fixincl.c
index 206b04f405c7..195dbfe4de64 100644
--- a/gcc/fixinc/fixincl.c
+++ b/gcc/fixinc/fixincl.c
@@ -771,14 +771,8 @@ extract_quoted_files (pz_data, pz_fixed_file, p_re_match)
       pz_incl_quot += p_re_match->rm_so;
 
       /*  Skip forward to the included file name */
-      while (ISSPACE (*pz_incl_quot))
+      while (*pz_incl_quot != '"')
         pz_incl_quot++;
-      /* ISSPACE() may evaluate its argument more than once!  */
-      while (++pz_incl_quot, ISSPACE (*pz_incl_quot))
-        ;
-      pz_incl_quot += sizeof ("include") - 1;
-      while (*pz_incl_quot++ != '"')
-        ;
 
       if (quoted_file_exists (pz_src_dir, pz_fixed_file, pz_incl_quot))
         {
diff --git a/gcc/fixinc/gnu-regex.c b/gcc/fixinc/gnu-regex.c
index 1c8b3a09d5e1..4b71a4dd2f9b 100644
--- a/gcc/fixinc/gnu-regex.c
+++ b/gcc/fixinc/gnu-regex.c
@@ -198,50 +198,10 @@ init_syntax_once ()
 /* GCC LOCAL: call it gnu-regex.h, not regex.h, to avoid name conflicts */
 #include "gnu-regex.h"
 
-/* isalpha etc. are used for the character classes.  */
-#include <ctype.h>
-
-/* Jim Meyering writes:
-
-   "... Some ctype macros are valid only for character codes that
-   isascii says are ASCII (SGI's IRIX-4.0.5 is one such system --when
-   using /bin/cc or gcc but without giving an ansi option).  So, all
-   ctype uses should be through macros like ISPRINT...  If
-   STDC_HEADERS is defined, then autoconf has verified that the ctype
-   macros don't need to be guarded with references to isascii. ...
-   Defining isascii to 1 should let any compiler worth its salt
-   eliminate the && through constant folding."
-   Solaris defines some of these symbols so we must undefine them first.  */
-
-#undef ISASCII
-#if defined STDC_HEADERS || (!defined isascii && !defined HAVE_ISASCII)
-# define ISASCII(c) 1
-#else
-# define ISASCII(c) isascii(c)
-#endif
-
-#ifdef isblank
-# define ISBLANK(c) (ISASCII (c) && isblank (c))
-#else
-# define ISBLANK(c) ((c) == ' ' || (c) == '\t')
-#endif
-#ifdef isgraph
-# define ISGRAPH(c) (ISASCII (c) && isgraph (c))
-#else
-# define ISGRAPH(c) (ISASCII (c) && isprint (c) && !isspace (c))
-#endif
-
-#undef ISPRINT
-#define ISPRINT(c) (ISASCII (c) && isprint (c))
-#define ISDIGIT(c) (ISASCII (c) && isdigit (c))
-#define ISALNUM(c) (ISASCII (c) && isalnum (c))
-#define ISALPHA(c) (ISASCII (c) && isalpha (c))
-#define ISCNTRL(c) (ISASCII (c) && iscntrl (c))
-#define ISLOWER(c) (ISASCII (c) && islower (c))
-#define ISPUNCT(c) (ISASCII (c) && ispunct (c))
-#define ISSPACE(c) (ISASCII (c) && isspace (c))
-#define ISUPPER(c) (ISASCII (c) && isupper (c))
-#define ISXDIGIT(c) (ISASCII (c) && isxdigit (c))
+/* ISALPHA etc. are used for the character classes.  */
+/* GCC LOCAL: use libiberty's safe-ctype.h, don't bother defining
+   wrapper macros ourselves.  */
+#include <safe-ctype.h>
 
 #ifndef NULL
 # define NULL (void *)0
@@ -5613,7 +5573,7 @@ regcomp (preg, pattern, cflags)
 
       /* Map uppercase characters to corresponding lowercase ones.  */
       for (i = 0; i < CHAR_SET_SIZE; i++)
-        preg->translate[i] = ISUPPER (i) ? tolower (i) : i;
+        preg->translate[i] = TOLOWER (i);
     }
   else
     preg->translate = NULL;
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index 9ca56a33576b..edfa93930a09 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,7 @@
+2000-12-07  Zack Weinberg  <zack@wolery.stanford.edu>
+
+	* jvgenmain.c: Use ISPRINT not isascii.
+
 2000-12-06  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 	* parse.y (end_artificial_method_body): Fixed typo.
@@ -181,7 +185,7 @@ Thu Nov 23 02:19:14 2000  J"orn Rennecke <amylaar@redhat.com>
 	is being accessed as an outer field.
 
 2000-10-29  Alexandre Petit-Bianco  <apbianco@cygnus.com>
- 
+
 	* Make-lang.in (LIBGCJ_ZIP_FILE): Define with `$(prefix)'.
 	Fixes gcj/365.
 
@@ -231,7 +235,7 @@ Thu Nov 23 02:19:14 2000  J"orn Rennecke <amylaar@redhat.com>
 2000-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
 	* gjavah.c (NEED_PEEK_ATTRIBUTE, NEED_SKIP_ATTRIBUTE): Define
-	
+
 	* jcf-reader.c (peek_attribute, skip_attribute): Only define
 	when requested.
 
@@ -299,7 +303,7 @@ Thu Nov 23 02:19:14 2000  J"orn Rennecke <amylaar@redhat.com>
 	(build_outer_field_access): Access to this$<n> built from
 	current_class, not its outer context.
 	(build_access_to_thisn): Fixed leading comment. Tidied things up.
-	(resolve_qualified_expression_name): Handle `T.this' and `T.this.f()'. 
+	(resolve_qualified_expression_name): Handle `T.this' and `T.this.f()'.
 	(patch_method_invocation): Use `is_static_flag' when already
 	initialized.
 	(patch_newarray): Removed assignment in ternary operator.
@@ -349,23 +353,23 @@ Thu Nov 23 02:19:14 2000  J"orn Rennecke <amylaar@redhat.com>
 	on local finals.
 	(java_complete_expand_methods): Loop to set
 	TYPE_HAS_FINAL_VARIABLE. Call
-	`reset_final_variable_local_assignment_flag' and 
+	`reset_final_variable_local_assignment_flag' and
 	`check_final_variable_local_assignment_flag' accordingly before
 	and after constructor expansion. Call
 	`reset_static_final_variable_assignment_flag'
-	before expanding <clinit> and after call 
+	before expanding <clinit> and after call
 	`check_static_final_variable_assignment_flag' if the
 	current_class isn't an interface. After all methods have been
 	expanded, call `check_final_variable_global_assignment_flag' and
 	`check_static_final_variable_assignment_flag' if the current class
-	is an interface. 
+	is an interface.
 	(maybe_yank_clinit): Fixed typo in comment.
 	(build_outer_field_access_methods): Removed old sanity check. Use
 	FIELD_INNER_ACCESS_P. Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
 	Don't create access methods for finals.
 	(resolve_field_access): Use `CLASS_FINAL_VARIABLE_P'.
 	(java_complete_tree): Likewise. Reset DECL_FIELD_FINAL_IUD if
-	existing DECL_INIT has been processed. 
+	existing DECL_INIT has been processed.
 	(java_complete_lhs): Likewise.
 	(check_final_assignment): Filter input on `lvalue''s TREE_CODE.
 	Test for COMPONENT_REF to get to the FIELD_DECL. Implemented new
@@ -378,7 +382,7 @@ Thu Nov 23 02:19:14 2000  J"orn Rennecke <amylaar@redhat.com>
 2000-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
 	* Make-lang.in (parse.c, parse-scan.c): Create atomically.
-	
+
 	* Makefile.in (parse.c, parse-scan.c): Likewise.
 
 2000-10-12  Mark Mitchell  <mark@codesourcery.com>
@@ -452,7 +456,7 @@ Thu Nov 23 02:19:14 2000  J"orn Rennecke <amylaar@redhat.com>
 	* typeck.c (build_java_array_type): Likewise.
 	(parse_signature_string): Likewise.
 	(build_java_signature): Likewise.
-	
+
 2000-10-12  Tom Tromey  <tromey@cygnus.com>
 
 	Fix for PR gcj/356:
@@ -591,7 +595,7 @@ Wed Sep 13 11:50:35 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 	* parse.y (goal): Add more roots.
 	(mark_parser_ctxt): New function.
 	* typeck.c: Include ggc.h.
-	
+
 2000-09-29  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 	* parse.y (maybe_yank_clinit): Also keep <clinit> if its body
@@ -659,7 +663,7 @@ Wed Sep 13 11:50:35 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 	(class_in_current_package): Likewise.
 	(argument_types_convertible): Likewise.
 	(patch_cast): Rename wfl_op parameter to avoid macro conflicts.
-	
+
 2000-09-14  Tom Tromey  <tromey@cygnus.com>
 
 	* lex.h: Use HAVE_ICONV_H, not HAVE_ICONV.
@@ -753,7 +757,7 @@ Wed Sep 13 11:50:35 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 2000-08-15  Bryce McKinlay  <bryce@albatross.co.nz>
 
-	* parse.y (do_resolve_class): Also explore superclasses of 
+	* parse.y (do_resolve_class): Also explore superclasses of
 	intermediate enclosing contexts when searching for inner classes.
 
 2000-08-11  Alexandre Petit-Bianco  <apbianco@cygnus.com>
@@ -774,7 +778,7 @@ Wed Sep 13 11:50:35 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 	a multiple-word record.
 	(get_boehm_type_descriptor): Use the procedure marking descriptor for
 	java.lang.Class.
-	
+
 2000-08-31  Mike Stump  <mrs@wrs.com>
 
 	* Make-lang.in (jc1$(exeext), gcjh$(exeext), jv-scan$(exeext),
@@ -813,7 +817,7 @@ Wed Sep 13 11:50:35 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 	combining to make a jlong. Fixes gcj/321.
 
 2000-08-21  Nix  <nix@esperi.demon.co.uk>
-        
+
 	* lang-specs.h: Do not process -o or run the assembler if
 	-fsyntax-only.
 
@@ -981,7 +985,7 @@ Sun Aug  6 00:47:24 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
 	target interface.
 
 2000-07-27  Tom Tromey  <tromey@cygnus.com>
-            Anthony Green  <green@cygnus.com>
+	    Anthony Green  <green@cygnus.com>
 	    Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 	* class.c (make_class_data): Create vtable for abstract classes.
@@ -1043,13 +1047,13 @@ Sun Aug  6 00:47:24 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
 
 2000-07-19  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
-        * parse.y (simple_name:): Reject `$' in type names.
+	* parse.y (simple_name:): Reject `$' in type names.
 	(resolve_type_during_patch): Use `type' as a second
 	argument to resolve_no_layout. Fixes gcj/257.
 
 2000-07-18  Bryce McKinlay  <bryce@albatross.co.nz>
 
-	* parse.y (find_most_specific_methods_list): Select the only 
+	* parse.y (find_most_specific_methods_list): Select the only
 	non-abstract method even if max has been set.
 	Fixes gcj/285, gcj/298.
 
@@ -1168,10 +1172,10 @@ Sun Aug  6 00:47:24 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
 
 2000-07-02  Bryce McKinlay  <bryce@albatross.co.nz>
 
-        * gjavah.c (HANDLE_METHOD): Call print_method_info with a NULL stream
-        argument on the first pass for CNI as well as JNI.
-        (print_method_info): Set up method name on the first pass only.
-	
+	* gjavah.c (HANDLE_METHOD): Call print_method_info with a NULL stream
+	argument on the first pass for CNI as well as JNI.
+	(print_method_info): Set up method name on the first pass only.
+
 2000-07-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 	* parse.y (parser_qualified_classname): Removed parameter
@@ -1295,7 +1299,7 @@ Sun Aug  6 00:47:24 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
 
 	* java-tree.h (LABEL_RETURN_LABELS, LABEL_PENDING_CHAIN):  Don't
 	define in terms of DECL_RESULT, as that fails when --enable-checking.
-	
+
 2000-06-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
 	* jcf-write.c (CHECK_PUT): Add static prototype.  Make pointer
@@ -1422,7 +1426,7 @@ Fri Jun  2 16:48:55 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 	* parse.y (resolve_field_access): Call the appropriate <clinit>
 	before accessing the length of a static array. Craft a decl for
 	the field while its time. Fixes PR gcj/129.
- 
+
 2000-05-01  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 	* parse.y (resolve_package): Correctly set `*next' (was off by
@@ -1431,7 +1435,7 @@ Fri Jun  2 16:48:55 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 Thu Apr 27 17:47:34 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
-	* jcf-parse.c (jcf_parse_source): Reset current_class and 
+	* jcf-parse.c (jcf_parse_source): Reset current_class and
  	current_function_decl to NULL before parsing a new file.
 
 Thu Apr 27 17:25:33 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
@@ -1441,11 +1445,11 @@ Thu Apr 27 17:25:33 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 2000-04-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
-        * parse.y (maybe_yank_clinit): New function.
-        (maybe_generate_pre_expand_clinit): Always link <clinit> at the
-        end of the list of methods belonging to a class.
-        (java_complete_expand_method): Check whether <clinit> is really
-        necessary and expand it accordingly.
+	* parse.y (maybe_yank_clinit): New function.
+	(maybe_generate_pre_expand_clinit): Always link <clinit> at the
+	end of the list of methods belonging to a class.
+	(java_complete_expand_method): Check whether <clinit> is really
+	necessary and expand it accordingly.
 
 2000-04-17  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
@@ -1613,8 +1617,8 @@ Mon Apr 24 14:59:36 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 2000-04-24  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
-        * parse.y (source_start_java_method): Deleted unecessary code.
-        (patch_method_invocation): Fixed comment.
+	* parse.y (source_start_java_method): Deleted unecessary code.
+	(patch_method_invocation): Fixed comment.
 
 2000-04-24  Robert Lipe <robertlipe@usa.net>
 
@@ -1690,12 +1694,12 @@ Thu Apr 20 18:20:58 2000  Jason Schroeder  <shrode@subnature.com>
 
 2000-04-17  Bryce McKinlay  <bryce@albatross.co.nz>
 
-	* gjavah.c (print_name_for_stub_or_jni): Don't prefix method names 
+	* gjavah.c (print_name_for_stub_or_jni): Don't prefix method names
 	with a newline, for CNI.
-	(print_stub_or_jni): Print a space or newline before method name for 
+	(print_stub_or_jni): Print a space or newline before method name for
 	CNI as well as JNI.
 	(print_cxx_classname): Don't write leading "::" in CNI stub method.
-	(process_file): Include gcj/cni.h if generating CNI stubs.      
+	(process_file): Include gcj/cni.h if generating CNI stubs.
 
 2000-04-16  Tom Tromey  <tromey@cygnus.com>
 
@@ -1714,7 +1718,7 @@ Thu Apr 20 18:20:58 2000  Jason Schroeder  <shrode@subnature.com>
 
 	* jcf-write.c (generate_bytecode_insns): At invokation time,
 	always relate an interface method to the type of its selector.
-	
+
 2000-04-05  Tom Tromey  <tromey@cygnus.com>
 
 	Fix for PR gcj/2:
@@ -1885,7 +1889,7 @@ Fri Mar 17 08:09:14 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 	* expr.c (java_array_data_offset): Use int_bit_position.
 	(build_newarray, build_anewarray): Use host_integerp and tree_low_cst.
 	(build_invokevirtual): Use tree_low_cst and do computations with trees.
-	
+
 2000-03-16  Tom Tromey  <tromey@cygnus.com>
 
 	* lang.c (flag_hash_synchronization): New global.
@@ -1952,8 +1956,8 @@ Tue Mar 14 17:15:41 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 2000-02-14  Andrew Haley  <aph@cygnus.com>
 
-        * check-init.c (check_init): Add new cases for unary and binary
-        tree nodes.
+	* check-init.c (check_init): Add new cases for unary and binary
+	tree nodes.
 
 2000-03-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
@@ -2004,7 +2008,7 @@ Mon Mar 13 11:36:51 2000  Hans Boehm <boehm@acm.org>
 
 	* parse.y (qualify_ambiguous_name): Properly handle expressions
 	using `null'.
-	
+
 2000-03-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 	* parse.y (check_final_assignment): Extended to process
@@ -2018,7 +2022,7 @@ Mon Mar 13 11:36:51 2000  Hans Boehm <boehm@acm.org>
 	* parse.y (patch_string): Call force_evaluation_order on the
 	completed string concatenation tree.
 	* expr.c (force_evaluation_order): Call force_evaluation_order on
-        function's arguments too.
+	function's arguments too.
 
 Mon Mar  6 18:07:07 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 
@@ -2099,7 +2103,7 @@ Thu Mar  2 15:18:33 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 	* java-tree.h (LOCAL_CLASS_P): New flag usage and macro.
 	(PURE_INNER_CLASS_DECL_P, PURE_INNER_CLASS_TYPE_P): New macros.
-	* jcf-dump.c (HANDLE_INNERCLASSES_ATTRIBUTE): New macro.  
+	* jcf-dump.c (HANDLE_INNERCLASSES_ATTRIBUTE): New macro.
 	* jcf-parse.c (HANDLE_INNERCLASSES_ATTRIBUTE): Likewise.
 	(jcf_parse): New local `current'. Load innerclasses seen in outer
 	context being processed.
@@ -2241,7 +2245,7 @@ Thu Feb 17 13:20:58 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 2000-02-16  Zack Weinberg  <zack@wolery.cumb.org>
 
 	* Makefile.in (PARSE_C, PARSE_SCAN_C): Move dependencies on
-	lex.c, lex.h, and PARSE_H to...                            
+	lex.c, lex.h, and PARSE_H to...
 	(parse.o, parse-scan.o): ...here, respectively.
 
 	* lex.c: Split out code that may trigger SIGFPE from yylex()
@@ -2275,7 +2279,7 @@ Thu Feb 17 13:20:58 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 	(jcf-dump.o, gjavah.o, jv-scan.o): Depend on version.h.
 
 	* gjavah.c: Include version.h.
-	
+
 	* jcf-dump.c: Likewise.
 
 	* jv-scan.c: Likewise.
@@ -2332,22 +2336,22 @@ Thu Feb 10 12:52:09 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 2000-02-09  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
-        * class.c (layout_class): Set and test CLASS_BEING_LAIDOUT.
-        Generate error message if circularity is detected. New static
-        local `list'.
-        * java-tree.h (CLASS_BEING_LAIDOUT): New flag usage, new macro.  *
-        * jcf-write.c (generate_bytecode_insns): Very simply handle
-        SAVE_EXPR.
-        * parse.y (java_check_circular_reference): Use
-        `cyclic_inheritance_report' during report, if necessary.
-        (java_complete_lhs): fixed comment with `THROW_EXPR:' case. Avoid
-        walking NEW_ARRAY_INIT twice.
+	* class.c (layout_class): Set and test CLASS_BEING_LAIDOUT.
+	Generate error message if circularity is detected. New static
+	local `list'.
+	* java-tree.h (CLASS_BEING_LAIDOUT): New flag usage, new macro.  *
+	* jcf-write.c (generate_bytecode_insns): Very simply handle
+	SAVE_EXPR.
+	* parse.y (java_check_circular_reference): Use
+	`cyclic_inheritance_report' during report, if necessary.
+	(java_complete_lhs): fixed comment with `THROW_EXPR:' case. Avoid
+	walking NEW_ARRAY_INIT twice.
 
 2000-02-09  Tom Tromey  <tromey@cygnus.com>
 
-        * parse.y (check_class_interface_creation): Allow inner classes to
-        be `private' or `protected', check modifiers' consistency. Prevent
-        block local classes from bearing any modifiers.
+	* parse.y (check_class_interface_creation): Allow inner classes to
+	be `private' or `protected', check modifiers' consistency. Prevent
+	block local classes from bearing any modifiers.
 
 2000-02-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
@@ -2361,30 +2365,30 @@ Thu Feb 10 12:52:09 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 	(maybe_poplevels): Remove unused variable.
 	(force_poplevels): Ditto.
 	(struct binding_level): Add comment.
-	
+
 2000-02-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
-        * jcf-write.c (generate_classfile): Don't consider
-        pre-initialization with reference value (use <clinit> instead.)
-        * parse.y (java_fix_constructors): No generated constructor for
-        interfaces.
-        (build_outer_field_access): Removed debug message.
-        (outer_field_expanded_access_p): Adapted to bytecode generation.
-        (build_outer_field_access_method): Use fix_method_argument_names.
-        (build_outer_method_access_method): Fixed indentation. Added
-        comment. Handle access method generation for static and also void
-        methods.
-        (build_access_to_thisn): Inserted debug message.
-        (maybe_build_thisn_access_method): Use fix_method_argument_names.
-        (resolve_qualified_expression_name): Fixed comment.
-        (not_accessible_p): Adapted to bytecode generation. Added comment.
-        (patch_method_invocation): Added comment.
-        (maybe_use_access_method): Fixed leading comment. Handle static
-        methods.
-        (java_complete_lhs): Don't shortcut handling of initialized upon
-        declaration String type static fields when generating bytecode.
-        (patch_unaryop): Handle outer field access when generating
-        bytecode.
+	* jcf-write.c (generate_classfile): Don't consider
+	pre-initialization with reference value (use <clinit> instead.)
+	* parse.y (java_fix_constructors): No generated constructor for
+	interfaces.
+	(build_outer_field_access): Removed debug message.
+	(outer_field_expanded_access_p): Adapted to bytecode generation.
+	(build_outer_field_access_method): Use fix_method_argument_names.
+	(build_outer_method_access_method): Fixed indentation. Added
+	comment. Handle access method generation for static and also void
+	methods.
+	(build_access_to_thisn): Inserted debug message.
+	(maybe_build_thisn_access_method): Use fix_method_argument_names.
+	(resolve_qualified_expression_name): Fixed comment.
+	(not_accessible_p): Adapted to bytecode generation. Added comment.
+	(patch_method_invocation): Added comment.
+	(maybe_use_access_method): Fixed leading comment. Handle static
+	methods.
+	(java_complete_lhs): Don't shortcut handling of initialized upon
+	declaration String type static fields when generating bytecode.
+	(patch_unaryop): Handle outer field access when generating
+	bytecode.
 
 Thu Feb  3 20:23:19 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
@@ -2400,31 +2404,31 @@ Thu Feb  3 20:23:19 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 2000-01-25  Andrew Haley  <aph@cygnus.com>
 
-        * java-except.h (struct eh_range): Add `expanded' field.
-        (maybe_start_try): Add end_pc arg.
-        (maybe_end_try): Ditto.
+	* java-except.h (struct eh_range): Add `expanded' field.
+	(maybe_start_try): Add end_pc arg.
+	(maybe_end_try): Ditto.
 	* java-tree.h (force_poplevels): new function.
-        * expr.c (expand_byte_code): Don't call maybe_start_try or
-        maybe_end_try.
-        * except.c (add_handler): Reset expanded.
-        (expand_start_java_handler): Set expanded.
-        (check_start_handlers): Don't expand a start handler that's
-        already been expanded.
-        (maybe_start_try): Add end_pc arg.  Only expand a handler which
-        ends after end_pc.
+	* expr.c (expand_byte_code): Don't call maybe_start_try or
+	maybe_end_try.
+	* except.c (add_handler): Reset expanded.
+	(expand_start_java_handler): Set expanded.
+	(check_start_handlers): Don't expand a start handler that's
+	already been expanded.
+	(maybe_start_try): Add end_pc arg.  Only expand a handler which
+	ends after end_pc.
 	(expand_end_java_handler): call force_poplevels.
 	(force_poplevels): new function.
-        * decl.c (binding_level): Add start_pc of binding level.
-        (maybe_pushlevels): Call maybe_start_try when pushing binding
-        levels.
-        (maybe_poplevels): Call maybe_end_try when popping binding levels.
-        (LARGEST_PC): Define.
-        (clear_binding_level): Use LARGEST_PC.
+	* decl.c (binding_level): Add start_pc of binding level.
+	(maybe_pushlevels): Call maybe_start_try when pushing binding
+	levels.
+	(maybe_poplevels): Call maybe_end_try when popping binding levels.
+	(LARGEST_PC): Define.
+	(clear_binding_level): Use LARGEST_PC.
 
 	* java-tree.h (DEBUG_JAVA_BINDING_LEVELS): new define.
 	* decl.c (DEBUG_JAVA_BINDING_LEVELS): new define.
 	(binding_depth, is_class_level, current_pc): new variables.
-        (struct binding_level): ditto.
+	(struct binding_level): ditto.
 	(indent): new function.
 	(push_jvm_slot): add debugging info.
 	(maybe_pushlevels): ditto.
@@ -2433,11 +2437,11 @@ Thu Feb  3 20:23:19 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 	(poplevel): ditto.
 	(start_java_method): ditto.
 	(give_name_to_locals): comment only.
-	* except.c (binding_depth, is_class_level, current_pc): 
+	* except.c (binding_depth, is_class_level, current_pc):
 	new variables.
 	(expand_start_java_handler): add debugging info.
 	(expand_end_java_handler): ditto.
-	
+
 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
 	* gjavah.c (overloaded_jni_method_exists_p): Add prototype.
@@ -2483,7 +2487,7 @@ Wed Feb  2 18:43:37 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 	(patch_return): Forbid return in instance initializers.
 	(patch_throw_statement): Enforce exception handling in the context
 	of instance initializers.
-	
+
 2000-02-03  Tom Tromey  <tromey@cygnus.com>
 
 	* Make-lang.in (java.mostlyclean): Remove executables in
@@ -2565,7 +2569,7 @@ Tue Feb  1 14:59:35 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 	(SKIP_THIS_AND_ARTIFICIAL_PARMS): Use DECL_FINIT_P.
 	(AIPL_FUNCTION_FINIT_INVOCATION): Replaces
 	AIPL_FUNCTION_COMPLETED_INVOCATION.
-	(AIPL_FUNCTION_CTOR_INVOCATION): Replaces 
+	(AIPL_FUNCTION_CTOR_INVOCATION): Replaces
 	AIPL_FUNCTION_INVOCATION_READY.
 	(AIPL_FUNCTION_DECLARATION): New enum entry.
 	* parse.y (reorder_static_initialized): New function.
@@ -2591,7 +2595,7 @@ Tue Feb  1 14:59:35 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 	(fix_constructors): Don't patch constructor parameters list.
 	(patch_method_invocation): Use new AIPL enum values. Reverse
 	alias initializer list for anonymous classes.
-	
+
 2000-01-30  Anthony Green  <green@redhat.com>
 
 	* jcf-write.c (generate_bytecode_insns): Use TYPE_IS_WIDE to
@@ -2671,9 +2675,9 @@ Fri Jan 28 20:10:57 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 2000-01-27  Andrew Haley  <aph@cygnus.com>
 
-        * jcf-write.c (emit_goto): RESERVE 3 bytes for insn.
-        (emit_if): Ditto.
-        (emit_jsr): Ditto.
+	* jcf-write.c (emit_goto): RESERVE 3 bytes for insn.
+	(emit_if): Ditto.
+	(emit_jsr): Ditto.
 
 2000-01-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
@@ -2724,7 +2728,7 @@ Fri Jan 28 20:10:57 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 	* xref.h: Likewise.
 	* zextract.c: Likewise.
 	* zipfile.h: Likewise.
-	
+
 2000-01-18  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 	* class.c (make_class): Use MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC.
@@ -2779,7 +2783,7 @@ Fri Jan 28 20:10:57 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 	* typeck.c (build_java_signature): Use TYPE_SIGNATURE and
 	MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC.
 	(set_java_signature): Likewise.
-	
+
 Mon Jan 18 14:30:09 2000  Joerg Brunsmann  <joerg.brunsmann@fernuni-hagen.de>
 
 	* gjavah.c: Delete ACC_VISIBILITY define.
@@ -2850,7 +2854,7 @@ Fri Jan 14 00:14:24 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
  	constructors.
 	(search_loop): Use FOR_LOOP_P.
 	(labeled_block_contains_loop_p): Likewise.
-	
+
 Wed Jan 12 00:38:47 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 	* class.c (set_super_info): Set CLASS_STATIC when appropriate.
@@ -2861,7 +2865,7 @@ Wed Jan 12 00:38:47 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 	(layout_class_method): Use ID_FINIT_P, DECL_CLINIT_P and
  	ID_INIT_P.
 	* decl.c (access0_identifier_node): New global.
-	(init_decl_processing): access0_identifier_node initialized. 
+	(init_decl_processing): access0_identifier_node initialized.
 	(pushdecl): Set DECL_CONTEXT only on non type decls.
 	* expr.c (lookup_field): Lookup inner class fields in enclosing
  	contexts.
@@ -2895,7 +2899,7 @@ Wed Jan 12 00:38:47 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 	(GET_CPC_LIST, CPC_INNER_P, GET_CPC, GET_CPC_UN, GET_CPC_UN_MODE,
  	GET_CPC_DECL_NODE, GET_ENCLOSING_CPC, GET_NEXT_ENCLOSING_CPC,
  	GET_ENCLOSING_CPC_CONTEXT): New macros.
-	(PUSH_CPC, PUSH_ERROR, POP_CPC): New macros.	
+	(PUSH_CPC, PUSH_ERROR, POP_CPC): New macros.
 	(do_resolve_class): Added extra argument in prototype.
 	* parse.y (resolve_class): Added extra argument in prototype.
 	(maybe_create_class_interface_decl): Likewise.
@@ -2957,7 +2961,7 @@ Wed Jan 12 00:38:47 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
  	parser context when processing an inner class. Push the
  	initialized fields list. raw_name added as an extra argument to
  	maybe_create_class_interface_decl. Add the private this$<n>
- 	field. 
+ 	field.
 	(duplicate_declaration_error_p): Use GET_CPC when calling find_field.
 	(register_fields): Get the class type from GET_CPC and handle
  	previous errors.  Added code to handle the creation of static
@@ -3026,7 +3030,7 @@ Wed Jan 12 00:38:47 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 	(check_thrown_exceptions): Use DECL_FINIT_P and DECL_INIT_P.
 	* verify.c (verify_jvm_instructions): Use ID_CLINIT_P and
  	ID_INIT_P.
-	
+
 2000-01-16  Anthony Green  <green@cygnus.com>
 
 	* parse.y (build_string_concatenation): Only use
@@ -3062,7 +3066,7 @@ Thu Jan  6 00:54:10 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 	* jcf-write.c (generate_bytecode_conditional): Fixed indentation in
 	method invocation and typo in conditional expression.
-        (generate_bytecode_insns): COND_EXPR can be part of a binop. Issue
+	(generate_bytecode_insns): COND_EXPR can be part of a binop. Issue
  	the appropriate NOTE_POP.
 	* parse.y (patch_binop): Shift value mask to feature the right
  	type.
@@ -3092,7 +3096,7 @@ Thu Jan  6 00:54:10 2000  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 	* jcf-parse.c (yyparse): Likewise.
 
 	* jv-scan.c (main): Likewise.
-	
+
 1999-12-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
 	* parse.h (ABSTRACT_CHECK, JCONSTRUCTOR_CHECK,
@@ -3147,8 +3151,8 @@ Fri Dec 24 00:25:29 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 	(java_debug_context_do): New prototype and function.
 	(java_debug_context): Likewise.
 	(do_resolve_class): Use already parsed package names to qualify
- 	and lookup class candidate. 
-	(java_pre_expand_clinit): Removed unnecessary local variable.	
+ 	and lookup class candidate.
+	(java_pre_expand_clinit): Removed unnecessary local variable.
 
 1999-12-17  Tom Tromey  <tromey@cygnus.com>
 
@@ -3162,7 +3166,7 @@ Thu Dec 16 00:09:45 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
  	attempting to use it.
 	(expand_java_field_op): Allow final field assignments to take
  	place in $finit$.
-	* typeck.c (convert): Return error_mark_node if expr is null. 
+	* typeck.c (convert): Return error_mark_node if expr is null.
 
 1999-12-14  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
@@ -3188,7 +3192,7 @@ Thu Dec 16 00:09:45 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 	decl argument instead of current_class.
 	* typeck.c (lookup_java_method): Take WFLs in method names into
 	account.
-	
+
 Tue Dec 14 14:20:16 1999  Per Bothner  <per@bothner.com>
 
 	* class.c (make_class_data): flag_keep_inline_functions to keep
@@ -3197,12 +3201,12 @@ Tue Dec 14 14:20:16 1999  Per Bothner  <per@bothner.com>
 1999-12-15  Anthony Green  <green@cygnus.com>
 
 	* check-init.c (check_init): Take into account both types of
-        `throw's when checking for uninitialized variables.
+	`throw's when checking for uninitialized variables.
 
 Fri Dec 10 21:53:45 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
-        * parse.y (java_complete_lhs): Force convertion of array
-        dimensions to int_type_node, that's what runtime's ABI expects.
+	* parse.y (java_complete_lhs): Force convertion of array
+	dimensions to int_type_node, that's what runtime's ABI expects.
 
 Fri Dec 10 16:13:48 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
@@ -3216,16 +3220,16 @@ Fri Dec 10 16:13:48 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 	decl.c (init_decl_processing): Add _Jv_Sjlj_Throw.
 	expr.c (build_java_athrow): Add support for sjlj-exceptions.
 	java-tree.h: Ditto.
-	jcf-write.c: Ditto.	
+	jcf-write.c: Ditto.
 
 Wed Dec  8 15:33:26 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
-        * expr.c (java_lang_expand_expr): Switch to permanent obstack
-        before calling expand_eh_region_start and expand_start_all_catch.
-        * except.c (expand_start_java_handler): Switch to permanent
-        obstack before calling expand_eh_region_start.
-        (expand_end_java_handler): Switch to permanent obstack before
-        calling expand_start_all_catch.
+	* expr.c (java_lang_expand_expr): Switch to permanent obstack
+	before calling expand_eh_region_start and expand_start_all_catch.
+	* except.c (expand_start_java_handler): Switch to permanent
+	obstack before calling expand_eh_region_start.
+	(expand_end_java_handler): Switch to permanent obstack before
+	calling expand_start_all_catch.
 
 1999-12-5  Anthony Green  <green@cygnus.com>
 
@@ -3236,24 +3240,24 @@ Wed Dec  8 15:33:26 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 Wed Dec  1 04:25:06 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
-        * except.c (expand_end_java_handler): Call
-        expand_resume_after_catch and end_catch_handler.
+	* except.c (expand_end_java_handler): Call
+	expand_resume_after_catch and end_catch_handler.
 
 Tue Nov 30 12:36:15 1999  Anthony Green  <green@cygnus.com>
 
-        * verify.c (verify_jvm_instructions): Create new return label
-        chain if non existant (don't rely on the verified state of the jsr
-        target.)
+	* verify.c (verify_jvm_instructions): Create new return label
+	chain if non existant (don't rely on the verified state of the jsr
+	target.)
 
 Tue Nov 30 12:28:34 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
-        * jcf-write.c (generate_bytecode_insns): Fixed indentation for
-        COMPOUND_EXPR and FIX_TRUNC_EXPR cases.
+	* jcf-write.c (generate_bytecode_insns): Fixed indentation for
+	COMPOUND_EXPR and FIX_TRUNC_EXPR cases.
 
-        * parse.y (patch_assignment): Removed bogus final class test on
-        lhs when checking on whether to emit an ArrayStoreException runtime
-        check.
-        * expr.c (expand_java_arraystore): Likewise. 
+	* parse.y (patch_assignment): Removed bogus final class test on
+	lhs when checking on whether to emit an ArrayStoreException runtime
+	check.
+	* expr.c (expand_java_arraystore): Likewise.
 
 1999-11-28 Anthony Green <green@cygnus.com>
 
@@ -3262,9 +3266,9 @@ Tue Nov 30 12:28:34 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 Wed Nov 24 17:33:26 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
-        * jcf-parse.c (saw_java_source): Global variable removed.
-        (read_class): Don't use `saw_java_source'. Added extra braces.
-        (yyparse): Code setting `saw_java_source' removed.
+	* jcf-parse.c (saw_java_source): Global variable removed.
+	(read_class): Don't use `saw_java_source'. Added extra braces.
+	(yyparse): Code setting `saw_java_source' removed.
 
 1999-11-24  Mark Mitchell  <mark@codesourcery.com>
 
@@ -3272,8 +3276,8 @@ Wed Nov 24 17:33:26 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 Tue Nov 23 17:29:40 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
-        * verify.c (merge_type_state): Non verified subroutines being
-        considered more than once to trigger passive type merge.
+	* verify.c (merge_type_state): Non verified subroutines being
+	considered more than once to trigger passive type merge.
 
 Tue Nov 23 10:55:18 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
@@ -3306,7 +3310,7 @@ Wed Nov 17 21:09:28 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 Thu Nov 11 01:57:14 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
-        * parse.y (lookup_method_invoke): Use lang_printable_name to
+	* parse.y (lookup_method_invoke): Use lang_printable_name to
  	reliably build the type name during error report. Fixes PR gcj/97.
 
 1999-11-09  Tom Tromey  <tromey@cygnus.com>
@@ -3331,7 +3335,7 @@ Thu Nov  4 16:27:01 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 	* parse.y (resolve_qualified_expression_name): Handle PLUS_EXPR.
 	(qualify_ambiguous_name): Likewise.
-	
+
 Wed Nov  3 15:20:02 MST 1999  Godmar Back <gback@cs.utah.edu>
 
 	* typeck.c: (lookup_java_method):  search all inherited
@@ -3342,7 +3346,7 @@ Mon Nov  1 23:42:00 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 	* parse.y (method_header:): Issue error message for rule `type
  	error'.
 	(synchronized:): Error report when not using synchronized.
-	
+
 Mon Nov  1 01:32:48 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 	* parse.y (resolve_qualified_expression_name): Prevent `this' from
@@ -3512,7 +3516,7 @@ Thu Sep 16 15:42:39 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 	* jcf-io.c (open_in_zip, find_class): Use xstrdup, not strdup.
 
 	* jcf-parse.c (jcf_out_of_synch, yyparse): Likewise.
-	
+
 	* jcf-path.c (add_entry): Likewise.
 
 	* jcf.h (ALLOC, REALLOC): Use xmalloc/xrealloc, not malloc/realloc.
@@ -3550,7 +3554,7 @@ Sun Sep 12 23:30:09 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 	(main_class_name, jvgenmain_spec, lang_specific_driver):
 	Constify a char*.
 	(lang_specific_driver): All calls to the function pointer
-	parameter now explicitly call `fatal'. 
+	parameter now explicitly call `fatal'.
 
 Sat Sep 11 16:46:44 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
@@ -3749,24 +3753,24 @@ Wed Aug 18 13:17:15 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 Tue Aug 17 22:51:44 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
-        * parse.y (java_refold): Added prototype.
+	* parse.y (java_refold): Added prototype.
 
 Tue Aug 17 21:48:41 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
-        * parse.y (BINOP_COMPOUND_CANDIDATES): New macro.
-        (java_stabilize_reference): Removed unnecessary `else'.
-        (java_complete_lhs): Set flag to remember boolean. Call
-        java_refold. Added comments.
-        (java_decl_equiv): New function.
-        (binop_compound_p): Likewise.
-        (java_refold): Likewise.
-        (patch_unaryop): Striped static field access assigned to decl and
-        op. Changed promotion scheme for ++/-- operators.
-        (search_loop): New function.
-        (labeled_block_contains_loop_p): Likewise.
-        (patch_loop_statement): Call labeled_block_contains_loop_p. Added
-        comment.
-        (patch_bc_statement): Call search_loop. Fixed comment.
+	* parse.y (BINOP_COMPOUND_CANDIDATES): New macro.
+	(java_stabilize_reference): Removed unnecessary `else'.
+	(java_complete_lhs): Set flag to remember boolean. Call
+	java_refold. Added comments.
+	(java_decl_equiv): New function.
+	(binop_compound_p): Likewise.
+	(java_refold): Likewise.
+	(patch_unaryop): Striped static field access assigned to decl and
+	op. Changed promotion scheme for ++/-- operators.
+	(search_loop): New function.
+	(labeled_block_contains_loop_p): Likewise.
+	(patch_loop_statement): Call labeled_block_contains_loop_p. Added
+	comment.
+	(patch_bc_statement): Call search_loop. Fixed comment.
 
 1999-08-14  Anthony Green  <green@cygnus.com>
 
@@ -3842,7 +3846,7 @@ Tue Aug	10 00:28:31 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
 	static prototypes.
 	(put_decl_string, lang_print_error): Constify a char*.
 	(lang_init): Remove redundant extern prototype.
-	
+
 	* mangle.c (emit_unicode_mangled_name): Constify a char*.
 
 	* typeck.c (convert_ieee_real_to_integer, parse_signature_type):
@@ -3855,7 +3859,7 @@ Tue Aug	10 00:28:31 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
 	(verify_jvm_instructions): Constify a char*.
 
 	* xref.c (xref_flag_value): Likewise.
-	
+
 	* xref.h (xref_flag_value): Likewise.
 
 	* zextract.c (makeword, makelong): Add static prototypes.
@@ -3863,12 +3867,12 @@ Tue Aug	10 00:28:31 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
 
 1999-08-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-        * lang.c (java_dummy_print): Constify a char*.
-        (lang_print_error): Likewise.
-        (lang_init): Remove redundant prototype for `print_error_function'.
-        (lang_init_source): Likewise.
-        (lang_identify): Constify a char*.
-	
+	* lang.c (java_dummy_print): Constify a char*.
+	(lang_print_error): Likewise.
+	(lang_init): Remove redundant prototype for `print_error_function'.
+	(lang_init_source): Likewise.
+	(lang_identify): Constify a char*.
+
 1999-08-09  Tom Tromey  <tromey@cygnus.com>
 
 	* javaop.h (WORD_TO_FLOAT): only inline if building with gcc.
@@ -4003,29 +4007,29 @@ Thu Jul 22 12:41:12 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 1999-07-15  Andrew Haley  <aph@cygnus.com>
 
-        * lang.c (flag_use_divide_subroutine): New variable.
-        * typeck.c: (convert_ieee_real_to_integer): Bounds check
-        fp-to-integer conversion.
-        (convert): Call convert_ieee_real_to_integer when flag_fast_math
-        is not set.
-
-        * expr.c (build_java_soft_divmod): New function.
-        (build_java_binop): Call build_java_soft_divmod if
-        flag_use_divide_subroutine is set.
-        * decl.c: soft_idiv_node, soft_irem_node, soft_ldiv_node, tree
-        soft_lrem_node: new builtin functions.
-        (init_decl_processing) Initialize the new builtins.
-        * java-tree.h soft_idiv_node, soft_irem_node, soft_ldiv_node, tree
-        soft_lrem_node: new builtin functions.
-        (build_java_soft_divmod): New function.
-        * parse.y: Call build_java_soft_divmod if
-        flag_use_divide_subroutine is set.
-        * parse.c: Rebuilt.
-
-        * jvspec.c (lang_specific_driver): Always allow an extra arg (for
-        a --specs= arg) even if not linking.
-        * lang-options.h (DEFINE_LANG_NAME ("Java")): Add
-        -fuse-divide-subroutine
+	* lang.c (flag_use_divide_subroutine): New variable.
+	* typeck.c: (convert_ieee_real_to_integer): Bounds check
+	fp-to-integer conversion.
+	(convert): Call convert_ieee_real_to_integer when flag_fast_math
+	is not set.
+
+	* expr.c (build_java_soft_divmod): New function.
+	(build_java_binop): Call build_java_soft_divmod if
+	flag_use_divide_subroutine is set.
+	* decl.c: soft_idiv_node, soft_irem_node, soft_ldiv_node, tree
+	soft_lrem_node: new builtin functions.
+	(init_decl_processing) Initialize the new builtins.
+	* java-tree.h soft_idiv_node, soft_irem_node, soft_ldiv_node, tree
+	soft_lrem_node: new builtin functions.
+	(build_java_soft_divmod): New function.
+	* parse.y: Call build_java_soft_divmod if
+	flag_use_divide_subroutine is set.
+	* parse.c: Rebuilt.
+
+	* jvspec.c (lang_specific_driver): Always allow an extra arg (for
+	a --specs= arg) even if not linking.
+	* lang-options.h (DEFINE_LANG_NAME ("Java")): Add
+	-fuse-divide-subroutine
 
 Tue Jul 20 13:20:05 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
@@ -4034,11 +4038,11 @@ Tue Jul 20 13:20:05 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
  	compatibility.
 	(check_thrown_exceptions): Reject exceptions thrown in
  	initializer. Error message tuned.
-	
+
 1999-07-14  Andrew Haley  <aph@cygnus.com>
 
-        * expr.c (expand_expr): Do not return the last statement in a
-        block as the block's value.
+	* expr.c (expand_expr): Do not return the last statement in a
+	block as the block's value.
 
 Sat Jul  3 22:26:32 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
@@ -4099,7 +4103,7 @@ Wed Jun 23 14:37:15 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
  	compiling to class file a void method with an empty method body.
   	As a side effect, the bytecode backend will generate the
  	appropriate `return' instruction.
-	
+
 Tue Jun 22 20:43:49 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 	* parse.y (lookup_package_type_and_set_next): New function prototype.
@@ -4113,17 +4117,17 @@ Tue Jun 22 20:43:49 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 1999-06-21  Andrew Haley  <aph@cygnus.com>
 
-        * except.c (find_handler_in_range): The upper limit for exception
-        ranges is exclusive, not inclusive: (start <= pc < end).  
-        (link_handler): find child pointer which points to outer by
-        searching sibling list: previous code incorrectly assumed that
-        outer->outer->first_child must point to outer.
-        * verify.c (verify_jvm_instructions): FIXME added to code for
-        `athrow'.
-        (verify_jvm_instructions): Do not assume that the last block
-        processed in a subroutine is a block which ends with a `ret'
-        instruction.  With some control flows it is possible that the last
-        block ends with an `athrow'.
+	* except.c (find_handler_in_range): The upper limit for exception
+	ranges is exclusive, not inclusive: (start <= pc < end).
+	(link_handler): find child pointer which points to outer by
+	searching sibling list: previous code incorrectly assumed that
+	outer->outer->first_child must point to outer.
+	* verify.c (verify_jvm_instructions): FIXME added to code for
+	`athrow'.
+	(verify_jvm_instructions): Do not assume that the last block
+	processed in a subroutine is a block which ends with a `ret'
+	instruction.  With some control flows it is possible that the last
+	block ends with an `athrow'.
 
 Mon Jun 14 13:13:39 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
@@ -4183,9 +4187,9 @@ Wed Jun  2 10:35:13 1999  Anthony Green  <green@cygnus.com>
 
 Fri May 28 18:22:45 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
-        * parse.y (lookup_field_wrapper): Unified returned value to NULL
-          or the searched field decl.
-	
+	* parse.y (lookup_field_wrapper): Unified returned value to NULL
+	  or the searched field decl.
+
 Fri May 28 11:34:05 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 	* parse.y (fold_constant_for_init): Convert numerical constant
@@ -4211,19 +4215,19 @@ Wed May 26 15:33:06 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
  	CONVERT_EXPR might specify a type as a WFL.
 
 Tue May 25 15:06:13 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
- 
-        * parse.y (patch_assignment): Save the rhs before using it as an
-        argument to _Jv_CheckArrayStore.
- 
+
+	* parse.y (patch_assignment): Save the rhs before using it as an
+	argument to _Jv_CheckArrayStore.
+
 Tue May 25 11:23:59 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 	* lex.c (java_parse_doc_section): Fixed `tag' buffer size.
 
 Mon May 24 13:26:00 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
-        * lex.c (java_lex): Accepts `+' or `-' after the beginning of a
-        floating point litteral only when the exponent indicator has been
-        parsed.
+	* lex.c (java_lex): Accepts `+' or `-' after the beginning of a
+	floating point litteral only when the exponent indicator has been
+	parsed.
 
 Sat May 22 13:54:41 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
@@ -4332,12 +4336,12 @@ Thu May 13 13:23:38 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 	* xref.c (xref_get_data): New function, defined.
 	* xref.h (xref_get_data): New function, declared.
 	(XREF_GET_DATA): Use xref_get_data.
-	
+
 1999-05-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-        * gjavah.c (print_include): Cast the result of `strlen' to int
-        when comparing against a signed value.
-        (add_namelet): Likewise.
+	* gjavah.c (print_include): Cast the result of `strlen' to int
+	when comparing against a signed value.
+	(add_namelet): Likewise.
 
 1999-05-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
@@ -4356,10 +4360,10 @@ Thu May 13 13:23:38 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 1999-05-11  Andrew Haley  <aph@cygnus.com>
 
-        * parse.y (source_end_java_method): If the current method contains
-        any exception handlers, force asynchronous_exceptions: this is
-        necessary because signal handlers in libjava may throw exceptions.
-        * decl.c (end_java_method): Ditto.
+	* parse.y (source_end_java_method): If the current method contains
+	any exception handlers, force asynchronous_exceptions: this is
+	necessary because signal handlers in libjava may throw exceptions.
+	* decl.c (end_java_method): Ditto.
 
 1999-05-11  Tom Tromey  <tromey@cygnus.com>
 
@@ -4428,7 +4432,7 @@ Fri Apr 30 17:54:40 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 	* lang-options.h: Added `-Wredundant-modifers' and
 	`-Wunusupported-jdk11' flags and help text.
 	* lang.c (lang_decode_option): Added support for
- 	`-Wunsupported-jdk11' and `-Wredundant-modifiers'. 
+ 	`-Wunsupported-jdk11' and `-Wredundant-modifiers'.
 	flag_static_local_jdk11 and flag_redundant set accordingly.
 	* lex.c (java_lex): Call BUILD_OPERATOR on CCB_TK.
 	* parse.h (EXPR_WFL_ADD_COL): New macro.
@@ -4517,7 +4521,7 @@ Wed Apr 21 11:13:36 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 	(java_expand_classes): Abort if errors were encountered.
 	(java_complete_lhs): If the cross reference flag is set, wrap
  	field DECL node around a WFL when resolving expression name.
-	
+
 Mon Apr 19 14:44:48 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 	* lang.c (lang_decode_option): Fixed returned value when parsing
@@ -4564,8 +4568,8 @@ Tue Apr  6 23:15:52 1999  Jeffrey A Law  (law@cygnus.com)
 
 Tue Apr  6 15:15:51 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
-        * parse.y (patch_assignment): Added ArrayStoreException runtime
-        check.
+	* parse.y (patch_assignment): Added ArrayStoreException runtime
+	check.
 
 1999-04-06  Per Bothner  <bothner@cygnus.com>
 
@@ -4584,7 +4588,7 @@ Mon Apr  5 16:06:09 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 	* gjavah.c: Include math.h earlier.  Include tree.h/java-tree.h.
 	(main_jcf): Don't define.
 	(process_file): Don't set `main_jcf'.
-	
+
 	* java-tree.h (main_jcf): Don't declare.
 
 	* jcf-parse.c (main_jcf): Add static definition.
@@ -4593,26 +4597,26 @@ Mon Apr  5 16:06:09 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
 Mon Apr  5 15:43:51 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-        * class.c (add_method_1): Cast the argument of `bzero' to PTR.
+	* class.c (add_method_1): Cast the argument of `bzero' to PTR.
 
-        * decl.c (copy_lang_decl): Likewise for `bcopy'.
+	* decl.c (copy_lang_decl): Likewise for `bcopy'.
 
-        * jcf-depend.c: Include "config.h", not <config.h>.
+	* jcf-depend.c: Include "config.h", not <config.h>.
 
-        * jcf-parse.c (jcf_figure_file_type): Cast the arguments of
+	* jcf-parse.c (jcf_figure_file_type): Cast the arguments of
 	`bcopy' to PTR.
 
-        * jcf-path.c: Include "config.h", not <config.h>.
+	* jcf-path.c: Include "config.h", not <config.h>.
 
-        * lex.c: Don't include various system header files.
+	* lex.c: Don't include various system header files.
 	(java_init_lex): Cast the argument of `bzero' to PTR
 
-        * parse-scan.y (java_push_parser_context): Likewise.
+	* parse-scan.y (java_push_parser_context): Likewise.
 
-        * parse.y (java_push_parser_context): Likewise.
+	* parse.y (java_push_parser_context): Likewise.
 	(patch_bc_statement): Match format specifier to variable argument.
 
-        * xref.c: Don't include <stdio.h>.
+	* xref.c: Don't include <stdio.h>.
 
 Mon Apr  5 11:24:19 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
@@ -4634,10 +4638,10 @@ Mon Apr  5 11:24:19 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 Wed Mar 31 11:00:32 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-        * Makefile.in (keyword.h): Generate using gperf language 'C', not
-        'KR-C', so gperf uses the `const' keyword on strings.
+	* Makefile.in (keyword.h): Generate using gperf language 'C', not
+	'KR-C', so gperf uses the `const' keyword on strings.
 
-        * keyword.gperf (java_keyword): Const-ify a char*.
+	* keyword.gperf (java_keyword): Const-ify a char*.
 
 Tue Mar 30 11:31:53 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
@@ -4659,7 +4663,7 @@ Sun Mar 28 22:12:10 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 	* lex.c: Fix comment so as not to contain an embedded `/*'.
 
 	* verify.c (verify_jvm_instructions): Remove unused variable
-	`self_type'.	
+	`self_type'.
 
 Sat Mar 27 15:49:18 1999  Per Bothner  <bothner@cygnus.com>
 
@@ -4742,7 +4746,7 @@ Tue Mar 23 10:05:27 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 	Ensure calls to `build_wfl_node' pass the proper arguments.
 	(create_class): Remove unused variable `super_decl'.
 	(get_printable_method_name): Initialize variable `name'.
-	
+
 Mon Mar 22 20:14:26 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 	* Changelog: Fixed 1999-03-22 typos.
@@ -4836,7 +4840,7 @@ Sun Mar 21 08:30:30 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 	parse_class_file): Add static prototype.
 	(find_in_current_zip): Match definition to existing static
 	prototype.
-	
+
 	* jcf-write.c: Include jcf.h before tree.h/java-tree.h.
 	(alloc_chunk, append_chunk, append_chunk_copy, gen_jcf_label,
 	finish_jcf_block, define_jcf_label, get_jcf_label_here,
@@ -4860,7 +4864,7 @@ Sun Mar 21 08:30:30 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 	* lex.c (java_parse_escape_sequence): Add static prototype.
   	(java_allocate_new_line): Match definition to existing static
  	prototype.
-	
+
 	* mangle.c Include tree.h/java-tree.h.
 	(unicode_mangling_length, emit_unicode_mangled_name,
 	append_gpp_mangled_name, append_gpp_mangled_classtype): Const-ify.
@@ -4873,7 +4877,7 @@ Sun Mar 21 08:30:30 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 	prototypes.
 
 	* zipfile.h (opendir_in_zip, open_in_zip): Prototype.
-	
+
 1999-03-19  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 	* parse.y (find_applicable_accessible_methods_list): Extend the
@@ -4960,7 +4964,7 @@ Fri Mar 12 19:42:55 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 	against one.  Likewise for a jlong.
 	(add_namelet): Likewise cast a `sizeof' to an int when comparing
 	against a signed quantity.
-	
+
 	* jcf-dump.c (print_signature_type): Remove unused variable `digit'.
 	(print_signature): Don't needlessly dereference variable `str'
 
@@ -4981,17 +4985,17 @@ Fri Mar 12 19:42:55 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 1999-03-12  Andrew Haley  <aph@cygnus.com>
 
 	* jcf-path.c (add_entry): alloca len+2 rather than len+1 bytes;
-        we'll need a directory separator and a null character.
+	we'll need a directory separator and a null character.
 
 Wed Mar 10 23:20:11 1999  Per Bothner  <bothner@cygnus.com>
 
 	* jcf-write.c (generate_bytecode_insns):  Handle __builtin_fmod, for %.
 
   Tue Mar  9 11:52:08 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
-  
+
  	* parse.y (method_header): Don't set ACC_ABSTRACT flags on
   	interfaces.
-  
+
 Fri Mar  5 15:17:29 1999  Per Bothner  <bothner@cygnus.com>
 
 	* lex.c (java_parse_end_comment):  Take extra parameter (next char).
@@ -5039,7 +5043,7 @@ Sat Mar  6 11:17:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 	(find_in_current_zip): Likewise.  Also remove unused parameter,
 	all callers changed.
 	(read_class): Initialize variable `saved_pos'.
-	
+
 	* jcf-reader.c (jcf_parse_preamble): Mark variables
 	`minor_version' and `major_version' with ATTRIBUTE_UNUSED.
 
@@ -5171,14 +5175,14 @@ Fri Feb 19 15:35:01 1999  Per Bothner  <bothner@cygnus.com>
 
 	* parse.y (java_complete_lhs):  Ignore an empty statement in a
 	COMPOUND_EXPR.  Don't complain about empty statement after return.
-	
+
 Fri Feb 19 13:00:56 1999  Per Bothner  <bothner@cygnus.com>
 
 	* parse.y (obtain_incomplete_type):  Don't wrap unknown types
 	in TREE_LIST - just chain the POINTER_TYPEs together.
 	(resolve_class):  If type already resolved, return decl.
 	After resolving, update TREE_TYPE(class_type), and name (if array).
-	* parse.h (do_resolve_class), parse.y:  Make non-static.	
+	* parse.h (do_resolve_class), parse.y:  Make non-static.
 	* class.c (maybe_layout_super_class):  Take this_class argument.
 	Do do_resolve_class if necessary.
 	(layout_class, layout_class_methods): Adjust calls appropriately.
@@ -5219,18 +5223,18 @@ Wed Feb  3 12:38:43 1999  Per Bothner  <bothner@cygnus.com>
 1999-02-17  Andrew Haley  <aph@cygnus.com>
 
 	* class.c (build_utf8_ref): Back out broken patch which was
-        intended to to output signatures using '.' as a separator.
+	intended to to output signatures using '.' as a separator.
 
-        * class.c (make_class_data): Output signatures using '.' as a
-        separator, rather than '/'.
-        (mangled_classname): Likewise.
-        (make_field_value): Likewise.
-        (make_method_value): Likewise.
-        * constants.c (alloc_class_constant): Likewise.
-        * expr.c (build_invokeinterface): Likewise.
+	* class.c (make_class_data): Output signatures using '.' as a
+	separator, rather than '/'.
+	(mangled_classname): Likewise.
+	(make_field_value): Likewise.
+	(make_method_value): Likewise.
+	* constants.c (alloc_class_constant): Likewise.
+	* expr.c (build_invokeinterface): Likewise.
 
 Thu Feb 11 21:25:51 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
- 
+
  	* parse.y (valid_builtin_assignconv_identity_widening_p): Got rid
  	of an ancient workaround.
 
@@ -5240,7 +5244,7 @@ Wed Feb 10 23:27:33 1999  Jeffrey A Law  (law@cygnus.com)
 	here anymore.
 
 1999-02-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
-	
+
 	* lex.c (yylex): Encode \0 as UTF8.
 
 1999-02-10  Tom Tromey  <tromey@cygnus.com>
@@ -5269,11 +5273,11 @@ Tue Feb  9 19:31:09 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 Mon Feb  8 11:50:50 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 	* parse.h: DECL_P renamed JDECL_P.
-        * parse.y: DECL_P replaced by JDECL_P.
-        (build_array_from_name): Always use pointer's type.
-        (patch_bc_statement): Extra code to search continue target in a
-        for loop. Fixed comments. Continue target is current loop when
-        unlabeled.
+	* parse.y: DECL_P replaced by JDECL_P.
+	(build_array_from_name): Always use pointer's type.
+	(patch_bc_statement): Extra code to search continue target in a
+	for loop. Fixed comments. Continue target is current loop when
+	unlabeled.
 
 1999-02-05  Andrew Haley  <aph@cygnus.com>
 
@@ -5290,8 +5294,8 @@ Mon Feb  8 11:50:50 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 Wed Feb  3 22:50:17 1999  Marc Espie <Marc.Espie@liafa.jussieu.fr>
 
-        * Make-lang.in ($(GCJ)(exeext)): Remove choose-temp.o, pexecute.o and
-        mkstemp.o.  Get them from libiberty now.
+	* Make-lang.in ($(GCJ)(exeext)): Remove choose-temp.o, pexecute.o and
+	mkstemp.o.  Get them from libiberty now.
 
 Tue Feb  2 19:49:12 1999  Jeffrey A Law  (law@cygnus.com)
 
@@ -5310,7 +5314,7 @@ Tue Feb  2 10:39:47 1999  Per Bothner  <bothner@cygnus.com>
 
 	* jcf-write.c (generate_bytecode_insns):  For REAL_CST that is 0 or 1,
 	generate special [fd]const_[01] instructions.
-	
+
 	* jcf-parse.c (yyparse):  Don't emit_register_classes if -fsyntax-only.
 
 	* verify.c (verify_jvm_instructions):  Do INVALIDATE_PC after
@@ -5323,7 +5327,7 @@ Mon Feb  1 20:44:47 1999  Per Bothner  <bothner@cygnus.com>
 
 	* parse.y (java_complete_lhs):  Don't complain about unreachable
 	exit condition in a do-while statement.
-	
+
 Fri Jan 29 18:19:02 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 	* lex.c (java_read_char): Fixed utf8 decoding.
@@ -5403,10 +5407,10 @@ Wed Jan 27 10:19:29 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 Mon Jan 25 17:39:19 1999  Andrew Haley  <aph@cygnus.com>
 
-        * except.c, java-except.h (expand_resume_after_catch): new
-        function.
-        * expr.c (java_lang_expand_expr): call expand_resume_after_catch
-        to branch back to main flow of control after a catch block.
+	* except.c, java-except.h (expand_resume_after_catch): new
+	function.
+	* expr.c (java_lang_expand_expr): call expand_resume_after_catch
+	to branch back to main flow of control after a catch block.
 
 Sat Jan 23 23:02:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
@@ -5510,10 +5514,10 @@ Sat Jan 23 23:02:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 	* verify.c (check_pending_block): Add the `const' keyword to a char*.
 	(verify_jvm_instructions): Likewise.  Remove unused variables
 	`field_name' and `default_val'.
-	
+
 	* zextract.c: Include config.h and system.h.  Remove redundant
 	OS header includes.
-	
+
 	* zipfile.h: Prototype `read_zip_archive'.
 
 Thu Jan 21 16:00:06 1999  Andrew Haley  <aph@cygnus.com>
@@ -5526,7 +5530,7 @@ Thu Jan 21 15:21:49 1999  Andrew Haley  <aph@cygnus.com>
 	* typeck.c (convert_ieee_real_to_integer): New function.
 	(convert): When not using fast-math and using hardware fp, convert
  	an IEEE NaN to zero.
- 
+
 1999-01-18  Andrew Haley  <aph@cygnus.com>
 
 	* parse.y (patch_binop): Do a type conversion from signed to
@@ -5547,7 +5551,7 @@ Sun Jan 17 21:55:42 1999  Jeffrey A Law  (law@cygnus.com)
 
 	* Makefile.in (zextract.o): Add dependencies.
 
-        * Makefile.in: Do not put ^Ls at the start of a line.
+	* Makefile.in: Do not put ^Ls at the start of a line.
 
 Fri Jan 15 20:16:20 1999  Per Bothner  <bothner@cygnus.com>
 
@@ -5575,7 +5579,7 @@ Fri Jan 15 20:16:20 1999  Per Bothner  <bothner@cygnus.com>
 	MODIFY_EXPR.  Without this, code for the assignement may not be
 	generated at all and the synchronized statement will read an
 	uninitialized variable.
-  	
+
 Wed Jan 13 01:24:54 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 	* class.c (maybe_layout_super_class): Fixed returned value.
@@ -5647,7 +5651,7 @@ Wed Jan  6 17:19:46 1999  Per Bothner  <bothner@cygnus.com>
 	* expr.c (java_lang_expand_expr):  For a static array constructor
 	of primitive elements, allocate the array itself statically.
 	Disabled until we can set the vtable field statically.
-	
+
 	* check-init.c:  New file.  Checks for definite assignment.
 	* Makefile.in (JAVA_OBJS):  Add check-init.o.
 	* parse.y (java_complete_expand_method): Call check_for_initialization.
@@ -5667,7 +5671,7 @@ Wed Jan  6 16:20:06 1999  Per Bothner  <bothner@cygnus.com>
 
 Tue Jan  5 22:15:40 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
-        * Make-lang.in ($(GCJ).o): Depend on prefix.h.
+	* Make-lang.in ($(GCJ).o): Depend on prefix.h.
 
 Tue Dec 22 11:25:19 1998  Per Bothner  <bothner@cygnus.com>
 
@@ -5677,7 +5681,7 @@ Tue Dec 22 11:25:19 1998  Per Bothner  <bothner@cygnus.com>
 	* jcf-write.c (CHECK_PUT):  Add (void) cast to avoid -Wall warnings.
 	(localvar_alloc):  Change return type to void,
 	(emit_unop):  Remove unused variable size.
-	
+
 	* jcf-write.c (struct jcf_block):  Add new union.
 	(PENDING_CLEANUP_PC, PENDING_EXIT_PC, UNDEFINED_PC):  New macros.
 	(call_cleanups):  New functions.
@@ -5689,7 +5693,7 @@ Tue Dec 22 11:25:19 1998  Per Bothner  <bothner@cygnus.com>
 	completing operands to patch_synchronized_statement.
 	Support CLEANUP_POINT_EXPR, WITH_CLEANUP_EXPR.
 	(patch_synchronized_statement): Re-write suing CLEANUP_POINT_EXPR and
-	WITH_CLEANUP_EXPR instead of TRY_EXPR.	
+	WITH_CLEANUP_EXPR instead of TRY_EXPR.
 
 Sun Dec 20 16:15:44 1998  John F. Carr  <jfc@mit.edu>
 
@@ -5955,7 +5959,7 @@ Sun Dec  6 13:45:00 1998  Per Bothner  <bothner@cygnus.com>
 	* java-tree.h (CALL_USING_SUPER):  New macro.
 	* parse.y (patch_invoke):  Remove im local variable.
  	(patch_method_invocation, patch_invoke):  Don't pass super parameter.
-	(patch_invoke):  Use CALL_USING_SUPER instead of from_super parameter. 
+	(patch_invoke):  Use CALL_USING_SUPER instead of from_super parameter.
 	(resolve_qualified_expression_name):  Maybe set CALL_USING_SUPER.
 
 	* jcf-write.c (get_access_flags):  Fix typo ACC_PUBLIC -> ACC_FINAL.
@@ -5997,7 +6001,7 @@ Thu Dec  3 17:11:12 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 	(declare_local_variables): Use PROMOTE_RECORD_IF_COMPLETE.
 	(java_layout_seen_class_methods): New function.
 	(java_layout_classes): Call java_layout_seen_class_methods.
-	
+
 Thu Dec  3 15:56:50 1998  Per Bothner  <bothner@cygnus.com>
 
 	* parse,y (patch_synchronized_statement):  Set CAN_COMPLETE_NORMALLY.
@@ -6045,7 +6049,7 @@ Fri Nov 27 13:20:51 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 	* Makefile.in (jc1, jv-scan): Link with $(SUBDIR_OBSTACK).
 
 	* jv-scan.c: Fix xmalloc prototype.  Provide an xmalloc definition.
-	
+
 	* jvgenmain.c: Remove the xmalloc prototype, we get it from
 	libiberty.h.  Provide an xmalloc definition.
 
@@ -6175,7 +6179,7 @@ Tue Nov 24 16:34:33 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 	(java_expand_classes): Check for errors up front.
 	(patch_method_invocation): Class to search is resolved and laid
  	out.
-	
+
 Tue Nov 24 12:57:13 1998  Per Bothner  <bothner@cygnus.com>
 
 	* expr.c (java_lang_expand_expr):  Add missing emit_queue.
@@ -6317,7 +6321,7 @@ Wed Nov 18 23:54:53 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
  	layout argument exception type.
 	(purge_unchecked_exceptions): Use IS_UNCHECKED_EXCEPTION_P instead
  	of IS_UNCHECKED_EXPRESSION_P.
-	
+
 Wed Nov 18 14:21:48 1998  Anthony Green  <green@cygnus.com>
 
 	* jcf-parse.c (yyparse): Open class file in binary mode.
@@ -6433,7 +6437,7 @@ Thu Nov 12 14:15:07 1998  Per Bothner  <bothner@cygnus.com>
 	as part of recursive scan of block.
 	(java_expand_switch ):  Removed - inlined into java_lang_expand_expr.
 	(patch_switch_statement):  Most tests move dinto java_complete_tree.
-	
+
 	* parse.y:  Make various production be non-typed (void).
 	* parse.y (parse_error):  Merged into issue_warning_error_from_context.
 	* parse.y (add_stmt_to_compound):  Don't create/change extra node.
@@ -6448,7 +6452,7 @@ Thu Nov 12 14:15:07 1998  Per Bothner  <bothner@cygnus.com>
 	(generate_bytecode_conditional):  Handle REAL_TYPE comparisons.
 	(generate_bytecode_insns):  Support REAL_CST, switch statements,
 	exception handling, method calls, object/array creation, and more.
-	
+
 	* class.c:  Remove some unused variables.
 	* constants.c (find_string_constant):  New function.
 	(count_constant_pool_bytes):  Fix to correctly handle wide constants.
@@ -6804,7 +6808,7 @@ Wed Oct 28 08:03:31 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 	(patch_return): Take constructors into account.
 	(patch_conditional_expr): New function.
 	* typeck.c (build_java_signature): Removed unnecessary empty line.
-	
+
 Wed Oct 28 00:46:15 1998  Jeffrey A Law  (law@cygnus.com)
 
 	* Makefile.in (jcf-dump, gcjh): Link in $(LIBS) too.
@@ -6961,7 +6965,7 @@ Tue Oct 20 09:15:38 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
  	fclose and CLASS_FROM_SOURCE_P marking.
 	(parse_source_file): New local variables remember_for_generation
  	and filename. Mark parsed file name identifier node. Removed block
- 	executed when parse_only was null. Set remember_for_generation. 
+ 	executed when parse_only was null. Set remember_for_generation.
 	Use it as an argument to java_pop_parser_context.
 	(yyparse): New local variables several_files, list, next node and
  	current_file_list. Split ampersand separated file names into
@@ -6972,7 +6976,7 @@ Tue Oct 20 09:15:38 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
  	to ctxp_for_generation list accordingly.
 	(java_complete_expand_methods): Fixed indentation.
 	(java_expand_classes): New function.
-	
+
 Sat Oct 17 11:25:21 1998  Per Bothner  <bothner@cygnus.com>
 
 	* Makefile.in:  Link with libiberty.a instead of memmove.o.
@@ -7005,7 +7009,7 @@ Fri Oct 16 10:59:01 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
  	field was found is null.
 	(qualify_ambiguous_name): Sweep through all successive array
  	dimensions.
-	
+
 Wed Oct 14 18:21:29 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 	* java-tree.h (pop_labeled_block, lang_printable_name,
@@ -7242,7 +7246,7 @@ Tue Oct 13 03:50:28 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
  	purge_unchecked_exceptions): New functions.
 	* typeck.c (lookup_argument_method): Allow WFL in place of method
  	DECL_NAME during method definition check
-	
+
 1998-10-09  Tom Tromey  <tromey@cygnus.com>
 
 	* gjavah.c (decode_signature_piece): New function.
@@ -7365,7 +7369,7 @@ Fri Oct  2 17:22:52 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 	(build_jump_to_finally, build_try_statement, java_get_catch_block,
  	patch_try_statement): New functions.
 	* typeck.c (match_java_method): Function deleted.
-	
+
 Fri Oct  2 13:48:36 1998  Anthony Green  <green@cygnus.com>
 
 	* jvspec.c: jvgenmain_spec uses different temporary file names.
@@ -7621,7 +7625,7 @@ Fri Sep  4 10:42:05 1998  Tom Tromey  <tromey@cygnus.com>
 Thu Sep  3 18:04:09 1998  Per Bothner  <bothner@cygnus.com>
 
 	* gjavah.c:  Support new -prepend -add -append flags.
-	(print_method_info):  Method is not virtual if class is final.	
+	(print_method_info):  Method is not virtual if class is final.
 
 Thu Sep  3 12:03:53 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
@@ -7766,7 +7770,7 @@ Wed Aug 19 17:57:07 1998  Warren Levy  <warrenl@cygnus.com>
  	soft_anewarray; adjust args passed.
 	* expr.c (build_anewarray): Adjust args for soft_anewarray_node to
  	match _Jv_NewObjectArray.
-	
+
 Wed Aug 19 09:33:23 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 	* decl.c (push_labeled_block, pop_labeled_block): New functions.
@@ -7796,7 +7800,7 @@ Wed Aug 19 09:33:23 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
  	generate_labeled_block, complete_labeled_statement,
  	build_bc_statement, patch_bc_statement, patch_loop_statement,
  	build_new_loop, build_loop_body, complete_loop_body): New function
- 	declarations.  
+ 	declarations.
 	* parse.y (java_warning_count): New global variable.
 	(label_id): New static variable.
 	(BREAK_TK, CONTINUE_TK): Token tagged <operator>.
@@ -7843,7 +7847,7 @@ Wed Aug 19 09:33:23 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
  	patch_bc_statement, patch_exit_expr): New functions.
 	* typeck.c (build_java_signature): Build argument signature before
  	enclosing it in between parenthesis.
-	
+
 Mon Aug 17 17:44:24 1998  Warren Levy  <warrenl@cygnus.com>
 
 	* Make-lang.in (JAVA_SRCS): Created for dependencies * Makefile.in
@@ -7862,7 +7866,7 @@ Thu Aug 13 14:34:07 1998  Warren Levy  <warrenl@cygnus.com>
  	soft_badarrayindex.  Use _Jv_CheckCast, not soft_checkcast.  Use
  	_Jv_CheckArrayStore, not soft_checkarraystore.  Use
  	_Jv_LookupInterfaceMethod, not soft_lookupinterfacemethod.
-	
+
 Wed Aug 12 14:23:13 1998  Per Bothner  <bothner@cygnus.com>
 
 	* decl.c, java-tree.h (this_identifier_node, super_identifier_node,
@@ -7892,9 +7896,9 @@ Tue Aug 11 11:31:55 1998  Per Bothner  <bothner@cygnus.com>
 	* typeck.c (lookup_argument_method):  New function.
 	* parse.y (java_check_regular_methods):  Use lookup_argument_method
 	instead of lookup_java_method2 followed by lookup_java_method.
-	
+
 	* parse.y (check_method_redefinition):  Minor optimization.
-	
+
 	* jcf-write.c (generate_bytecode_insns):  Handle RETURN_EXPR,
 	MINUS_EXPR, MULT_EXPR, TRUNC_DIV_EXPR, and RDIV_EXPR.
 
@@ -7964,7 +7968,7 @@ Wed Jul 29 13:19:03 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 	(refine_accessible_methods_list): Merged two conditions in test.
 	(java_complete_class): Sanity check on stabilize_ref gone.
 	* zextract.c (read_zip_archive): Cast lseek second argument to long.
-	
+
 Tue Jul 28 21:39:22 1998  Per Bothner  <bothner@cygnus.com>
 
 	* class.c (hashUtf8String):  Fix - use new JavaSoft specification.
@@ -8056,7 +8060,7 @@ Wed Jul 22 14:39:00 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
  	JAVA_THIS_EXPR, CALL_CONSTRUCTOR_P): Macro definition moved in
  	java-tree.h.
 	* jcf-parse.c (init_outgoing_cpool): Set current_constant_pool_data_ref
-	to NULL 
+	to NULL
 	* jcf.h (jcf_out_of_synch): New extern function prototype.
 	* parse.h: Static/global function implemented in parse.y
  	prototyped and declarations moved at the end of the file.
@@ -8116,7 +8120,7 @@ Wed Jul 22 14:39:00 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
  	changed into NULLs.
 	(not_initialized_as_it_should_p): Comply with the new DECL_P.
 	(java_complete_tree): New case fo RETURN_EXPR. Process function
- 	call arguments in separate function. 
+ 	call arguments in separate function.
 	(complete_function_arguments): New function.
 	(build_method_invocation): Don't use CALL_EXPR_FROM_PRIMARY_P
  	anymore.
@@ -8130,7 +8134,7 @@ Wed Jul 22 14:39:00 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 	(buid_this): Build a WFL with `kw_this' instead of a FIELD_DECL.
 	(build_return, patch_return): New functions.
 	* typeck.c (lookup_java_constructor): Fixed typo in comment.
-	
+
 Tue Jul 21 12:10:04 1998  Per Bothner  <bothner@cygnus.com>
 
 	* constants.c (find_name_and_type_constant, find_fieldref_index,
@@ -8149,7 +8153,7 @@ Tue Jul 21 12:10:04 1998  Per Bothner  <bothner@cygnus.com>
 	(code_buffer_grow, push_constant1, push_constant2, push_int_const,
 	push_long_const, field_op, adjust_typed_op, maybe_wide):
 	New functions used by generate_bytecode_insn.
-	
+
 	* typeck.c (signature_include_return):  Remove variable.
 	(push_java_argument_signature, build_java_argument_signature):  New.
 	(build_java_signature):  Use push_java_argument_signature.
@@ -8171,7 +8175,7 @@ Thu Jul 16 15:29:20 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
  	by safe_layout_class.
 	* expr.c (build_java_array_length_access): Removed static storage
  	class in the function definition.
-	(build_java_arraynull_check): Likewise.  
+	(build_java_arraynull_check): Likewise.
 	Also fixed typos in two comments.
 	* lex.c (java_init_lex): Initialize static global kw_length.
 	(java_lex): Use BUILD_OPERATOR on RETURN_TK.
@@ -8350,7 +8354,7 @@ Wed Jul  8 03:01:32 1998  Jeffrey A Law  (law@cygnus.com)
 	* decl.c: Likewise.
 	* lang.c (flag_new_exceptions): Get via extern now.
 	(lang_init_options): New functions.  Turn on flag_new_exceptions.
-	
+
 Tue Jul  7 12:56:48 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 	* lex.c (java_lex): Return 0 when we see an invalid character in
@@ -8532,7 +8536,7 @@ Thu Jul  2 16:53:16 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
  	typo in error message.
 	(patch_unary_op): Extract location information from the node.
 	(build_array_ref, patch_array_ref): New functions.
-	
+
 Wed Jul  1 13:11:36 1998  Tom Tromey  <tromey@cygnus.com>
 
 	* expr.c (expand_java_INSTANCEOF): Changed calling convention to
@@ -8577,7 +8581,7 @@ Tue Jun 23 10:17:09 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
 	* lang.c (flag_new_exceptions): Make this this default.
 	* decl.c (end_java_method): Call emit_handlers.
 	* except.c (method_init_exceptions): Set language code and version.
-	(expand_start_java_handler): Enable exception, and call 
+	(expand_start_java_handler): Enable exception, and call
 	expand_eh_region_start.
 	(expand_end_java_handler): Enable exception, and set up catch blocks.
 	(emit_handlers): New routine to generate the saved handlers.
@@ -8601,7 +8605,7 @@ Fri Jun 12 11:31:24 1998  Per Bothner  <bothner@cygnus.com>
 	Finally, I wrote code which can generate a .class file (including its
 	constant pool) from the RECORD_TYPE of a class.  This is a big step
 	on the way to compiling Java source into .class files.
-	
+
 	* jcf-write.c:  New file. Writes out a RECORD_TYPE as a .class file.
 	* Makefile.in (JAVA_OBJS):  Added jcf-write.o.
 
@@ -8622,7 +8626,7 @@ Fri Jun 12 11:31:24 1998  Per Bothner  <bothner@cygnus.com>
 	(set_constant_entry, find_constant1, find_constant2,
 	find_class_constant, count_constant_pool_bytes, write_constant_pool,
 	find_utf8_constant, find_class_or_string_constant):  New functions.
-	
+
 	* jcf-parse.c (load_class):  Don't save/restore tree-constant_pool.
  	(get_constant):  Use current_jcf.cpool instead of tree_constant_pool.
 	(give_name_to_class, get_class_constant):  Likewise.
@@ -8741,7 +8745,7 @@ Tue Jun  9 18:12:46 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
  	wfl_operator. Improved error message on shift distance.
 	(build_unaryop, build_incdec, build_cast, patch_unaryop,
  	patch_cast): New functions.
-	
+
 Fri Jun  5 18:03:07 1998  Per Bothner  <bothner@cygnus.com>
 
 	* jvspec.c:  New file.
@@ -8767,7 +8771,7 @@ Tue Jun  2 15:19:19 1998  Per Bothner  <bothner@cygnus.com>
 	* class.c:  Moved classname-mangling-rekated code to ...
 	* mangle.c:  ... this new file.
 	* jvgenmain.c:  New program (needs mangle.c) to generate main program.
-	* Makefile.in:  Update for above changes.	 
+	* Makefile.in:  Update for above changes.
 
 Mon Jun  1 09:58:36 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
@@ -8799,46 +8803,46 @@ Mon Jun  1 09:58:36 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
  	messages and issue messages on both operands if their types are
  	different. Force fixed type into node. Handle all binary
  	operators.
-	
+
 Wed May 27 10:30:31 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 	* java-tree.h (COMPOUND_ASSIGN_P, INITIALIZED_P): New macros.
-        * lex.c (java_lex): Use BUILD_OPERATOR and BUILD_OPERATOR2 to
-        build operator node and return tokens.
-        * lex.h (BUILD_OPERATOR, BUILD_OPERATOR2): New macros.
+	* lex.c (java_lex): Use BUILD_OPERATOR and BUILD_OPERATOR2 to
+	build operator node and return tokens.
+	* lex.h (BUILD_OPERATOR, BUILD_OPERATOR2): New macros.
 	* parse.h (java_complete_tree): Changed returned type in prototype.
 	(build_method_invocation, build_assignment, patch_assignment,
  	patch_binop): New static function declarations.
-        (JFLOAT_TYPE_P, JNUMERIC_TYPE_P, JPRIMITIVE_TYPE_P, JSTRING_P,
+	(JFLOAT_TYPE_P, JNUMERIC_TYPE_P, JPRIMITIVE_TYPE_P, JSTRING_P,
  	BUILD_EXPR_WFL): New macros.
 	* parse.y (enum tree_code binop_lookup[]): New static for token to
  	TREE_CODE lookup.
 	(%union): Parser union has new sub-structure `operator'.
-        (ASSIGN_TK, MULT_ASSIGN_TK, DIV_ASSIGN_TK, REM_ASSIGN_TK,
-        PLUS_ASSIGN_TK, MINUS_ASSIGN_TK, LS_ASSIGN_TK, SRS_ASSIGN_TK,
-        ZRS_ASSIGN_TK, AND_ASSIGN_TK, XOR_ASSIGN_TK, OR_ASSIGN_TK,
-        ASSIGN_ANY_TK): Tokens tagged `operator'.
+	(ASSIGN_TK, MULT_ASSIGN_TK, DIV_ASSIGN_TK, REM_ASSIGN_TK,
+	PLUS_ASSIGN_TK, MINUS_ASSIGN_TK, LS_ASSIGN_TK, SRS_ASSIGN_TK,
+	ZRS_ASSIGN_TK, AND_ASSIGN_TK, XOR_ASSIGN_TK, OR_ASSIGN_TK,
+	ASSIGN_ANY_TK): Tokens tagged `operator'.
 	(EQ_TK, GTE_TK, ZRS_TK, SRS_TK, GT_TK, LTE_TK, LS_TK, BOOL_AND_TK,
  	AND_TK, BOOL_OR_TK, OR_TK, INCR_TK, PLUS_TK, DECR_TK, MINUS_TK,
  	MULT_TK, DIV_TK, XOR_TK, REM_TK, NEQ_TK, NEG_TK, REL_QM_TK,
  	REL_CL_TK, NOT_TK, LT_TK): Tokens tagged `operator'.
-        (assignment_operator:): Rule tagged `operator'.
+	(assignment_operator:): Rule tagged `operator'.
 	(expression_statement:): Re-installed default rule.
-        (method_invocation:): Sub rules call build_method_invocation.
+	(method_invocation:): Sub rules call build_method_invocation.
 	(postfix_expression:): Don't attempt to resolve name here. Just
  	return an ID.
 	(multiplicative_expression:): Sub-rules build corresponding binop
  	expression node.
 	(additive_expression:, shift_expression:, and_expression:,
  	exclusive_or_expression:, inclusive_or_expression:): Likewise.
-        (assignment:): Sub rule invoke build_assignment.
-        (assignment_operator:): Default rules on sub rules.
+	(assignment:): Sub rule invoke build_assignment.
+	(assignment_operator:): Default rules on sub rules.
 	(force_error): Added documentation on this variable.
-        (declare_local_variables): Build initialization calling
-        build_assignment.
-        (expand_start_java_method): Removed unused rtx declaration. Mark
+	(declare_local_variables): Build initialization calling
+	build_assignment.
+	(expand_start_java_method): Removed unused rtx declaration. Mark
  	arguments as already initialized.
-        (java_method_add_stmt): Type of built COMPOUND_EXPR set to NULL.
+	(java_method_add_stmt): Type of built COMPOUND_EXPR set to NULL.
 	(java_complete_expand_methods): Don't process next method if
  	completion of the previous one triggered errors.
 	(java_complete_expand_method): Call source_end_java_method if no
@@ -9007,7 +9011,7 @@ Thu May 12 13:44:27 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
  	further. Complete function's arguments.
  	(build_expr_block, enter_block, exit_block, lookup_name_in_blocks,
  	maybe_absorb_scoping_blocks): New functions.
-	
+
 Mon Apr 27 10:50:05 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 	* jcf-io.c (find_class): Reset jcf->java_source after JCF_ZERO, if
@@ -9084,7 +9088,7 @@ Mon Apr 27 10:50:05 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 	(add_superinterfaces): List of unresolved interfaces is
  	gone. Unresolved interfaces are directly added to the current
  	dependencies list.
-	(create_interface): Second pass shortcut removed. 
+	(create_interface): Second pass shortcut removed.
 	ctpx->modifier_ctx access through MODIFIER_WFL.
 	(create_class): Second pass shortcut removed. Call to
  	register_incomplete_type replaces the call to
@@ -9158,7 +9162,7 @@ Mon Apr 20 18:26:57 1998  Per Bothner  <bothner@cygnus.com>
 	* typeck.c (convert):  Handle conversion to pointers (for convenience).
 	* verify.c (verify_jvm_instructions):  Use get_type_from_signature
 	instead of lookup_field to handle missing fields.
-	
+
 	* jcf-parse.c (process_zip_dir):  Set java_source.
 
 1998-04-20  Brendan Kehoe  <brendan@cygnus.com>
@@ -9174,12 +9178,12 @@ Tue Apr 14 15:59:54 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
  	parser context.
 	* lex.c (java_init_lex): Chain a WFL node to the import on demand
  	list. ctxp->modifier_ctx zeroed according to its new
- 	definition. ctxp->filename initialized. Removed 
+ 	definition. ctxp->filename initialized. Removed
 	JAVA_MODIFIER_CTX_UNMARK.
 	(java_unget_unicode): Update the character based column position.
 	(java_allocate_new_line): ref_count not used anymore. Always free
  	ctxp->p_line. Initialize c_line->char_col to 0.
-	(java_get_unicode): Update the character based column position. 
+	(java_get_unicode): Update the character based column position.
 	(java_lex): Use ctxp->elc to store current position in source
  	file, at the beginning of the parsed token. Set modifier_ctx entry
  	corresponding to the parse modifier to a WFL node. Return a WFL
@@ -9206,10 +9210,10 @@ Tue Apr 14 15:59:54 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 	(struct parser_ctxt): Added comments on fields. modifier_ctx is
  	now an array of tree nodes. Deleted fields line_list and
  	e_line. New field elc, to replace e_line.
-	* parse.y (array_type:): Build WFL node. 
+	* parse.y (array_type:): Build WFL node.
 	(qualified_name:): Build a single WFL node out of two. Retain
  	the location information of the first node in the resulting node.
-	(package_declaration:): Use package name as a WFL node 
+	(package_declaration:): Use package name as a WFL node
 	(single_type_import_declaration:): Use imported name as a WFL node.
 	(type_import_on_demand_declaration:): Use root of the imported
  	packages as a WFL node.
@@ -9274,7 +9278,7 @@ Tue Apr 14 15:59:54 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 	(build_invoke): cl used as a WFL node when calling build_expr_wfl.
 	(lookup_method_invoke): cl is now a WFL node. Added missing
  	IDENTIFIER_POINTER to class type decl name.
-	
+
 Tue Apr 14 15:23:29 1998  Dave Brolley  <brolley@cygnus.com>
 
 	* lang.c (init_parse): Now returns char* containing the filename.
@@ -9424,8 +9428,8 @@ Mon Mar 16 17:25:19 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
  	New functions.
 	* typeck.c (build_java_signature): Properly end method signature
  	if return type skipped.
-	(match_java_method): New function.	
-	
+	(match_java_method): New function.
+
 Mon Mar 16 10:40:47 1998  Per Bothner  <bothner@cygnus.com>
 
 	* jcf-io.c (find_classfile):  If USE_JCF_STDIO, fopen in binary mode.
@@ -9476,7 +9480,7 @@ Wed Feb 25 08:55:49 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 	(source_end_java_method, java_method_add_stmt): New functions.
 	(java_generate_parsed_class): No longer exists.
  	(java_layout_parsed_class, java_register_parsed_class): New functions.
-	(resolve_expression_name): New function.	
+	(resolve_expression_name): New function.
 
 Thu Feb 12 11:54:28 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
@@ -9790,7 +9794,7 @@ Fri Oct 17 15:56:37 1997  Per Bothner  <bothner@cygnus.com>
 
 	* java-tree.h (PUSH_FIELD):  Set DECL_ARTIFICIAL.
 	* class.c (make_class_data):  Don't build fields_decl if no fields.
-	When building fields_decl, skip if DECL_ARTIFICAL.  
+	When building fields_decl, skip if DECL_ARTIFICAL.
 
 	* expr.c (java_stack_swap):  Update stack_type_map.
 	* verify.c (merge_types):  Handle array types better.
@@ -9894,7 +9898,7 @@ Wed Oct  1 11:26:10 1997  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 	* zextract.c (read_zip_archive): Now takes into account the
  	extra_field field.
 	* expr.c (can_widen_reference_to): Modified to handle sub-interfaces.
-	
+
 Sat Sep 20 12:44:28 1997  Per Bothner  <bothner@cygnus.com>
 
 	* constants.c, java-tree.h (build_internal_class_name):  New function.
@@ -9953,7 +9957,7 @@ Thu Sep 11 19:45:18 1997  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 	* expr.c (can_widen_reference_to): Added comment to interface
 	handling, fixed typo.
 	(lookup_field): Now uses CLASS_P() to correct FIXME
-	(expand_invoke): Verification on public && !static && 
+	(expand_invoke): Verification on public && !static &&
 	!abstract moved into soft_lookupinterfacemethod (kaffe).
 	Use Object class dtable if objectref is an array when expanding
 	invokeinterface.
@@ -9980,7 +9984,7 @@ Thu Sep 11 11:57:32 1997  Per Bothner  <bothner@cygnus.com>
 	than looking for no-longer-existing static decl starting with _CL.
 	* typeck.c (parse_signature_type):  Promote array element type
 	if it is a RECORD_TYPE.
-	
+
 Wed Sep 10 16:09:23 1997  Per Bothner  <bothner@cygnus.com>
 
 	* class.c (push_class_static_dummy_field):  New function.
@@ -10027,10 +10031,10 @@ Wed Sep  3 16:13:23 1997  Per Bothner  <bothner@cygnus.com>
 	* verify.c (merge_types):  Treat all promoted integral types as equal.
 	* constants.c (build_constants_constructor):  To force creation of
  	current_constant_pool_data_ref, call build_constant_data_ref.
-	
+
 	* javaop.def (lload):  Fix typo.
 	* jcf-dump.c (main):  Clear filename to prevent possibly-bad free.
-	
+
 Tue Sep  2 17:37:25 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
 
 	* parse.c: Don't include function.h.
@@ -10041,7 +10045,7 @@ Wed Aug 27 18:33:04 1997  Per Bothner  <bothner@cygnus.com>
 	* Makefile.in (JAVA_OBJS):  Add except.o
 	* expr.c:  Temporary warning about unimplemented exceptions.
 	* verify.c:  Verify exception handlers.
-	
+
 	* jcf-dump.c (disassemble_method):  Print exception table.
 
 Wed Aug 27 13:26:58 1997  Alexandre Petit-Bianco  <apbianco@cygnus.com>
@@ -10058,7 +10062,7 @@ Wed Aug 27 13:26:58 1997  Alexandre Petit-Bianco  <apbianco@cygnus.com>
  	dtable_type.
 	(can_widen_reference_to): Now handles interfaces.
 	* decl.c (init_decl_processing): New global variable
- 	soft_lookupinterfacemethod_node, declared in java-tree.h. 
+ 	soft_lookupinterfacemethod_node, declared in java-tree.h.
 	Call set_super_info on string_type_node.
 	* java-tree.h (CLASS_INTERFACE, CLASS_ABSTRACT, CLASS_SUPER): Now
 	defined.
@@ -10100,12 +10104,12 @@ Wed Aug 20 14:34:34 1997  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 	* expr.c (build_java_jsr, build_java_ret): New functions
 	(JSR,PRE): New macros
 	(PRE_TABLE_SWITCH, PRE_LOOKUP_SWITCH): Fixed and secured.
-	(verify_jvm_instructions): tableswitch, lookupswitch, 
+	(verify_jvm_instructions): tableswitch, lookupswitch,
 	monitorenter, monitorexit, goto_w: verified.
 	(LOOKUP_SWITCH, TABLE_SWITCH): Fixed generation of default: label
 	(build_java_monitor): New function.
 	(MONITOR_OPERATION): Modified to call build_java_monitor()
-	(verify_jvm_instructions): Started a thorough verification of 
+	(verify_jvm_instructions): Started a thorough verification of
 	invoke* bytecodes.
 
 Tue Aug 19 13:35:49 1997  Per Bothner  <bothner@cygnus.com>
@@ -10130,7 +10134,7 @@ Tue Aug 19 13:35:49 1997  Per Bothner  <bothner@cygnus.com>
 	fatal on an error.  Also handle subroutines.
 	(verify_jvm_instructions):  Handle errors from push_poending_block.
 	Support jsr and ret instructions.
-	
+
 Tue Aug 19 13:33:36 1997  Per Bothner  <bothner@cygnus.com>
 
 	* jcf-io.c (find_classfile):  Fix thinko.
@@ -10177,7 +10181,7 @@ Thu Aug  7 23:08:24 1997  Per Bothner  <bothner@cygnus.com>
 	Implement acmpeq, acmpne, pop, pop2, swap, checkcast, instanceof.
 	Improve newarray, anewarray, ?aload, athrow,
 	* java-tree.h (LABEL_CHANGED):  New macro.
-	
+
 Tue Aug  5 12:21:27 1997  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 	* decl.c (soft_athrow_node): New global variable initialized.
@@ -10197,7 +10201,7 @@ Tue Aug  5 12:21:27 1997  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 	to Use The Right Things.
 	(pop_type): Accept CHAR/BYTE/BOOLEAN/SHORT promoted type as
  	compatible with INT. BOOLEAN is made equivalent to BYTE.
-	(OPCODE_athrow, OPCODE_aconst_null, OPCODE_ifnull, 
+	(OPCODE_athrow, OPCODE_aconst_null, OPCODE_ifnull,
 	OPCODE_ifnonnull): Now supported.
 	(build_java_athrow): New function.
 
@@ -10230,7 +10234,7 @@ Fri Aug  1 11:37:09 1997  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 	* expr.c (build_java_arraynull_check, build_java_arrayaccess,
 	build_java_array_length_access, expand_java_arrayload,
 	expand_java_arraystore, expand_java_array_length,
-	expand_java_multianewarray, expand_java_anewarray, 
+	expand_java_multianewarray, expand_java_anewarray,
 	build_java_check_indexed_type, is_array_type_p,
 	build_java_throw_out_of_bound_exception): New functions.
 	(STORE_INTERNAL): Now forces type of the decl to be type of the value.
@@ -10269,7 +10273,7 @@ Fri Jul 25 11:44:21 1997  Per Bothner  <bothner@cygnus.com>
 	class_type_node and and method_type_node to match kaffe 0.9.1.
 	* class.c (make_method_value, make_class_data):  Update
 	initializations to match.
-	
+
 Wed Jul 16 17:17:50 1997  Per Bothner  <bothner@cygnus.com>
 
 	* class.c (unicode_mangling_length, emit_unicode_mangled_name,
@@ -10281,7 +10285,7 @@ Wed Jul 16 17:17:50 1997  Per Bothner  <bothner@cygnus.com>
 	to a one-element array.
 	(build_constants_constructor):  Set DECL_SIZE from complete array type.
 	* decl.c:  Rename class_type, object_type etc to class_type_node,
-	object_type_node etc.  Make former inherit from latter. 
+	object_type_node etc.  Make former inherit from latter.
 	* expr.c (expand_invoke):  Add cast of function address.
 	* java-tree.h (TYPE_ARRAY_ELEMENT, PUSH_SUPER_VALUE):  New.
 	* parse.c (yyparse):  Don't call layout_class here.
@@ -10329,7 +10333,7 @@ Tue Jun  3 10:14:31 1997  Per Bothner  <bothner@cygnus.com>
 	(build_java_signature):  New function - build Java signature of type.
 	(set_java_signature):  New function - cache signature with type.
 	(lookup_java_method):  New function.
-	
+
 Tue May  6 22:08:24 1997  Per Bothner  <bothner@deneb.cygnus.com>
 
 	* class.c (ident_subst):  Take extra SUFFIX parameter.
@@ -10389,7 +10393,7 @@ Thu Oct 24 14:10:16 1996  Per Bothner  <bothner@deneb.cygnus.com>
 
 	* jcf.h:  Make NEW_CPOOL the default.
 	* jcf.h, jcf-reader.c, parse.c:  Remove support for !NEW_CPOOL.
-	
+
 Thu Oct 24 13:52:45 1996  Per Bothner  <bothner@deneb.cygnus.com>
 
 	New directory.
diff --git a/gcc/java/jvgenmain.c b/gcc/java/jvgenmain.c
index a24ea03fcebd..485639510c1b 100644
--- a/gcc/java/jvgenmain.c
+++ b/gcc/java/jvgenmain.c
@@ -144,7 +144,7 @@ main (int argc, const char **argv)
       fprintf (stream, "  \"");
       for (p = &argv[i][2]; *p; ++p)
 	{
-	  if (! isascii (*p))
+	  if (! ISPRINT (*p))
 	    fprintf (stream, "\\%o", *p);
 	  else if (*p == '\\' || *p == '"')
 	    fprintf (stream, "\\%c", *p);
diff --git a/gcc/system.h b/gcc/system.h
index 59caf48f0e5a..754fc242d70e 100644
--- a/gcc/system.h
+++ b/gcc/system.h
@@ -75,91 +75,12 @@ extern int fputs_unlocked PARAMS ((const char *, FILE *));
 # endif
 #endif
 
-#include <ctype.h>
+/* There are an extraordinary number of issues with <ctype.h>.
+   The last straw is that it varies with the locale.  Use libiberty's
+   replacement instead.  */
+#include <safe-ctype.h>
 
-/* Jim Meyering writes:
-
-   "... Some ctype macros are valid only for character codes that
-   isascii says are ASCII (SGI's IRIX-4.0.5 is one such system --when
-   using /bin/cc or gcc but without giving an ansi option).  So, all
-   ctype uses should be through macros like ISPRINT...  If
-   STDC_HEADERS is defined, then autoconf has verified that the ctype
-   macros don't need to be guarded with references to isascii. ...
-   Defining isascii to 1 should let any compiler worth its salt
-   eliminate the && through constant folding."
-
-   Bruno Haible adds:
-
-   "... Furthermore, isupper(c) etc. have an undefined result if c is
-   outside the range -1 <= c <= 255. One is tempted to write isupper(c)
-   with c being of type `char', but this is wrong if c is an 8-bit
-   character >= 128 which gets sign-extended to a negative value.
-   The macro ISUPPER protects against this as well."  */
-
-#if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII)) || defined(HOST_EBCDIC)
-# define IN_CTYPE_DOMAIN(c) 1
-#else
-# define IN_CTYPE_DOMAIN(c) isascii(c)
-#endif
-
-/* The ctype functions are often implemented as macros which do
-   lookups in arrays using the parameter as the offset.  If the ctype
-   function parameter is a char, then gcc will (appropriately) warn
-   that a "subscript has type char".  Using a (signed) char as a subscript
-   is bad because you may get negative offsets and thus it is not 8-bit
-   safe.  The CTYPE_CONV macro ensures that the parameter is cast to an
-   unsigned char when a char is passed in.  When an int is passed in, the
-   parameter is left alone so we don't lose EOF.
-*/
-
-#define CTYPE_CONV(CH) \
-  (sizeof(CH) == sizeof(unsigned char) ? (int)(unsigned char)(CH) : (int)(CH))
-
-
-/* WARNING!  The argument to the ctype replacement macros below is
-   evaluated more than once so it must not have side effects!  */
-
-#ifdef isblank
-# define ISBLANK(c) (IN_CTYPE_DOMAIN (c) && isblank (CTYPE_CONV(c)))
-#else
-# define ISBLANK(c) ((c) == ' ' || (c) == '\t')
-#endif
-#ifdef isgraph
-# define ISGRAPH(c) (IN_CTYPE_DOMAIN (c) && isgraph (CTYPE_CONV(c)))
-#else
-# define ISGRAPH(c) (IN_CTYPE_DOMAIN (c) && isprint (CTYPE_CONV(c)) && !isspace (CTYPE_CONV(c)))
-#endif
-
-#define ISPRINT(c) (IN_CTYPE_DOMAIN (c) && isprint (CTYPE_CONV(c)))
-#define ISALNUM(c) (IN_CTYPE_DOMAIN (c) && isalnum (CTYPE_CONV(c)))
-#define ISALPHA(c) (IN_CTYPE_DOMAIN (c) && isalpha (CTYPE_CONV(c)))
-#define ISCNTRL(c) (IN_CTYPE_DOMAIN (c) && iscntrl (CTYPE_CONV(c)))
-#define ISLOWER(c) (IN_CTYPE_DOMAIN (c) && islower (CTYPE_CONV(c)))
-#define ISPUNCT(c) (IN_CTYPE_DOMAIN (c) && ispunct (CTYPE_CONV(c)))
-#define ISSPACE(c) (IN_CTYPE_DOMAIN (c) && isspace (CTYPE_CONV(c)))
-#define ISUPPER(c) (IN_CTYPE_DOMAIN (c) && isupper (CTYPE_CONV(c)))
-#define ISXDIGIT(c) (IN_CTYPE_DOMAIN (c) && isxdigit (CTYPE_CONV(c)))
-#define ISDIGIT_LOCALE(c) (IN_CTYPE_DOMAIN (c) && isdigit (CTYPE_CONV(c)))
-
-#if STDC_HEADERS
-# define TOLOWER(c) (tolower (CTYPE_CONV(c)))
-# define TOUPPER(c) (toupper (CTYPE_CONV(c)))
-#else
-# define TOLOWER(c) (ISUPPER (c) ? tolower (CTYPE_CONV(c)) : (c))
-# define TOUPPER(c) (ISLOWER (c) ? toupper (CTYPE_CONV(c)) : (c))
-#endif
-
-/* ISDIGIT differs from ISDIGIT_LOCALE, as follows:
-   - Its arg may be any int or unsigned int; it need not be an unsigned char.
-   - It's guaranteed to evaluate its argument exactly once.
-   - It's typically faster.
-   Posix 1003.2-1992 section 2.5.2.1 page 50 lines 1556-1558 says that
-   only '0' through '9' are digits.  Prefer ISDIGIT to ISDIGIT_LOCALE unless
-   it's important to use the locale's definition of `digit' even when the
-   host does not conform to Posix.  */
-#define ISDIGIT(c) ((unsigned) (c) - '0' <= 9)
-
-/* Define a default escape character; its different for EBCDIC.  */
+/* Define a default escape character; it's different for EBCDIC.  */
 #ifndef TARGET_ESC
 #define TARGET_ESC 033
 #endif
diff --git a/gcc/tradcif.y b/gcc/tradcif.y
index 19e8b51598c8..1cc7aa8dbcfe 100644
--- a/gcc/tradcif.y
+++ b/gcc/tradcif.y
@@ -402,13 +402,13 @@ yylex ()
   if (c >= '0' && c <= '9') {
     /* It's a number */
     for (namelen = 0;
-	 c = tokstart[namelen], is_idchar[c] || c == '.'; 
+	 c = tokstart[namelen], is_idchar (c) || c == '.'; 
 	 namelen++)
       ;
     return parse_number (namelen);
   }
   
-  if (!is_idstart[c]) {
+  if (!is_idstart (c)) {
     yyerror ("Invalid token in expression");
     return ERROR;
   }
@@ -416,7 +416,7 @@ yylex ()
   /* It is a name.  See how long it is.  */
   
   for (namelen = 0;
-       is_idchar[(int)(unsigned char)tokstart[namelen]];
+       is_idchar (tokstart[namelen]);
        namelen++)
     ;
   
diff --git a/gcc/tradcpp.c b/gcc/tradcpp.c
index 5db2a84086ea..2117903ef2b0 100644
--- a/gcc/tradcpp.c
+++ b/gcc/tradcpp.c
@@ -376,7 +376,6 @@ static void output_line_command PARAMS ((FILE_BUF *, FILE_BUF *,
 
 static int eval_if_expression	PARAMS ((const U_CHAR *, int));
 
-static void initialize_char_syntax	PARAMS ((void));
 static void initialize_builtins	PARAMS ((void));
 static void run_directive	PARAMS ((const char *, size_t,
 					 enum node_type));
@@ -424,17 +423,8 @@ struct directive directive_table[] = {
   {  -1, 0, "", T_UNUSED},
 };
 
-/* table to tell if char can be part of a C identifier. */
-U_CHAR is_idchar[256];
-/* table to tell if char can be first char of a c identifier. */
-U_CHAR is_idstart[256];
-/* table to tell if c is horizontal space.  */
-U_CHAR is_hor_space[256];
-/* table to tell if c is horizontal or vertical space.  */
-U_CHAR is_space[256];
-
-#define SKIP_WHITE_SPACE(p) do { while (is_hor_space[*p]) p++; } while (0)
-#define SKIP_ALL_WHITE_SPACE(p) do { while (is_space[*p]) p++; } while (0)
+#define SKIP_WHITE_SPACE(p) do { while (is_nvspace(*p)) p++; } while (0)
+#define SKIP_ALL_WHITE_SPACE(p) do { while (is_space(*p)) p++; } while (0)
   
 int errors = 0;			/* Error counter for exit code */
 
@@ -522,9 +512,6 @@ main (argc, argv)
   in_fname = NULL;
   out_fname = NULL;
 
-  /* Initialize is_idchar to allow $.  */
-  initialize_char_syntax ();
-
   no_line_commands = 0;
   dump_macros = 0;
   no_output = 0;
@@ -726,11 +713,7 @@ main (argc, argv)
   if (user_label_prefix == 0)
     user_label_prefix = USER_LABEL_PREFIX;
 
-  /* Initialize is_idchar.  */
-  initialize_char_syntax ();
-
-  /* Install __LINE__, etc.  Must follow initialize_char_syntax
-     and option processing.  */
+  /* Install __LINE__, etc.  Must follow option processing.  */
   initialize_builtins ();
 
   /* Do defines specified with -D and undefines specified with -U.  */
@@ -1052,14 +1035,14 @@ name_newline_fix (bp)
 
   /* What follows the backslash-newlines is not embarrassing.  */
 
-  if (count == 0 || !is_idchar[*p])
+  if (count == 0 || !is_idchar (*p))
     return;
 
   /* Copy all potentially embarrassing characters
      that follow the backslash-newline pairs
      down to where the pairs originally started.  */
 
-  while (is_idchar[*p])
+  while (is_idchar (*p))
     *bp++ = *p++;
 
   /* Now write the same number of pairs after the embarrassing chars.  */
@@ -1463,7 +1446,7 @@ do { ip = &instack[indepth];		\
 	    /* If expanding a macro arg, keep the newline -.  */
 	    *obp++ = '-';
 	  }
-	} else if (is_space[*ibp]) {
+	} else if (is_space (*ibp)) {
 	  /* Newline Space does not prevent expansion of preceding token
 	     so expand the preceding token and then come back.  */
 	  if (ident_length > 0)
@@ -1514,7 +1497,7 @@ do { ip = &instack[indepth];		\
 	ibp--;
 	/* If we have an identifier that ends here, process it now, so
 	   we get the right error for recursion.  */
-	if (ident_length && ! is_idchar[*instack[indepth - 1].bufp]) {
+	if (ident_length && ! is_idchar (*instack[indepth - 1].bufp)) {
 	  redo_char = 1;
 	  goto randomchar;
 	}
@@ -1642,7 +1625,7 @@ randomchar:
 		      *obp++ = '/';
 		    }
 		  }
-		  else if (is_space[*ibp]) {
+		  else if (is_space (*ibp)) {
 		    *obp++ = *ibp++;
 		    if (ibp[-1] == '\n') {
 		      if (ip->macro == 0) {
@@ -1837,7 +1820,7 @@ handle_directive (ip, op)
   bp = ip->bufp;
   /* Skip whitespace and \-newline.  */
   while (1) {
-    if (is_hor_space[*bp])
+    if (is_nvspace (*bp))
       bp++;
     else if (*bp == '/' && (newline_fix (bp + 1), bp[1]) == '*') {
       ip->bufp = bp;
@@ -1854,12 +1837,12 @@ handle_directive (ip, op)
 
   cp = bp;
   while (1) {
-    if (is_idchar[*cp])
+    if (is_idchar (*cp))
       cp++;
     else {
       if (*cp == '\\' && cp[1] == '\n')
 	name_newline_fix (cp);
-      if (is_idchar[*cp])
+      if (is_idchar (*cp))
 	cp++;
       else break;
     }
@@ -1996,11 +1979,11 @@ handle_directive (ip, op)
 	    if (*xp == '\n') {
 	      xp++;
 	      cp--;
-	      if (cp != buf && is_space[cp[-1]]) {
-		while (cp != buf && is_space[cp[-1]]) cp--;
+	      if (cp != buf && is_space (cp[-1])) {
+		while (cp != buf && is_space(cp[-1])) cp--;
 		cp++;
 		SKIP_WHITE_SPACE (xp);
-	      } else if (is_space[*xp]) {
+	      } else if (is_space (*xp)) {
 		*cp++ = *xp++;
 		SKIP_WHITE_SPACE (xp);
 	      }
@@ -2172,11 +2155,11 @@ special_symbol (hp, op)
       SKIP_WHITE_SPACE (ip->bufp);
     }
 
-    if (!is_idstart[*ip->bufp])
+    if (!is_idstart (*ip->bufp))
       goto oops;
     if (lookup (ip->bufp, -1, -1))
       buf = " 1 ";
-    while (is_idchar[*ip->bufp])
+    while (is_idchar (*ip->bufp))
       ++ip->bufp;
     SKIP_WHITE_SPACE (ip->bufp);
     if (paren) {
@@ -2235,7 +2218,7 @@ get_filename:
   SKIP_WHITE_SPACE (fbeg);
   /* Discard trailing whitespace so we can easily see
      if we have parsed all the significant chars we were given.  */
-  while (limit != fbeg && is_hor_space[limit[-1]]) limit--;
+  while (limit != fbeg && is_nvspace (limit[-1])) limit--;
 
   switch (*fbeg++) {
   case '\"':
@@ -2514,17 +2497,17 @@ do_define (buf, limit, op)
 
   bp = buf;
 
-  while (is_hor_space[*bp])
+  while (is_nvspace (*bp))
     bp++;
 
   symname = bp;			/* remember where it starts */
-  while (is_idchar[*bp] && bp < limit) {
+  while (is_idchar (*bp) && bp < limit) {
     bp++;
   }
   sym_length = bp - symname;
   if (sym_length == 0)
     error ("invalid macro name");
-  else if (!is_idstart[*symname]) {
+  else if (!is_idstart (*symname)) {
     U_CHAR *msg;			/* what pain... */
     msg = (U_CHAR *) alloca (sym_length + 1);
     memcpy (msg, symname, sym_length);
@@ -2556,11 +2539,11 @@ do_define (buf, limit, op)
       temp->argno = argno++;
       arg_ptrs = temp;
 
-      if (!is_idstart[*bp])
+      if (!is_idstart (*bp))
 	warning ("parameter name starts with a digit in #define");
 
       /* Find the end of the arg name.  */
-      while (is_idchar[*bp]) {
+      while (is_idchar (*bp)) {
 	bp++;
       }
       temp->length = bp - temp->name;
@@ -2581,7 +2564,7 @@ do_define (buf, limit, op)
     }
 
     ++bp;			/* skip paren */
-    while (is_hor_space[*bp])	/* and leading whitespace */
+    while (is_nvspace (*bp))	/* and leading whitespace */
       ++bp;
     /* now everything from bp before limit is the definition. */
     defn = collect_expansion (bp, limit, argno, arg_ptrs);
@@ -2608,7 +2591,7 @@ do_define (buf, limit, op)
     }
   } else {
     /* simple expansion or empty definition; skip leading whitespace */
-    while (is_hor_space[*bp])
+    while (is_nvspace (*bp))
       ++bp;
     /* now everything from bp before limit is the definition. */
     defn = collect_expansion (bp, limit, -1, 0);
@@ -2689,17 +2672,17 @@ comp_def_part (first, beg1, len1, beg2, len2, last)
   register const U_CHAR *end1 = beg1 + len1;
   register const U_CHAR *end2 = beg2 + len2;
   if (first) {
-    while (beg1 != end1 && is_space[*beg1]) beg1++;
-    while (beg2 != end2 && is_space[*beg2]) beg2++;
+    while (beg1 != end1 && is_space (*beg1)) beg1++;
+    while (beg2 != end2 && is_space (*beg2)) beg2++;
   }
   if (last) {
-    while (beg1 != end1 && is_space[end1[-1]]) end1--;
-    while (beg2 != end2 && is_space[end2[-1]]) end2--;
+    while (beg1 != end1 && is_space (end1[-1])) end1--;
+    while (beg2 != end2 && is_space (end2[-1])) end2--;
   }
   while (beg1 != end1 && beg2 != end2) {
-    if (is_space[*beg1] && is_space[*beg2]) {
-      while (beg1 != end1 && is_space[*beg1]) beg1++;
-      while (beg2 != end2 && is_space[*beg2]) beg2++;
+    if (is_space (*beg1) && is_space (*beg2)) {
+      while (beg1 != end1 && is_space (*beg1)) beg1++;
+      while (beg2 != end2 && is_space (*beg2)) beg2++;
     } else if (*beg1 == *beg2) {
       beg1++; beg2++;
     } else break;
@@ -2756,8 +2739,8 @@ collect_expansion (buf, end, nargs, arglist)
   /* Find end of leading whitespace.  */
   limit = end;
   p = buf;
-  while (p < limit && is_space[limit[-1]]) limit--;
-  while (p < limit && is_space[*p]) p++;
+  while (p < limit && is_space (limit[-1])) limit--;
+  while (p < limit && is_space (*p)) p++;
 
   /* Allocate space for the text in the macro definition.
      Leading and trailing whitespace chars need 2 bytes each.
@@ -2776,7 +2759,7 @@ collect_expansion (buf, end, nargs, arglist)
   p = buf;
 
   /* Convert leading whitespace to Newline-markers.  */
-  while (p < limit && is_space[*p]) {
+  while (p < limit && is_space (*p)) {
     *exp_p++ = '\n';
     *exp_p++ = *p++;
   }
@@ -2826,15 +2809,15 @@ collect_expansion (buf, end, nargs, arglist)
       break;
     }
 
-    if (is_idchar[c] && nargs > 0) {
+    if (is_idchar (c) && nargs > 0) {
       U_CHAR *id_beg = p - 1;
       int id_len;
 
       --exp_p;
-      while (p != limit && is_idchar[*p]) p++;
+      while (p != limit && is_idchar (*p)) p++;
       id_len = p - id_beg;
 
-      if (is_idstart[c]) {
+      if (is_idstart (c)) {
 	register struct arglist *arg;
 
 	for (arg = arglist; arg != NULL; arg = arg->next) {
@@ -2887,7 +2870,7 @@ collect_expansion (buf, end, nargs, arglist)
 
   if (limit < end) {
     /* Convert trailing whitespace to Newline-markers.  */
-    while (limit < end && is_space[*limit]) {
+    while (limit < end && is_space (*limit)) {
       *exp_p++ = '\n';
       *exp_p++ = *limit++;
     }
@@ -2941,7 +2924,7 @@ do_line (buf, limit, op)
     bp++;
 
 #if 0 /* #line 10"foo.c" is supposed to be allowed.  */
-  if (*bp && !is_space[*bp]) {
+  if (*bp && !is_space (*bp)) {
     error ("invalid format #line command");
     return;
   }
@@ -3030,7 +3013,7 @@ do_undef (buf, limit, op)
 
   SKIP_WHITE_SPACE (buf);
 
-  if (! strncmp ((const char *)buf, "defined", 7) && ! is_idchar[buf[7]])
+  if (! strncmp ((const char *)buf, "defined", 7) && ! is_idchar (buf[7]))
     warning ("undefining `defined'");
 
   while ((hp = lookup (buf, -1, -1)) != NULL) {
@@ -3121,11 +3104,11 @@ parse_assertion (buf, limit, answerp, type)
   unsigned int len;
 
   bp = symname;
-  if (bp < climit && is_idstart[*bp])
+  if (bp < climit && is_idstart (*bp))
     {
       do
 	bp++;
-      while (bp < climit && is_idchar[*bp]);
+      while (bp < climit && is_idchar (*bp));
     }
   len = bp - symname;
 
@@ -3177,9 +3160,9 @@ test_assertion (pbuf)
 
       /* Yuk.  We update pbuf to point after the assertion test.
 	 First, move past the identifier.  */
-      if (is_space[*buf])
+      if (is_space (*buf))
 	buf++;
-      while (is_idchar[*buf])
+      while (is_idchar (*buf))
 	buf++;
       /* If we have an answer, we need to move past the parentheses.  */
       if (answer)
@@ -3292,11 +3275,11 @@ canonicalize_text (buf, limit, climit)
 
   for (dest = result; buf < limit;)
     {
-      if (! is_space[*buf])
+      if (! is_space (*buf))
 	*dest++ = *buf++;
       else
 	{
-	  while (++buf < limit && is_space [*buf])
+	  while (++buf < limit && is_space (*buf))
 	    ;
 	  if (dest != result && buf != limit)
 	    *dest++ = ' ';
@@ -3411,10 +3394,10 @@ do_xifdef (buf, limit, type)
 
   /* Discard leading and trailing whitespace.  */
   SKIP_WHITE_SPACE (buf);
-  while (limit != buf && is_hor_space[limit[-1]]) limit--;
+  while (limit != buf && is_nvspace (limit[-1])) limit--;
 
   /* Find the end of the identifier at the beginning.  */
-  for (end = buf; is_idchar[*end]; end++);
+  for (end = buf; is_idchar (*end); end++);
 
   if (end == buf)
     skip = (type == T_IFDEF);
@@ -3521,7 +3504,7 @@ skip_if_group (ip, any)
 	 If not, this # is not special.  */
       bp = beg_of_line;
       while (1) {
-	if (is_hor_space[*bp])
+	if (is_nvspace (*bp))
 	  bp++;
 	else if (*bp == '\\' && bp[1] == '\n')
 	  bp += 2;
@@ -3545,7 +3528,7 @@ skip_if_group (ip, any)
 
       /* Skip whitespace and \-newline.  */
       while (1) {
-	if (is_hor_space[*bp])
+	if (is_nvspace (*bp))
 	  bp++;
 	else if (*bp == '\\' && bp[1] == '\n')
 	  bp += 2;
@@ -3565,12 +3548,12 @@ skip_if_group (ip, any)
 	 symbol-constituents so that we end up with a contiguous name.  */
 
       while (1) {
-	if (is_idchar[*bp])
+	if (is_idchar (*bp))
 	  bp++;
 	else {
 	  if (*bp == '\\' && bp[1] == '\n')
 	    name_newline_fix (bp);
-	  if (is_idchar[*bp])
+	  if (is_idchar (*bp))
 	    bp++;
 	  else break;
 	}
@@ -3579,7 +3562,7 @@ skip_if_group (ip, any)
       for (kt = directive_table; kt->length >= 0; kt++) {
 	IF_STACK_FRAME *temp;
 	if (strncmp ((const char *)cp, kt->name, kt->length) == 0
-	    && !is_idchar[cp[kt->length]]) {
+	    && !is_idchar (cp[kt->length])) {
 
 	  /* If we are asked to return on next directive,
 	     do so now.  */
@@ -3926,7 +3909,7 @@ macroexpand (hp, op)
     if (i == 1) {
       register const U_CHAR *bp = args[0].raw;
       register const U_CHAR *lim = bp + args[0].raw_length;
-      while (bp != lim && is_space[*bp]) bp++;
+      while (bp != lim && is_space (*bp)) bp++;
       if (bp == lim)
 	i = 0;
     }
@@ -3994,10 +3977,10 @@ macroexpand (hp, op)
 	  int c;
 	  i = 0;
 	  while (i < arglen
-		 && (c = arg->raw[i], is_space[c]))
+		 && (c = arg->raw[i], is_space (c)))
 	    i++;
 	  while (i < arglen
-		 && (c = arg->raw[arglen - 1], is_space[c]))
+		 && (c = arg->raw[arglen - 1], is_space (c)))
 	    arglen--;
 	  for (; i < arglen; i++) {
 	    c = arg->raw[i];
@@ -4012,13 +3995,13 @@ macroexpand (hp, op)
 	    /* Internal sequences of whitespace are replaced by one space
 	       except within an string or char token.  */
 	    if (! in_string
-		&& (c == '\n' ? arg->raw[i+1] == '\n' : is_space[c])) {
+		&& (c == '\n' ? arg->raw[i+1] == '\n' : is_space (c))) {
 	      while (1) {
 		/* Note that Newline Space does occur within whitespace
 		   sequences; consider it part of the sequence.  */
-		if (c == '\n' && is_space[arg->raw[i+1]])
+		if (c == '\n' && is_space (arg->raw[i+1]))
 		  i += 2;
-		else if (c != '\n' && is_space[c])
+		else if (c != '\n' && is_space (c))
 		  i++;
 		else break;
 		c = arg->raw[i];
@@ -4054,8 +4037,8 @@ macroexpand (hp, op)
 	  const U_CHAR *l1 = p1 + arg->raw_length;
 
 	  if (ap->raw_before) {
-	    while (p1 != l1 && is_space[*p1]) p1++;
-	    while (p1 != l1 && is_idchar[*p1])
+	    while (p1 != l1 && is_space (*p1)) p1++;
+	    while (p1 != l1 && is_idchar (*p1))
 	      xbuf[totlen++] = *p1++;
 	    /* Delete any no-reexpansion marker that follows
 	       an identifier at the beginning of the argument
@@ -4067,7 +4050,7 @@ macroexpand (hp, op)
 	    /* Arg is concatenated after: delete trailing whitespace,
 	       whitespace markers, and no-reexpansion markers.  */
 	    while (p1 != l1) {
-	      if (is_space[l1[-1]]) l1--;
+	      if (is_space (l1[-1])) l1--;
 	      else if (l1[-1] == '-') {
 		const U_CHAR *p2 = l1 - 1;
 		/* If a `-' is preceded by an odd number of newlines then it
@@ -4681,7 +4664,7 @@ install (name, len, type, hash)
 
   if (len < 0) {
     p = name;
-    while (is_idchar[*p])
+    while (is_idchar (*p))
       p++;
     len = p - name;
   }
@@ -4725,7 +4708,7 @@ lookup (name, len, hash)
   register HASHNODE *bucket;
 
   if (len < 0) {
-    for (bp = name; is_idchar[*bp]; bp++) ;
+    for (bp = name; is_idchar (*bp); bp++) ;
     len = bp - name;
   }
 
@@ -4896,44 +4879,6 @@ dump_arg_n (defn, argnum)
     p++;
   }
 }
-
-/* Initialize syntactic classifications of characters.  */
-static void
-initialize_char_syntax ()
-{
-  register int i;
-
-  /*
-   * Set up is_idchar and is_idstart tables.  These should be
-   * faster than saying (is_alpha (c) || c == '_'), etc.
-   * Must do set up these things before calling any routines tthat
-   * refer to them.
-   */
-  for (i = 'a'; i <= 'z'; i++) {
-    is_idchar[i - 'a' + 'A'] = 1;
-    is_idchar[i] = 1;
-    is_idstart[i - 'a' + 'A'] = 1;
-    is_idstart[i] = 1;
-  }
-  for (i = '0'; i <= '9'; i++)
-    is_idchar[i] = 1;
-  is_idchar['_'] = 1;
-  is_idstart['_'] = 1;
-
-  /* horizontal space table */
-  is_hor_space[' '] = 1;
-  is_hor_space['\t'] = 1;
-  is_hor_space['\v'] = 1;
-  is_hor_space['\f'] = 1;
-  is_hor_space['\r'] = 1;
-
-  is_space[' '] = 1;
-  is_space['\t'] = 1;
-  is_space['\v'] = 1;
-  is_space['\f'] = 1;
-  is_space['\n'] = 1;
-  is_space['\r'] = 1;
-}
 
 /* Initialize the built-in macros.  */
 #define DSC(x) U x, sizeof x - 1
diff --git a/gcc/tradcpp.h b/gcc/tradcpp.h
index b646939528e7..f4c9ff34e3de 100644
--- a/gcc/tradcpp.h
+++ b/gcc/tradcpp.h
@@ -36,7 +36,9 @@ extern struct hashnode *lookup PARAMS ((const unsigned char *, int, int));
 extern int parse_c_expression PARAMS ((const char *));  /* in tradcif.y */
 extern int test_assertion PARAMS ((unsigned char **));
 
-/* some external tables of character types */
-extern unsigned char is_idstart[], is_idchar[];
+#define is_idchar(x)	ISIDNUM(x)
+#define is_idstart(x)	ISIDST(x)
+#define is_space(x)	ISSPACE(x)
+#define is_nvspace(x)	IS_NVSPACE(x)
 
 #endif /* ! _TRADCPP_H_ */
diff --git a/include/ChangeLog b/include/ChangeLog
index 1c3968bdcc1d..69c04ad6dbf1 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,7 @@
+2000-12-07  Zack Weinberg  <zack@wolery.stanford.edu>
+
+	* safe-ctype.h: New file.
+
 2000-12-06  Rodney Brown  <RodneyBrown@mynd.com>
 
 	* getopt.h obstack.h: Standarize copyright statement.
diff --git a/include/safe-ctype.h b/include/safe-ctype.h
new file mode 100644
index 000000000000..977653c75a2f
--- /dev/null
+++ b/include/safe-ctype.h
@@ -0,0 +1,105 @@
+/* <ctype.h> replacement macros.
+
+   Copyright (C) 2000 Free Software Foundation, Inc.
+   Contributed by Zack Weinberg <zackw@stanford.edu>.
+
+This file is part of the libiberty library.
+Libiberty is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public
+License as published by the Free Software Foundation; either
+version 2 of the License, or (at your option) any later version.
+
+Libiberty is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with libiberty; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+/* This is a compatible replacement of the standard C library's <ctype.h>
+   with the following properties:
+
+   - Implements all isxxx() macros required by C99.
+   - Also implements some character classes useful when
+     parsing C-like languages.
+   - Does not change behavior depending on the current locale.
+   - Behaves properly for all values in the range of a signed or
+     unsigned char.
+
+   To avoid conflicts, this header defines the isxxx functions in upper
+   case, e.g. ISALPHA not isalpha.  */
+
+#ifndef SAFE_CTYPE_H
+#define SAFE_CTYPE_H
+
+#ifdef isalpha
+ #error "safe-ctype.h and ctype.h may not be used simultaneously"
+#else
+
+/* Categories.  */
+
+enum {
+  /* In C99 */
+  _sch_isblank  = 0x0001,	/* space \t */
+  _sch_iscntrl  = 0x0002,	/* nonprinting characters */
+  _sch_isdigit  = 0x0004,	/* 0-9 */
+  _sch_islower  = 0x0008,	/* a-z */
+  _sch_isprint  = 0x0010,	/* any printing character including ' ' */
+  _sch_ispunct  = 0x0020,	/* all punctuation */
+  _sch_isspace  = 0x0040,	/* space \t \n \r \f \v */
+  _sch_isupper  = 0x0080,	/* A-Z */
+  _sch_isxdigit = 0x0100,	/* 0-9A-Fa-f */
+
+  /* Extra categories useful to cpplib.  */
+  _sch_isidst	= 0x0200,	/* A-Za-z_ */
+  _sch_isvsp    = 0x0400,	/* \n \r */
+  _sch_isnvsp   = 0x0800,	/* space \t \f \v \0 */
+
+  /* Combinations of the above.  */
+  _sch_isalpha  = _sch_isupper|_sch_islower,	/* A-Za-z */
+  _sch_isalnum  = _sch_isalpha|_sch_isdigit,	/* A-Za-z0-9 */
+  _sch_isidnum  = _sch_isidst|_sch_isdigit,	/* A-Za-z0-9_ */
+  _sch_isgraph  = _sch_isalnum|_sch_ispunct,	/* isprint and not space */
+  _sch_iscppsp  = _sch_isvsp|_sch_isnvsp	/* isspace + \0 */
+};
+
+/* This code fundamentally assumes that a byte is 8 bits.  Test this
+   at compile time.  */
+
+extern int a_byte_isnt_eight_bits[(unsigned char)256 == 0 ? 1 : -1];
+
+/* Character classification.  */
+extern const unsigned short _sch_istable[256];
+
+#define _sch_test(c, bit) (_sch_istable[(int)(unsigned char)(c)] & (bit))
+
+#define ISALPHA(c)  _sch_test(c, _sch_isalpha)
+#define ISALNUM(c)  _sch_test(c, _sch_isalnum)
+#define ISBLANK(c)  _sch_test(c, _sch_isblank)
+#define ISCNTRL(c)  _sch_test(c, _sch_iscntrl)
+#define ISDIGIT(c)  _sch_test(c, _sch_isdigit)
+#define ISGRAPH(c)  _sch_test(c, _sch_isgraph)
+#define ISLOWER(c)  _sch_test(c, _sch_islower)
+#define ISPRINT(c)  _sch_test(c, _sch_isprint)
+#define ISPUNCT(c)  _sch_test(c, _sch_ispunct)
+#define ISSPACE(c)  _sch_test(c, _sch_isspace)
+#define ISUPPER(c)  _sch_test(c, _sch_isupper)
+#define ISXDIGIT(c) _sch_test(c, _sch_isxdigit)
+
+#define ISIDNUM(c)	_sch_test(c, _sch_isidnum)
+#define ISIDST(c)	_sch_test(c, _sch_isidst)
+#define IS_VSPACE(c)	_sch_test(c, _sch_isvsp)
+#define IS_NVSPACE(c)	_sch_test(c, _sch_isnvsp)
+#define IS_SPACE_OR_NUL(c)	_sch_test(c, _sch_iscppsp)
+
+/* Character transformation.  */
+extern const unsigned char  _sch_toupper[256];
+extern const unsigned char  _sch_tolower[256];
+#define TOUPPER(c) _sch_toupper[(int)(unsigned char)(c)]
+#define TOLOWER(c) _sch_tolower[(int)(unsigned char)(c)]
+
+#endif /* no ctype.h */
+#endif /* SAFE_CTYPE_H */
diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog
index 6e7e606638c3..6e2b3e981832 100644
--- a/libiberty/ChangeLog
+++ b/libiberty/ChangeLog
@@ -1,3 +1,15 @@
+2000-12-07  Zack Weinberg  <zack@wolery.stanford.edu>
+
+	* safe-ctype.c: New file.
+	* Makefile.in (CFILES): Add safe-ctype.c.
+	(REQUIRED_OFILES): Add safe-ctype.o.
+
+	* argv.c: Define ISBLANK and use it, not isspace.
+	* basename.c, cplus-dem.c, fnmatch.c, pexecute.c, strtod.c,
+	strtol.c, strtoul.c: Include safe-ctype.h, not ctype.h.  Use
+	uppercase ctype macros.  Don't test ISUPPER(c)/ISLOWER(c)
+	before calling TOLOWER(c)/TOUPPER(c).
+
 2000-12-07  Mike Stump  <mrs@wrs.com>
 
 	* Makefile.in (distclean): When cleaning, remove testsuite.
@@ -13,7 +25,7 @@
 	* cplus-dem.c: Likewise.
 	(current_demangling_style): Now auto_demangling.
 	(cplus_demangle): Try v3 demangling if AUTO_DEMANGLING.
-	(main): Use standard symbol chars for auto_demangling.	
+	(main): Use standard symbol chars for auto_demangling.
 
 2000-11-26  Mark Mitchell  <mark@codesourcery.com>
 
diff --git a/libiberty/Makefile.in b/libiberty/Makefile.in
index 850b9d9f89b1..238902b274fa 100644
--- a/libiberty/Makefile.in
+++ b/libiberty/Makefile.in
@@ -128,22 +128,22 @@ CFILES = asprintf.c alloca.c argv.c atexit.c basename.c bcmp.c bcopy.c	      \
 	bzero.c calloc.c choose-temp.c clock.c concat.c cplus-dem.c	      \
         cp-demangle.c dyn-string.c fdmatch.c fnmatch.c getcwd.c		      \
 	getpwd.c getopt.c getopt1.c getpagesize.c getruntime.c		      \
-	floatformat.c hashtab.c hex.c index.c insque.c md5.c memchr.c memcmp.c\
-	memcpy.c memmove.c memset.c mkstemps.c objalloc.c obstack.c	      \
+	floatformat.c hashtab.c hex.c index.c insque.c md5.c memchr.c         \
+	memcmp.c memcpy.c memmove.c memset.c mkstemps.c objalloc.c obstack.c  \
 	partition.c pexecute.c putenv.c random.c rename.c rindex.c setenv.c   \
-	sigsetmask.c sort.c spaces.c splay-tree.c strcasecmp.c strncasecmp.c  \
-	strchr.c strdup.c strerror.c strncmp.c strrchr.c strsignal.c strstr.c \
-	strtod.c strtol.c strtoul.c tmpnam.c vasprintf.c vfork.c vfprintf.c   \
-	vprintf.c vsprintf.c waitpid.c xatexit.c xexit.c xmalloc.c	      \
-	xmemdup.c xstrdup.c xstrerror.c
+	sigsetmask.c safe-ctype.c sort.c spaces.c splay-tree.c strcasecmp.c   \
+	strncasecmp.c strchr.c strdup.c strerror.c strncmp.c strrchr.c        \
+	strsignal.c strstr.c strtod.c strtol.c strtoul.c tmpnam.c vasprintf.c \
+	vfork.c vfprintf.c vprintf.c vsprintf.c waitpid.c xatexit.c xexit.c   \
+	xmalloc.c xmemdup.c xstrdup.c xstrerror.c
 
 # These are always included in the library.
-REQUIRED_OFILES = argv.o choose-temp.o concat.o cplus-dem.o cp-demangle.o \
-	dyn-string.o fdmatch.o fnmatch.o getopt.o getopt1.o getpwd.o	  \
+REQUIRED_OFILES = argv.o choose-temp.o concat.o cplus-dem.o cp-demangle.o     \
+	dyn-string.o fdmatch.o fnmatch.o getopt.o getopt1.o getpwd.o          \
 	getruntime.o hashtab.o hex.o floatformat.o md5.o objalloc.o obstack.o \
-	partition.o pexecute.o sort.o spaces.o splay-tree.o strerror.o	  \
-	strsignal.o xatexit.o xexit.o xmalloc.o xmemdup.o xstrdup.o	  \
-	xstrerror.o
+	partition.o pexecute.o safe-ctype.o sort.o spaces.o splay-tree.o      \
+	strerror.o strsignal.o xatexit.o xexit.o xmalloc.o xmemdup.o          \
+	xstrdup.o xstrerror.o
 
 $(TARGETLIB): $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS) $(ALLOCA)
 	rm -f $(TARGETLIB)
diff --git a/libiberty/argv.c b/libiberty/argv.c
index f596ffd0110a..7aec9c04cf13 100644
--- a/libiberty/argv.c
+++ b/libiberty/argv.c
@@ -25,10 +25,7 @@ Boston, MA 02111-1307, USA.  */
 #include "ansidecl.h"
 #include "libiberty.h"
 
-#ifdef isspace
-#undef isspace
-#endif
-#define isspace(ch) ((ch) == ' ' || (ch) == '\t')
+#define ISBLANK(ch) ((ch) == ' ' || (ch) == '\t')
 
 /*  Routines imported from standard C runtime libraries. */
 
@@ -227,7 +224,7 @@ char *input;
       do
 	{
 	  /* Pick off argv[argc] */
-	  while (isspace (*input))
+	  while (ISBLANK (*input))
 	    {
 	      input++;
 	    }
@@ -260,7 +257,7 @@ char *input;
 	  arg = copybuf;
 	  while (*input != EOS)
 	    {
-	      if (isspace (*input) && !squote && !dquote && !bsquote)
+	      if (ISBLANK (*input) && !squote && !dquote && !bsquote)
 		{
 		  break;
 		}
@@ -326,7 +323,7 @@ char *input;
 	  argc++;
 	  argv[argc] = NULL;
 
-	  while (isspace (*input))
+	  while (ISBLANK (*input))
 	    {
 	      input++;
 	    }
diff --git a/libiberty/basename.c b/libiberty/basename.c
index 7698f06f8ae4..ca089ebbc5ae 100644
--- a/libiberty/basename.c
+++ b/libiberty/basename.c
@@ -20,7 +20,7 @@ BUGS
 
 #include "ansidecl.h"
 #include "libiberty.h"
-#include <ctype.h>
+#include "safe-ctype.h"
 
 #ifndef DIR_SEPARATOR
 #define DIR_SEPARATOR '/'
@@ -50,7 +50,7 @@ basename (name)
 
 #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
   /* Skip over the disk name in MSDOS pathnames. */
-  if (isalpha (name[0]) && name[1] == ':') 
+  if (ISALPHA (name[0]) && name[1] == ':') 
     name += 2;
 #endif
 
diff --git a/libiberty/cplus-dem.c b/libiberty/cplus-dem.c
index b88944573ba8..a42f45e6426b 100644
--- a/libiberty/cplus-dem.c
+++ b/libiberty/cplus-dem.c
@@ -34,7 +34,8 @@ Boston, MA 02111-1307, USA.  */
 #include "config.h"
 #endif
 
-#include <ctype.h>
+#include "safe-ctype.h"
+
 #include <sys/types.h>
 #include <string.h>
 #include <stdio.h>
@@ -544,10 +545,10 @@ consume_count (type)
 {
   int count = 0;
 
-  if (! isdigit ((unsigned char)**type))
+  if (! ISDIGIT ((unsigned char)**type))
     return -1;
 
-  while (isdigit ((unsigned char)**type))
+  while (ISDIGIT ((unsigned char)**type))
     {
       count *= 10;
 
@@ -558,7 +559,7 @@ consume_count (type)
 	 ten.  */
       if ((count % 10) != 0)
 	{
-	  while (isdigit ((unsigned char) **type))
+	  while (ISDIGIT ((unsigned char) **type))
 	    (*type)++;
 	  return -1;
 	}
@@ -584,7 +585,7 @@ consume_count_with_underscores (mangled)
   if (**mangled == '_')
     {
       (*mangled)++;
-      if (!isdigit ((unsigned char)**mangled))
+      if (!ISDIGIT ((unsigned char)**mangled))
 	return -1;
 
       idx = consume_count (mangled);
@@ -716,8 +717,8 @@ cplus_demangle_opname (opname, result, options)
 	}
     }
   else if (opname[0] == '_' && opname[1] == '_'
-	   && islower((unsigned char)opname[2])
-	   && islower((unsigned char)opname[3]))
+	   && ISLOWER((unsigned char)opname[2])
+	   && ISLOWER((unsigned char)opname[3]))
     {
       if (opname[4] == '\0')
 	{
@@ -1003,8 +1004,8 @@ ada_demangle (mangled, option)
 	     sizeof (char));
   demangled = demangling_buffer;
   
-  if (isdigit ((unsigned char) mangled[len0 - 1])) {
-    for (i = len0 - 2; i >= 0 && isdigit ((unsigned char) mangled[i]); i -= 1)
+  if (ISDIGIT ((unsigned char) mangled[len0 - 1])) {
+    for (i = len0 - 2; i >= 0 && ISDIGIT ((unsigned char) mangled[i]); i -= 1)
       ;
     if (i > 1 && mangled[i] == '_' && mangled[i - 1] == '_')
       {
@@ -1018,7 +1019,7 @@ ada_demangle (mangled, option)
       }
   }
   
-  for (i = 0, j = 0; i < len0 && ! isalpha ((unsigned char)mangled[i]);
+  for (i = 0, j = 0; i < len0 && ! ISALPHA ((unsigned char)mangled[i]);
        i += 1, j += 1)
     demangled[j] = mangled[i];
   
@@ -1042,7 +1043,7 @@ ada_demangle (mangled, option)
   demangled[j] = '\000';
   
   for (i = 0; demangled[i] != '\0'; i += 1)
-    if (isupper ((unsigned char)demangled[i]) || demangled[i] == ' ')
+    if (ISUPPER ((unsigned char)demangled[i]) || demangled[i] == ' ')
       goto Suppress;
 
   if (! changed)
@@ -1532,7 +1533,7 @@ demangle_signature (work, mangled, declp)
             if (HP_DEMANGLING)
               {
                 (*mangled)++;
-                while (**mangled && isdigit ((unsigned char)**mangled))
+                while (**mangled && ISDIGIT ((unsigned char)**mangled))
                   (*mangled)++;
               }
             else
@@ -1865,7 +1866,7 @@ demangle_real_value (work, mangled, s)
       string_appendn (s, "-", 1);
       (*mangled)++;
     }
-  while (isdigit ((unsigned char)**mangled))
+  while (ISDIGIT ((unsigned char)**mangled))
     {
       string_appendn (s, *mangled, 1);
       (*mangled)++;
@@ -1874,7 +1875,7 @@ demangle_real_value (work, mangled, s)
     {
       string_appendn (s, ".", 1);
       (*mangled)++;
-      while (isdigit ((unsigned char)**mangled))
+      while (ISDIGIT ((unsigned char)**mangled))
 	{
 	  string_appendn (s, *mangled, 1);
 	  (*mangled)++;
@@ -1884,7 +1885,7 @@ demangle_real_value (work, mangled, s)
     {
       string_appendn (s, "e", 1);
       (*mangled)++;
-      while (isdigit ((unsigned char)**mangled))
+      while (ISDIGIT ((unsigned char)**mangled))
 	{
 	  string_appendn (s, *mangled, 1);
 	  (*mangled)++;
@@ -2735,20 +2736,20 @@ demangle_prefix (work, mangled, declp)
     }
   else if (work -> static_type)
     {
-      if (!isdigit ((unsigned char)scan[0]) && (scan[0] != 't'))
+      if (!ISDIGIT ((unsigned char)scan[0]) && (scan[0] != 't'))
 	{
 	  success = 0;
 	}
     }
   else if ((scan == *mangled)
-	   && (isdigit ((unsigned char)scan[2]) || (scan[2] == 'Q')
+	   && (ISDIGIT ((unsigned char)scan[2]) || (scan[2] == 'Q')
 	       || (scan[2] == 't') || (scan[2] == 'K') || (scan[2] == 'H')))
     {
       /* The ARM says nothing about the mangling of local variables.
 	 But cfront mangles local variables by prepending __<nesting_level>
 	 to them. As an extension to ARM demangling we handle this case.  */
       if ((LUCID_DEMANGLING || ARM_DEMANGLING || HP_DEMANGLING)
-	  && isdigit ((unsigned char)scan[2]))
+	  && ISDIGIT ((unsigned char)scan[2]))
 	{
 	  *mangled = scan + 2;
 	  consume_count (mangled);
@@ -2785,7 +2786,7 @@ demangle_prefix (work, mangled, declp)
       /* EDG template? */
       demangle_arm_hp_template (work, mangled, strlen (*mangled), declp);
     }
-  else if ((scan == *mangled) && !isdigit ((unsigned char)scan[2])
+  else if ((scan == *mangled) && !ISDIGIT ((unsigned char)scan[2])
 	   && (scan[2] != 't'))
     {
       /* Mangled name starts with "__".  Skip over any leading '_' characters,
@@ -2907,7 +2908,7 @@ gnu_special (work, mangled, declp)
 					   1);
 	      break;
 	    default:
-	      if (isdigit((unsigned char)*mangled[0]))
+	      if (ISDIGIT((unsigned char)*mangled[0]))
 		{
 		  n = consume_count(mangled);
 		  /* We may be seeing a too-large size, or else a
@@ -3434,13 +3435,13 @@ get_count (type, count)
   const char *p;
   int n;
 
-  if (!isdigit ((unsigned char)**type))
+  if (!ISDIGIT ((unsigned char)**type))
     return (0);
   else
     {
       *count = **type - '0';
       (*type)++;
-      if (isdigit ((unsigned char)**type))
+      if (ISDIGIT ((unsigned char)**type))
 	{
 	  p = *type;
 	  n = *count;
@@ -3450,7 +3451,7 @@ get_count (type, count)
 	      n += *p - '0';
 	      p++;
 	    }
-	  while (isdigit ((unsigned char)*p));
+	  while (ISDIGIT ((unsigned char)*p));
 	  if (*p == '_')
 	    {
 	      *type = p + 1;
@@ -3580,7 +3581,7 @@ do_type (work, mangled, result)
 	    if (**mangled != 'Q')
 	      string_prepend (&decl, SCOPE_STRING (work));
 
-	    if (isdigit ((unsigned char)**mangled))
+	    if (ISDIGIT ((unsigned char)**mangled))
 	      {
 		n = consume_count (mangled);
 		if (n == -1
@@ -3900,7 +3901,7 @@ demangle_fund_type (work, mangled, result)
       break;
     case 'G':
       (*mangled)++;
-      if (!isdigit ((unsigned char)**mangled))
+      if (!ISDIGIT ((unsigned char)**mangled))
 	{
 	  success = 0;
 	  break;
@@ -4012,12 +4013,12 @@ do_hpacc_template_const_value (work, mangled, result)
     }
 
   /* We have to be looking at an integer now */
-  if (!(isdigit ((unsigned char)**mangled)))
+  if (!(ISDIGIT ((unsigned char)**mangled)))
     return 0;
 
   /* We only deal with integral values for template
      parameters -- so it's OK to look only for digits */
-  while (isdigit ((unsigned char)**mangled))
+  while (ISDIGIT ((unsigned char)**mangled))
     {
       char_str[0] = **mangled;
       string_append (result, char_str);
@@ -4096,10 +4097,10 @@ snarf_numeric_literal (args, arg)
   else if (**args == '+')
     (*args)++;
 
-  if (!isdigit ((unsigned char)**args))
+  if (!ISDIGIT ((unsigned char)**args))
     return 0;
 
-  while (isdigit ((unsigned char)**args))
+  while (ISDIGIT ((unsigned char)**args))
     {
       char_str[0] = **args;
       string_append (arg, char_str);
@@ -4663,8 +4664,8 @@ demangle_function_name (work, mangled, declp, scan)
 	}
     }
   else if (declp->b[0] == '_' && declp->b[1] == '_'
-	   && islower((unsigned char)declp->b[2])
-	   && islower((unsigned char)declp->b[3]))
+	   && ISLOWER((unsigned char)declp->b[2])
+	   && ISLOWER((unsigned char)declp->b[3]))
     {
       if (declp->b[4] == '\0')
 	{
@@ -5125,7 +5126,7 @@ main (argc, argv)
 	  int i = 0;
 	  c = getchar ();
 	  /* Try to read a label.  */
-	  while (c != EOF && (isalnum (c) || strchr (valid_symbols, c)))
+	  while (c != EOF && (ISALNUM (c) || strchr (valid_symbols, c)))
 	    {
 	      if (i >= MBUF_SIZE-1)
 		break;
diff --git a/libiberty/fnmatch.c b/libiberty/fnmatch.c
index 0a9bfe6152bd..68f3e2679961 100644
--- a/libiberty/fnmatch.c
+++ b/libiberty/fnmatch.c
@@ -45,8 +45,7 @@ Boston, MA 02111-1307, USA.  */
 
 #include <errno.h>
 #include <fnmatch.h>
-#include <ctype.h>
-
+#include <safe-ctype.h>
 
 /* Comment out all this code if we are using the GNU C Library, and are not
    actually compiling the library itself.  This code is part of the GNU C
@@ -74,8 +73,7 @@ fnmatch (pattern, string, flags)
   register const char *p = pattern, *n = string;
   register unsigned char c;
 
-/* Note that this evalutes C many times.  */
-#define FOLD(c)	((flags & FNM_CASEFOLD) && isupper (c) ? tolower (c) : (c))
+#define FOLD(c)	((flags & FNM_CASEFOLD) ? TOLOWER (c) : (c))
 
   while ((c = *p++) != '\0')
     {
diff --git a/libiberty/pexecute.c b/libiberty/pexecute.c
index 34d2deb298b1..32943af59ef3 100644
--- a/libiberty/pexecute.c
+++ b/libiberty/pexecute.c
@@ -41,12 +41,12 @@ extern int errno;
 #ifdef HAVE_STDLIB_H
 #include <stdlib.h>
 #endif
-#define ISSPACE (x) isspace(x)
 #ifdef HAVE_SYS_WAIT_H
 #include <sys/wait.h>
 #endif
 
 #include "libiberty.h"
+#include "safe-ctype.h"
 
 /* stdin file number.  */
 #define STDIN_FILE_NO 0
diff --git a/libiberty/safe-ctype.c b/libiberty/safe-ctype.c
new file mode 100644
index 000000000000..b6722a26684b
--- /dev/null
+++ b/libiberty/safe-ctype.c
@@ -0,0 +1,162 @@
+/* <ctype.h> replacement macros.
+
+   Copyright (C) 2000 Free Software Foundation, Inc.
+   Contributed by Zack Weinberg <zackw@stanford.edu>.
+
+This file is part of the libiberty library.
+Libiberty is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public
+License as published by the Free Software Foundation; either
+version 2 of the License, or (at your option) any later version.
+
+Libiberty is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with libiberty; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+/* This is a compatible replacement of the standard C library's <ctype.h>
+   with the following properties:
+
+   - Implements all isxxx() macros required by C99.
+   - Also implements some character classes useful when
+     parsing C-like languages.
+   - Does not change behavior depending on the current locale.
+   - Behaves properly for all values in the range of a signed or
+     unsigned char.  */
+
+#include <safe-ctype.h>
+#include <stdio.h>  /* for EOF */
+
+/* Shorthand */
+#define bl _sch_isblank
+#define cn _sch_iscntrl
+#define di _sch_isdigit
+#define is _sch_isidst
+#define lo _sch_islower
+#define nv _sch_isnvsp
+#define pn _sch_ispunct
+#define pr _sch_isprint
+#define sp _sch_isspace
+#define up _sch_isupper
+#define vs _sch_isvsp
+#define xd _sch_isxdigit
+
+/* Masks.  */
+#define L  lo|is   |pr	/* lower case letter */
+#define XL lo|is|xd|pr	/* lowercase hex digit */
+#define U  up|is   |pr	/* upper case letter */
+#define XU up|is|xd|pr	/* uppercase hex digit */
+#define D  di   |xd|pr	/* decimal digit */
+#define P  pn      |pr	/* punctuation */
+#define _  pn|is   |pr	/* underscore */
+
+#define C           cn	/* control character */
+#define Z  nv      |cn	/* NUL */
+#define M  nv|sp   |cn	/* cursor movement: \f \v */
+#define V  vs|sp   |cn	/* vertical space: \r \n */
+#define T  nv|sp|bl|cn	/* tab */
+#define S  nv|sp|bl|pr	/* space */
+
+/* Are we ASCII? */
+#if '\n' == 0x0A && ' ' == 0x20 && '0' == 0x30 \
+  && 'A' == 0x41 && 'a' == 0x61 && '!' == 0x21 \
+  && EOF == -1
+
+const unsigned short _sch_istable[256] =
+{
+  Z,  C,  C,  C,   C,  C,  C,  C,   /* NUL SOH STX ETX  EOT ENQ ACK BEL */
+  C,  T,  V,  M,   M,  V,  C,  C,   /* BS  HT  LF  VT   FF  CR  SO  SI  */
+  C,  C,  C,  C,   C,  C,  C,  C,   /* DLE DC1 DC2 DC3  DC4 NAK SYN ETB */
+  C,  C,  C,  C,   C,  C,  C,  C,   /* CAN EM  SUB ESC  FS  GS  RS  US  */
+  S,  P,  P,  P,   P,  P,  P,  P,   /* SP  !   "   #    $   %   &   '   */
+  P,  P,  P,  P,   P,  P,  P,  P,   /* (   )   *   +    ,   -   .   /   */
+  D,  D,  D,  D,   D,  D,  D,  D,   /* 0   1   2   3    4   5   6   7   */
+  D,  D,  P,  P,   P,  P,  P,  P,   /* 8   9   :   ;    <   =   >   ?   */
+  P, XU, XU, XU,  XU, XU, XU,  U,   /* @   A   B   C    D   E   F   G   */
+  U,  U,  U,  U,   U,  U,  U,  U,   /* H   I   J   K    L   M   N   O   */
+  U,  U,  U,  U,   U,  U,  U,  U,   /* P   Q   R   S    T   U   V   W   */
+  U,  U,  U,  P,   P,  P,  P,  _,   /* X   Y   Z   [    \   ]   ^   _   */
+  P, XL, XL, XL,  XL, XL, XL,  L,   /* `   a   b   c    d   e   f   g   */
+  L,  L,  L,  L,   L,  L,  L,  L,   /* h   i   j   k    l   m   n   o   */
+  L,  L,  L,  L,   L,  L,  L,  L,   /* p   q   r   s    t   u   v   w   */
+  L,  L,  L,  P,   P,  P,  P,  C,   /* x   y   z   {    |   }   ~   DEL */
+
+  /* high half of unsigned char is locale-specific, so all tests are
+     false in "C" locale */
+  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,
+  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,
+  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,
+  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,
+
+  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,
+  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,
+  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,
+  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,
+};
+
+const unsigned char _sch_tolower[256] =
+{
+   0,  1,  2,  3,   4,  5,  6,  7,   8,  9, 10, 11,  12, 13, 14, 15,
+  16, 17, 18, 19,  20, 21, 22, 23,  24, 25, 26, 27,  28, 29, 30, 31,
+  32, 33, 34, 35,  36, 37, 38, 39,  40, 41, 42, 43,  44, 45, 46, 47,
+  48, 49, 50, 51,  52, 53, 54, 55,  56, 57, 58, 59,  60, 61, 62, 63,
+  64,
+
+  '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',
+
+  91, 92, 93, 94, 95, 96,
+
+  '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',
+
+ 123,124,125,126,127,
+
+ 128,129,130,131, 132,133,134,135, 136,137,138,139, 140,141,142,143,
+ 144,145,146,147, 148,149,150,151, 152,153,154,155, 156,157,158,159,
+ 160,161,162,163, 164,165,166,167, 168,169,170,171, 172,173,174,175,
+ 176,177,178,179, 180,181,182,183, 184,185,186,187, 188,189,190,191,
+
+ 192,193,194,195, 196,197,198,199, 200,201,202,203, 204,205,206,207,
+ 208,209,210,211, 212,213,214,215, 216,217,218,219, 220,221,222,223,
+ 224,225,226,227, 228,229,230,231, 232,233,234,235, 236,237,238,239,
+ 240,241,242,243, 244,245,246,247, 248,249,250,251, 252,253,254,255,
+};
+
+const unsigned char _sch_toupper[256] =
+{
+   0,  1,  2,  3,   4,  5,  6,  7,   8,  9, 10, 11,  12, 13, 14, 15,
+  16, 17, 18, 19,  20, 21, 22, 23,  24, 25, 26, 27,  28, 29, 30, 31,
+  32, 33, 34, 35,  36, 37, 38, 39,  40, 41, 42, 43,  44, 45, 46, 47,
+  48, 49, 50, 51,  52, 53, 54, 55,  56, 57, 58, 59,  60, 61, 62, 63,
+  64,
+
+  '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',
+
+  91, 92, 93, 94, 95, 96,
+
+  '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',
+
+ 123,124,125,126,127,
+
+ 128,129,130,131, 132,133,134,135, 136,137,138,139, 140,141,142,143,
+ 144,145,146,147, 148,149,150,151, 152,153,154,155, 156,157,158,159,
+ 160,161,162,163, 164,165,166,167, 168,169,170,171, 172,173,174,175,
+ 176,177,178,179, 180,181,182,183, 184,185,186,187, 188,189,190,191,
+
+ 192,193,194,195, 196,197,198,199, 200,201,202,203, 204,205,206,207,
+ 208,209,210,211, 212,213,214,215, 216,217,218,219, 220,221,222,223,
+ 224,225,226,227, 228,229,230,231, 232,233,234,235, 236,237,238,239,
+ 240,241,242,243, 244,245,246,247, 248,249,250,251, 252,253,254,255,
+};
+
+#else
+ #error "Unsupported host character set"
+#endif /* not ASCII */
diff --git a/libiberty/strtod.c b/libiberty/strtod.c
index c86c73de9b38..b1243acb6b3f 100644
--- a/libiberty/strtod.c
+++ b/libiberty/strtod.c
@@ -22,7 +22,7 @@ the resulting executable to be covered by the GNU General Public License.
 This exception does not however invalidate any other reasons why
 the executable file might be covered by the GNU General Public License. */
 
-#include <ctype.h>
+#include "safe-ctype.h"
 
 extern double atof ();
 
@@ -42,7 +42,7 @@ strtod (str, ptr)
   
   p = str;
   
-  while (isspace (*p))
+  while (ISSPACE (*p))
     ++p;
   
   if (*p == '+' || *p == '-')
@@ -88,10 +88,10 @@ strtod (str, ptr)
     }
 
   /* digits, with 0 or 1 periods in it.  */
-  if (isdigit (*p) || *p == '.')
+  if (ISDIGIT (*p) || *p == '.')
     {
       int got_dot = 0;
-      while (isdigit (*p) || (!got_dot && *p == '.'))
+      while (ISDIGIT (*p) || (!got_dot && *p == '.'))
 	{
 	  if (*p == '.')
 	    got_dot = 1;
@@ -105,9 +105,9 @@ strtod (str, ptr)
 	  i = 1;
 	  if (p[i] == '+' || p[i] == '-')
 	    ++i;
-	  if (isdigit (p[i]))
+	  if (ISDIGIT (p[i]))
 	    {
-	      while (isdigit (p[i]))
+	      while (ISDIGIT (p[i]))
 		++i;
 	      *ptr = p + i;
 	      return atof (str);
diff --git a/libiberty/strtol.c b/libiberty/strtol.c
index c05d0dd76a2e..7095c7254bed 100644
--- a/libiberty/strtol.c
+++ b/libiberty/strtol.c
@@ -37,15 +37,11 @@
 #ifdef HAVE_SYS_PARAM_H
 #include <sys/param.h>
 #endif
-#include <ctype.h>
 #include <errno.h>
 #ifdef NEED_DECLARATION_ERRNO
 extern int errno;
 #endif
-#if 0
-#include <stdlib.h>
-#endif
-#include "ansidecl.h"
+#include "safe-ctype.h"
 
 /* FIXME: It'd be nice to configure around these, but the include files are too
    painful.  These macros should at least be more portable than hardwired hex
@@ -88,7 +84,7 @@ strtol(nptr, endptr, base)
 	 */
 	do {
 		c = *s++;
-	} while (isspace(c));
+	} while (ISSPACE(c));
 	if (c == '-') {
 		neg = 1;
 		c = *s++;
@@ -124,10 +120,10 @@ strtol(nptr, endptr, base)
 	cutlim = cutoff % (unsigned long)base;
 	cutoff /= (unsigned long)base;
 	for (acc = 0, any = 0;; c = *s++) {
-		if (isdigit(c))
+		if (ISDIGIT(c))
 			c -= '0';
-		else if (isalpha(c))
-			c -= isupper(c) ? 'A' - 10 : 'a' - 10;
+		else if (ISALPHA(c))
+			c -= ISUPPER(c) ? 'A' - 10 : 'a' - 10;
 		else
 			break;
 		if (c >= base)
diff --git a/libiberty/strtoul.c b/libiberty/strtoul.c
index 87fa3ffdf936..ce969339bc25 100644
--- a/libiberty/strtoul.c
+++ b/libiberty/strtoul.c
@@ -74,7 +74,7 @@ strtoul(nptr, endptr, base)
 	 */
 	do {
 		c = *s++;
-	} while (isspace(c));
+	} while (ISSPACE(c));
 	if (c == '-') {
 		neg = 1;
 		c = *s++;
@@ -91,10 +91,10 @@ strtoul(nptr, endptr, base)
 	cutoff = (unsigned long)ULONG_MAX / (unsigned long)base;
 	cutlim = (unsigned long)ULONG_MAX % (unsigned long)base;
 	for (acc = 0, any = 0;; c = *s++) {
-		if (isdigit(c))
+		if (ISDIGIT(c))
 			c -= '0';
-		else if (isalpha(c))
-			c -= isupper(c) ? 'A' - 10 : 'a' - 10;
+		else if (ISALPHA(c))
+			c -= ISUPPER(c) ? 'A' - 10 : 'a' - 10;
 		else
 			break;
 		if (c >= base)
-- 
GitLab