Commit Graph

30362 Commits

Author SHA1 Message Date
Richard Earnshaw
8e49e00a2c * arm.c: Don't include tm.h directly.
From-SVN: r36269
2000-09-08 14:26:29 +00:00
Jan Hubicka
e65d02cf38 Fix typo
From-SVN: r36268
2000-09-08 12:37:10 +00:00
Jan Hubicka
bd5621a329 recog.c (validate_replace_rtx_1): Fix confusion about equality testing...
* recog.c (validate_replace_rtx_1): Fix confusion about equality
	testing; simplify subregs of constants and nested subregs.

From-SVN: r36267
2000-09-08 12:36:11 +00:00
Alexandre Oliva
6b3783de20 * config/sh/sh.md (symPLT_label2reg): Use operand3 for PIC reg.
From-SVN: r36266
2000-09-08 11:00:17 +00:00
Bernd Schmidt
9af354b715 Update docs for USE rtx.
From-SVN: r36265
2000-09-08 09:56:25 +00:00
Bernd Schmidt
ce701d1bd7 Fix computation of need_mode in choose_reload_regs.
From-SVN: r36264
2000-09-08 09:41:07 +00:00
Bernd Schmidt
82be40f7eb Some vector operation simplifications.
From-SVN: r36263
2000-09-08 09:39:23 +00:00
Jeff Law
d5e5ec886e Daily bump.
From-SVN: r36262
2000-09-08 01:45:07 -06:00
Richard Henderson
4287b5f14d lib1funcs.asm (__divsi3): Use .s1 for frcpa.
* config/ia64/lib1funcs.asm (__divsi3): Use .s1 for frcpa.
        (__modsi3, __umodsi3): Likewise.
        (__udivsi3): Likewise.  Normalize the TFmode values.

From-SVN: r36261
2000-09-07 23:17:23 -07:00
Geoff Keating
c5d71f39e0 sol-c0.c (_start): Declare `termfunc' parameter with a prototype.
* config/rs6000/sol-c0.c (_start): Declare `termfunc' parameter
	with a prototype.
	* config/rs6000/rs6000.h (RS6000_ARG_SIZE): Use cast to suppress
	warning.

From-SVN: r36260
2000-09-08 04:57:47 +00:00
Joern Rennecke
4c0d0505d9 Amend last change: add %, in front of Ldi%=:
From-SVN: r36259
2000-09-08 03:51:45 +01:00
J"orn Rennecke
712646d00e sh.md (cmpeqsi_ior_t, [...]): Remove.
* sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): Remove.
	(cmpeqdi_t): Add output pattern.
	(cmpeqdi_t+1): Don't split when not optimizing.
	Restore proper splitting operation.

From-SVN: r36258
2000-09-08 03:46:41 +01:00
Richard Henderson
30acbc3e34 c-lex.c (process_directive): If not HANDLE_GENERIC_PRAGMAS, do not call dispatch_pragma.
* c-lex.c (process_directive): If not HANDLE_GENERIC_PRAGMAS,
        do not call dispatch_pragma.

From-SVN: r36257
2000-09-07 18:38:08 -07:00
Jim Wilson
46146529f6 Fix ia64-linux compiler abort on perl.
* reload.c (push_reload): Use CLASS_CANNOT_CHANGE_MODE_P in addition
	to CLASS_CANNOT_CHANGE_MODE.
	* config/ia64/ia64.h (CLASS_CANNOT_CHANGE_MODE_P): True only if the
	mode classes are different.

From-SVN: r36256
2000-09-07 18:35:53 -07:00
Benjamin Kosnik
f1158db342 atomicity.h (__exchange_and_add): Change unused to __unused__.
2000-09-07  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* config/cpu/i386/bits/atomicity.h (__exchange_and_add): Change unused
	to __unused__.
	* config/cpu/ia64/bits/atomicity.h (__exchange_and_add): And here.
	* config/cpu/i486/bits/atomicity.h (__exchange_and_add): And here.

From-SVN: r36255
2000-09-08 01:30:38 +00:00
Zack Weinberg
6db8315512 cpplib.h (struct cpp_options): Add user_label_prefix member, left out of commit which removed cppulp.c.
* cpplib.h (struct cpp_options): Add user_label_prefix member,
	left out of commit which removed cppulp.c.

From-SVN: r36254
2000-09-08 01:29:56 +00:00
Richard Henderson
0d45144b57 bb-reorder.c (fixup_reorder_chain): Add jump in new block after switch for CASE_DROPS_THROUGH.
* bb-reorder.c (fixup_reorder_chain): Add jump in new block
        after switch for CASE_DROPS_THROUGH.

From-SVN: r36253
2000-09-07 17:25:05 -07:00
Benjamin Kosnik
7f586614b6 Add bits for --enable-maintainer-mode...
2000-09-07  Phil Edwards  <pme@sources.redhat.com>

	Add bits for --enable-maintainer-mode:
	- turns on enable_debug
          (doing "--enable-maint --disable-debug" will DTRT)
	- turns on -Werror, now off by default
	* acinclude.m4: Add bits.
	* aclocal.m4: Regenerate.
	* configure.in: Add defaults for GLIBCPP_ENABLE_DEBUG.
	* configure: Regenerate.

From-SVN: r36252
2000-09-07 22:40:17 +00:00
Benjamin Kosnik
bed7f38970 std_cwctype.h: Remove yesterday's hacks.
2000-09-07  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/std_cwctype.h: Remove yesterday's hacks.

From-SVN: r36251
2000-09-07 22:38:41 +00:00
Richard Henderson
e8cb487384 loop.c (strength_reduce): Call check_ext_dependant_givs.
* loop.c (strength_reduce): Call check_ext_dependant_givs.
        Properly extend the biv initial value for the giv.
        (record_biv): Zero ext_dependant.
        (record_giv): New argument ext_val.  Update all callers.
        (general_induction_var): Likewise.
        (consec_sets_giv): Likewise.
        (simplify_giv_expr): Likewise.  Fill in ext_val if we find
        a sign-extend, zero-extend, or truncate.
        (combine_givs_p): Make sure modes are compatible.
        (check_ext_dependant_givs): New.
        (extend_value_for_giv): New.
        * loop.h (struct induction): Add ext_dependant.
        * unroll.c (iteration_info): Extend the biv initial value for the giv.
        (find_splittable_givs): Likewise.
        (final_giv_value): Likewise.

From-SVN: r36250
2000-09-07 15:26:37 -07:00
Zack Weinberg
8b97c5f8ef c-pragma.h: Define HANDLE_GENERIC_PRAGMAS if REGISTER_TARGET_PRAGMAS is defined.
* c-pragma.h: Define HANDLE_GENERIC_PRAGMAS if
	REGISTER_TARGET_PRAGMAS is defined.  Duplicate some
	definitions from cpplib.h.
	* cpplib.h: Don't typedef struct cpp_reader if c-pragma.h has
	already done it.
	* tm.texi: Document HANDLE_PRAGMA as no longer supported.  Add
	documentation for REGISTER_TARGET_PRAGMAS.

	* c-lex.c: Include cpplib.h before c-pragma.h.  Define a
	default-pragma callback to implement -Wunknown-pragmas if
	USE_CPPLIB.
	* c-parse.in: Move all includes to top of file.
	* c-pragma.c: Include cpplib.h before c-pragma.h.  Include
	tm_p.h.
	(dispatch_pragma): Put the namespace in the -Wunknown-pragmas
	warning.
	(init_pragma): If REGISTER_TARGET_PRAGMAS is defined, call it.

	* arm.h, arm-protos.h, arm.c,
	  c4x.h, c4x-protos.h, c4x.c,
	  h8300.h, h8300-protos.h, h8300.c,
	  i370.h, i370-protos.h, i370.c,
	  i960.h, i960-protos.h, i960.c,
	  sh.h, sh-protos.h, sh.c,
	  v850.h, v850-protos.h, v850.c: Convert HANDLE_PRAGMA-based
	pragmata scheme to use REGISTER_TARGET_PRAGMAS instead.

	* d30v.h: Don't mention HANDLE_PRAGMA in comment.  Add
	multiple include guard.
	* i370.md (untyped_call): Use GEN_CALL.
	(umodsi3): Remove unused variable.
	* sh/elf.h: Don't undef HANDLE_SYSV_PRAGMA.
	* v850.c (output_move_single, output_move_double): Constify
	return value.
	(print_operand): Constify a char *.
	* v850.h (struct small_memory_info): Constify name member.

From-SVN: r36249
2000-09-07 22:24:34 +00:00
Kazu Hirata
1898584f04 h8300.h: Fix comment typos.
* config/h8300.h: Fix comment typos.
        * config/h8300/h8300.md: Likewise.
        * config/h8300/lib1funcs.asm: Likewise.

From-SVN: r36248
2000-09-07 16:11:31 -06:00
Brad Garcia
3a664f1601 stl_tree.h: Make operators !=, == type safe for map, set.
2000-09-07  Brad Garcia  <bgarcia@laurelnetworks.com>

	* bits/stl_tree.h: Make operators !=, == type safe for map, set.
	* testsuite/23_containers/set_operators.cc: New file. Should not
	compile.
	* testsuite/23_containers/map_operators.cc: New file. Ditto.

From-SVN: r36247
2000-09-07 21:08:59 +00:00
Brad Garcia
3eea1aed40 000-09-07 Brad Garcia <bgarcia@laurelnetworks.com>
* bits/stl_tree.h: Make operators !=, == type safe for map, set.
	* testsuite/23_containers/set_operators.cc: New file. Should not
	compile.
	* testsuite/23_containers/map_operators.cc: New file. Ditto.

From-SVN: r36246
2000-09-07 21:07:56 +00:00
Neil Booth
771c4df34e Makefile.in: Remove references to cppulp.{c,o}.
* Makefile.in: Remove references to cppulp.{c,o}.
	* cppinit.c (initialize_builtins, cpp_start_read,
	cpp_handle_option): Update to use cpp_options structure.
	* cppulp.c: Remove.

From-SVN: r36245
2000-09-07 20:31:06 +00:00
Michael Sokolov
2ecd81ef2b * md5.c: #include "ansidecl.h".
From-SVN: r36244
2000-09-07 14:38:43 -04:00
Alexandre Petit-Bianco
3e99f50c2b verify.c (merge_types): Load the types to merge if necessary.
2000-09-05  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* verify.c (merge_types): Load the types to merge if necessary.

(http://gcc.gnu.org/ml/gcc-patches/2000-09/msg00245.html)

From-SVN: r36243
2000-09-07 11:24:41 -07:00
Joseph Myers
2496f0b583 c-common.c (time_char_table): Allow %#b and %#h.
* c-common.c (time_char_table): Allow %#b and %#h.

testsuite:
	* gcc.dg/format-ext-3.c: Test %#b and %#h as formats that should
	be accepted.

From-SVN: r36241
2000-09-07 18:20:04 +01:00
Herman A.J. ten Brugge
bf6302f0e7 reorg.c (find_end_label): If the basic block reorder pass moves the return insn to some other place try...
* reorg.c (find_end_label): If the basic block reorder pass moves the
	return insn to some other place try to locate it again and put our
	end_of_function_label there.
	* reorg.c (relax_delay_slots): Check if find_end_label created a
	new label that invalidates the current optimazation.

From-SVN: r36237
2000-09-07 09:18:46 -06:00
Catherine Moore
33b35a8dc4 * gcc.c-torture/execute/unroll-1.c: New test.
From-SVN: r36236
2000-09-07 09:12:24 -04:00
Catherine Moore
4598ffe97a unroll.c (unroll_loop): Check for unconditional jumps to loop continuation.
* unroll.c (unroll_loop): Check for unconditional jumps
        to loop continuation.  Delete if n_iterations is 1.
        (ujump_to_loop_cont): New routine.

From-SVN: r36235
2000-09-07 09:10:51 -04:00
Bryce McKinlay
f52c723967 Makefile.am (Thread.h): Don't be friends with native threads functions.
2000-09-07  Bryce McKinlay  <bryce@albatross.co.nz>

	* Makefile.am (Thread.h): Don't be friends with native threads
	functions.
	* Makefile.in: Rebuilt.
	* java/lang/Thread.java (interrupt_flag): Make package-private.

From-SVN: r36234
2000-09-07 13:09:41 +01:00
Bernd Schmidt
8441bc3035 Handle multiword modes in regno_clobbered_p
From-SVN: r36233
2000-09-07 11:07:07 +00:00
Bernd Schmidt
ff42776491 Fix a small oversight
From-SVN: r36232
2000-09-07 09:02:02 +00:00
Gabriel Dos Reis
990a9693d4 * ir.texi: Document type nodes.
From-SVN: r36231
2000-09-07 08:42:34 +00:00
Jeff Law
a7508e6886 Daily bump.
From-SVN: r36230
2000-09-07 01:45:08 -06:00
Mark Mitchell
54f7877c8b c-common.h (prep_stmt): Declare.
* c-common.h (prep_stmt): Declare.
	(lang_expand_stmt): Likewise.
	* c-decl.c (lang_expand_stmt): Remove.
	* c-semantics.c (lang_expand_stmt): Define.
	(prep_stmt): New function.
	(expand_stmt): Handle common statement types here.

	* cp-tree.h (init_cp_semantics): Declare.
	(genrtl_try_block): Don't declare.
	(genrtl_handler): Likewise.
	(genrtl_catch_block): Likewise.
	(genrtl_ctor_stmt): Likewise.
	(genrtl_subobject): Likewise.
	(genrtl_do_poplevel): Likewise.
	(genrtl_named_return_value): Likewise.
	* lex.c (init_parse): Call init_cp_semantics.
	* semantics.c (genrtl_try_block): Give it internal linkage.
	(genrtl_handler): Likewise.
	(genrtl_catch_block): Likewise.
	(genrtl_ctor_stmt): Likewise.
	(genrtl_subobject): Likewise.
	(genrtl_do_poplevel): Likewise.
	(genrtl_named_return_value): Likewise.
	(lang_expand_stmt): Rename to ...
	(cp_expand_stmt): ... this.  Only handle C++-specific nodes.
	(init_cp_semantics): Define.

From-SVN: r36229
2000-09-07 06:55:51 +00:00
Alex Samuel
d93998ecbe cp-demangle.c (status_allocation_failed): Rearrange whitespace.
* cp-demangle.c (status_allocation_failed): Rearrange whitespace.
	(demangle_type): Handle substitution candidates correctly in the
	face of special substitutions.

From-SVN: r36228
2000-09-07 05:44:46 +00:00
Niibe Yutaka
93ca1662a2 configure.in (sh-*-linux*): Added.
* configure.in (sh-*-linux*): Added.
* configure: Rebuilt.
* config/sh/t-linux: New file.
* config/sh/sh.h (USERMODE_BIT): Define.
(TARGET_USERMODE): Likewise.
(TARGET_SWITCHES): New switches for the bits above.
(INITIALIZE_TRAMPOLINE): Call __ic_invalidate in USERMODE.
* config/sh/linux.h: New file.
* config/sh/lib1funcs.asm (GLOBAL): Don't prefix symbols with
underscore on linux.
(L_sdivsi3, L_udivsi3): Define for linux.
(L_ic_invalidate): Define.
* invoke.texi (SH Options): Document -musermode.

From-SVN: r36227
2000-09-07 04:38:34 +00:00
Alexandre Oliva
4979c2a9f3 sh.h (OVERRIDE_OPTIONS): Don't disable function CSE unless generating PIC.
* config/sh/sh.h (OVERRIDE_OPTIONS): Don't disable function
CSE unless generating PIC.

From-SVN: r36226
2000-09-07 04:12:47 +00:00
Alexandre Oliva
71105114a1 sh.md (symPLT_label2reg): Force the initialization of the PIC register.
* config/sh/sh.md (symPLT_label2reg): Force the initialization of
the PIC register.

From-SVN: r36225
2000-09-07 04:10:27 +00:00
Mark Mitchell
3a0d3e1e75 decl.c (initialize_local_var): Remove RTL-generating code.
* decl.c (initialize_local_var): Remove RTL-generating code.
	* semantics.c (genrtl_try_block): Fix formatting.

From-SVN: r36224
2000-09-07 03:50:52 +00:00
H.J. Lu
d5cfb451c1 Makefile.in (clean_s1): Depend on stage_b.
* Makefile.in (clean_s1): Depend on stage_b.
(clean_s2): Depend on stage_d. Don't remove $(VOL_FILES) in
stage2. They are used for "make compare".

From-SVN: r36223
2000-09-07 03:14:39 +00:00
Richard Henderson
735bce7e26 acinclude.m4 (GLIBCPP_CHECK_CPU): Add ia64 support.
2000-09-06  Richard Henderson  <rth@cygnus.com>
	    Benjamin Kosnik  <bkoz@cygnus.com>

	* acinclude.m4 (GLIBCPP_CHECK_CPU): Add ia64 support.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* config/cpu/ia64: New directory.
	* config/cpu/ia64/bits: New directory.
	* config/cpu/ia64/bits/atomicity.h: New file.

Co-Authored-By: Benjamin Kosnik <bkoz@cygnus.com>

From-SVN: r36222
2000-09-07 01:48:27 +00:00
Mark Mitchell
ae499ccea4 Move statement-tree facilities from C++ to C front-end.
* c-common.h (c_tree_index): Add CTI_VOID_ZERO.
	(void_zero_node): New macro.
	(struct stmt_tree_s): New type.
	(stmt_tree): New typedef.
	(struct language_function): New type.
	(last_tree): New macro.
	(last_expr_type): Likewise.
	(walk_tree_fn): New typedef.
	(current_stmt_tree): New function.
	(begin_stmt_tree): Likewise.
	(add_stmt): Likewise.
	(finish_stmt_tree): Likewise.
	(statement_code_p): Likewise.
	(lang_statement_code_p): New variable.
	(walk_stmt_tree): New function.
	(STMT_IS_FULL_EXPR_P): New macro.
	* c-common.c (lang_statement_code_p): New variable.
	(c_common_nodes_and_builtins): Initialize void_zero_node.
	(statement_code_p): New function.
	(walk_stmt_tree): Likewise.
	* c-decl.c (language_function): Rename to ...
	(c_language_function): ... this.  Include language_function.
	(push_c_function_context): Adjust accordingly.
	(pop_c_function_context): Likewise.
	(mark_c_function_context): Likewise.
	(current_stmt_tree): Define.
	* c-semantics.c (begin_stmt_tree): New function.
	(add_stmt): Likewise.
	(prune_unused_decls): Likewise.
	(finish_stmt_tree): Likewise.

	Move statement-tree facilities from C++ to C front-end.
	* cp-tree.h (cp_tree_index): Remove CPTI_VOID_ZERO.
	(void_zero_node): Remove.
	(stmt_tree): Likewise.
	(scope_chain): Adjust.
	(language_function): Rename to cp_language_function.
	(cp_function_chain): Adjust.
	(current_stmt_tree): Remove.
	(last_tree): Likewise.
	(last_expr_type): Likewise.
	(struct lang_decl): Adjust.
	(STMT_IS_FULL_EXPR_P): Remove.
	(add_tree): Remove.
	(begin_stmt_tree): Likewise.
	(finish_stmt_tree): Likewise.
	(walk_tree_fn): Likewise.
	(walk_stmt_tree): Likewise.
	* class.c (finish_struct): Replace use of add_tree with add_stmt.
	* decl.c (mark_stmt_tree): Adjust type.
	(init_decl_processing): Don't build void_zero_node.
	(initialize_local_var): Adjust usage of current_stmt_tree.
	(finish_enum): Use add_stmt, not add_tree.
	(save_function_data): Adjust use of language_function.
	(finish_constructor_body): Use add_stmt, not add_tree.
	(finish_destructor_body): Likewise.
	(push_cp_function_context): Adjust use of language_function.
	(pop_cp_function_context): Likewise.
	(mark_lang_function): Likewise.
	(mark_cp_function_context): Likewise.
	* init.c (build_aggr_init): Adjust use of current_stmt_tree.
	(build_vec_init): Likewise.
	* semantics.c (SET_LAST_STMT): Remove.
	(RECHAIN_STMTS): Don't use it.
	(stmts_are_full_exprs_p): Adjust use of current_stmt_tree.
	(current_stmt_tree): Define.
	(add_tree): Remove.
	(finish_goto_stmt): Use add_stmt, not add_tree.
	(finish_expr_stmt): Likewise.
	(begin_if_stmt): Likewise.
	(finish_then_clause): Likewise.
	(begin_while_stmt): Likewise.
	(begin_do_stmt): Likewise.
	(finish_return_stmt): Likewise.
	(begin_for_stmt): Likewise.
	(finish_break_stmt): Likewise.
	(finish_continue_stmt): Likewise.
	(begin_switch_stmt): Likewise.
	(finish_case_label): Likewise.
	(begin_try_block): Likewise.
	(begin_function_try_block): Likewise.
	(begin_handler): Likewise.
	(begin_catch_block): Likewise.
	(begin_compound_stmt): Likewise.
	(begin_asm_stmt): Likewise.
	(finish_asm_stmt): Likewise.
	(finish_label_stmt): Likewise.
	(add_decl_stmt): Likewise.
	(finish_subobject): Likewise.
	(finish_decl_cleanup): Likewise.
	(finish_named_return_value): Likewise.
	(setup_vtbl_ptr): Likewise.
	(add_scope_stmt): Likewise.
	(finish_stmt_expr): Likewise.
	(prune_unused_decls): Remove.
	(begin_stmt_tree): Likewise.
	(finish_stmt_tree): Likewise.
	(prep_stmt): Adjust use of current_stmt_tree.
	(lang_expand_stmt): Likewise.
	* tree.c (statement_code_p): Remove.
	(cp_statement_code_p): New function.
	(walk_stmt_tree): Remove.
	(init_tree): Set lang_statement_code_p.

From-SVN: r36221
2000-09-07 01:36:11 +00:00
Herman A.J. ten Brugge
4f4b88d083 * flow.c (insn_dead_p): Detect dead memory stores with auto increments.
From-SVN: r36220
2000-09-06 19:22:07 -06:00
Kazu Hirata
f725a3ec9b * calls.c: Fix formatting.
From-SVN: r36219
2000-09-06 19:17:00 -06:00
Benjamin Kosnik
f133a43eab acinclude.m4 (GLIBCPP_ENABLE_CSTDIO): Force glibc_satisfactory to no...
2000-09-06  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* acinclude.m4 (GLIBCPP_ENABLE_CSTDIO): Force glibc_satisfactory
	to no, so that libstdc++-v3's libio will be built on glibc-2.2
	systems.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* */Makefile.in: Regenerate.

	* bits/std_cwctype.h: Put in temporary hack to work around -O2 +
	glibc 2.1.x unsigned errors. Or disable -Werror by default...

	* testsuite/23_containers/vector_element_access.cc: New file.
	* bits/stl_config.h (__STL_THROW_RANGE_ERRORS): Define.

From-SVN: r36218
2000-09-07 01:02:01 +00:00
Graham Stott
0806f95fb4 * config/i386/i386.h (ADDRESS_COST): Fix typo.
From-SVN: r36217
2000-09-06 18:56:11 -06:00
Zack Weinberg
0e5921e8a0 Integrated preprocessor.
top level:
	* Makefile.in: Remove all references to c-parse.gperf,
	c-gperf.h, and c-parse.h.  Remove -d from yacc command line
	generating c-parse.c.  Update dependencies.
	* c-parse.gperf, c-gperf.h: Delete.

	* c-common.c: Don't define parse_options, cpp_token, yy_cur,
	yy_lim, or yy_get_token.  Don't define get_directive_line if
	USE_CPPLIB.
	* c-common.h: Add multiple include guard.  Define RID values
	for every keyword in C, C++, and Objective C.  Put all the
	modifiers first.
	(struct c_fileinfo, get_fileinfo, dump_time_statistics): New.
	* c-decl.c (c_decode_option): Handle -lang-objc here.
	(print_lang_identifier): Handle C_IS_RESERVED_WORD case.
	(grokdeclarator): Adjust for new RID scheme.
	(extract_interface_info): New stub.
	* c-lang.c: Don't declare yy_cur or parse_options.
	(lang_init_options): Call cpp_init.  Don't call
	cpp_options_init.
	(lang_init): Don't call check_newline if USE_CPPLIB.

	* c-lex.c: Don't include c-parse.h.  Do include timevar.h.
	Elide lots of unnecessary code if USE_CPPLIB.  Delete code
	rendered unnecessary by new architecture.  Move routines not
	shared with C++ to c-parse.in.  Maintain a local idea of the
	line number.    Handle C++ as well as C.
	[USE_CPPLIB]: Declare and register callbacks for #ident and
	for entering/leaving files.
	(init_c_lex, c_lex): Are now the entry points to this file.
	(check_newline): Break out directive handling to
	process_directive.
	(read_ucs, is_extended_char, utf8_extend_token): Moved here
	from C++ front end.
	(readescape, parse_float): Overhaul.
	(lex_number, lex_string, lex_charconst): Break out of c_lex
	(n'ee yylex).
	(get_fileinfo, update_header_times, dump_one_header,
	dump_time_statistics): New and/or moved here from C++.
	Support per-file data needed by C++ and per-header timing
	statistics (C++ only, at the moment).
	* c-lex.h: Update prototypes.  Add multiple include guard.
	* c-tree.h (struct lang_identifier): Add rid_code field.
	(C_IS_RESERVED_WORD, C_RID_CODE): New.

	* c-parse.in: Include c-pragma.h. Remove unnecesary calls to
	reinit_parse_for_function and/or position_after_white_space.
	(save_filename, save_lineno): Look ahead before saving.
	(label -> identifier ':'): Save file and line before shifting ':'.
	(reservedwords): No need to call get_identifier.
	(init_parse, finish_parse, yyerror, yylex, yyprint,
	make_pointer_declarator): Are now here for C/ObjC.
	(rid_to_yy): Conversion table from RID constants to Yacc codes.

	* c-pragma.c: Rewrite parsing logic to fit with cpplib's
	#pragma registry.  Provide dummy implementation of that
	interface if !USE_CPPLIB.
	* c-pragma.h: Update to match.

	* flags.h: Add multiple include guard.
	(flag_detailed_statistics): Moved here from C++.
	* toplev.c: Define flag_detailed_statistics.

	* gcc.c (C specs): Use %(trad_capable_cpp) for -E|-M|-MM case
	#if USE_CPPLIB.
	* timevar.def (TV_CPP, TV_LEX): New.
	* timevar.h: Add multiple include guard.

	* objc/lang-specs.h: Use %(trad_capable_cpp) for -E|-M|-MM case
	#if USE_CPPLIB.
	* objc/objc-act.c: Don't mention yy_cur or parse_options.
	Initialize cpplib properly.  Force lineno to 0 after first
	call to check_newline.  Don't handle -lang-objc here.
	Move forget_protocol_qualifiers and remember_protocol_qualifiers here.

cp:
	* Make-lang.in, Makefile.in: Remove all references to input.c,
	gxx.gperf, and hash.h.  Add ../c-lex.o to C_OBJS.
	* gxx.gperf, hash.h, input.c: Delete.
	* lang-specs.h: Pass -lang-c++ to cc1plus so cpplib is
	initialized properly.

	* class.c (fixup_pending_inline): Take a tree, not a
	struct pending_inline *.  All callers changed.
	(init_class_processing): Set RID_PUBLIC, RID_PRIVATE,
	RID_PROTECTED entries in ridpointers[] array here.
	* decl.c (duplicate_decls): Do not refer to struct
	pending_inline.
	(record_builtin_type, init_decl_processing): Use RID_MAX not
	CP_RID_MAX.
	(grokdeclarator): Use C_IS_RESERVED_WORD.
	* decl2.c (lang_decode_option): Ignore -lang-c++ for sake of
	cpplib.
	(grok_x_components): Do not inspect pending_inlines chain.

	* cp-tree.h (struct lang_identifier): Add rid_code entry.
	(C_IS_RESERVED_WORD, C_RID_CODE, C_RID_YYCODE): New.
	(flag_no_gnu_keywords, flag_operator_names, rid_to_yy): Declare.
	(DEFARG_LENGTH, struct pending_inline, TIME_IDENTIFIER_TIME,
	TIME_IDENTIFIER_FILEINFO): Kill.
	Update prototypes.
	* lex.h: Expunge cp_rid.  Rewrite RIDBIT macros to use just a
	single 32-bit word.
	* parse.y: Call do_pending_inlines unconditionally.
	reinit_parse_for_method is now snarf_method.  fn.defpen is no
	longer necessary.  Remove unnecessary <itype> annotation on
	SCOPE.  Do not refer to end_of_file or struct pending_inline.
	* semantics.c (begin_inline_definitions): Call
	do_pending_inlines unconditionally.

	* lex.c: Remove all code now shared with C front end.
	Initialize cpplib properly if USE_CPPLIB.  Put reserved words
	into the get_identifier table.  Rewrite pragma handling to
	work with the registry.  Move code to save tokens for later
	processing to spew.c.

	* spew.c: Rewrite everything in terms of token streams instead
	of text.  Move routines here from lex.c / input.c as
	appropriate.  GC-mark trees hanging off the pending inlines
	chain.

testsuite:
	* g++.old-deja/g++.benjamin/13478.C: Put meaningful tags on
	ERROR markers.
	* g++.old-deja/g++.brendan/crash8.C: Move ERROR marker up one line.
	* gcc.dg/c99-array-nonobj-1.c: Don't expect func[] cases to fail.
	* gcc.dg/wtr-label-1.c: Don't use unconstrained .* in error regexps.
	* gcc.dg/wtr-suffix-1.c: Correct error regexps.
	* gcc.dg/cpp/unc1.c, gcc.dg/cpp/unc2.c, gcc.dg/cpp/unc3.c:
	Preprocess only.
	* gcc.dg/cpp/unc4.c: Adjust line number in dg-error line.
	* gcc.dg/noncompile/const-ll-1.c: Generalize error regexp.

From-SVN: r36216
2000-09-07 00:37:14 +00:00