Commit Graph

30313 Commits

Author SHA1 Message Date
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
Jeff Sturm
26aa75bef9 jvm.h (_Jv_HashCode): Cast object ptr to `unsigned long' to avoid long long division.
2000-09-06  Jeff Sturm  <jeff.sturm@appnet.com>

	* include/jvm.h (_Jv_HashCode): Cast object ptr to `unsigned long'
	to avoid long long division.

From-SVN: r36215
2000-09-06 22:25:56 +00:00
Tom Tromey
9579ea7efd Constructor.java (toString): Use `getName' for parameter types.
* java/lang/reflect/Constructor.java (toString): Use `getName' for
	parameter types.
	* java/lang/reflect/Method.java (toString): Use `getName' for
	return type.

From-SVN: r36214
2000-09-06 22:24:34 +00:00
Levente Farkas
dbb4d33a9b string.tcc: Fix up more parameter names.
2000-09-06  Levente Farkas  <lfarkas@mindmaker.hu>

	* bits/string.tcc: Fix up more parameter names.

From-SVN: r36213
2000-09-06 21:59:52 +00:00
Tom Tromey
f0bee8b3f0 * lang-specs.h: Also recognize `-femit-class-files'.
From-SVN: r36212
2000-09-06 21:55:39 +00:00
David Edelsohn
5638268e4d rs6000.md: Correct function unit definitions for cr_logical and mtjmpr.
* rs6000.md: Correct function unit definitions for cr_logical and
	mtjmpr.
	(sCOND): Additionally fail for sgt, slt, sge, sle if !TARGET_POWER
	and use portable method for >=0 and floating point >=.  Remove
	associated matchers.

From-SVN: r36211
2000-09-06 17:29:14 -04:00
Mark Mitchell
44835fdd5d extend.texi: Mark named return value extension as deprecated.
* extend.texi: Mark named return value extension as deprecated.

	* NEWS: Mention that the named return value extension has been
	deprecated.
	* cp-tree.h (original_result_rtx): Define.
	(TREE_REFERENCE_EXPR): Remove.
	(DECL_VPARENT): Likewise.
	(pushdecl_nonclass_level): Likewise.
	(store_return_init): Likewise.
	(reinit_lang_specific): Likewise.
	(genrtl_named_return_value): Change prototype.
	* decl.c (original_result_rtx): Remove.
	(cp_finish_decl): Don't build DECL_STMTs for RESULT_DECLs.
	Do not generate RTL for local variables here.
	(store_return_init): Remove.
	* semantics.c (genrtl_named_return_value): Simplify.  Fold in
	store_return_init.
	(finish_named_return_value): Adjust accordingly.  Warn that this
	extension is deprecated.
	(lang_expand_stmt): Adjust call to genrtl_named_return_value.

From-SVN: r36210
2000-09-06 21:25:02 +00:00
Tom Tromey
bcf98e48ef natMethod.cc (_Jv_CallAnyMethodA): Accept null `args' if method takes no parameters.
* java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Accept null
	`args' if method takes no parameters.

From-SVN: r36209
2000-09-06 21:20:45 +00:00
Geoff Keating
bab6226b6b rs6000.c (rs6000_reverse_condition): Return the result.
* config/rs6000/rs6000.c (rs6000_reverse_condition): Return
	the result.

From-SVN: r36208
2000-09-06 20:38:19 +00:00
Alexandre Oliva
67d08194ae configure.in (multilib): Enable by default only for target.
* configure.in (multilib): Enable by default only for target.
* configure: Rebuilt.

From-SVN: r36207
2000-09-06 19:13:01 +00:00
Alexandre Oliva
4b92758a91 * Makefile.in (all-zlib): Added dummy target.
From-SVN: r36206
2000-09-06 18:58:34 +00:00
Gabriel Dos Reis
e651302389 toplev.c (display_help): Fix thinko in documentation.
* toplev.c (display_help): Fix thinko in documentation.

	* diagnostic.h (output_buffer::indent_skip): New fields.
	(output_indentation): New macro.

	* diagnostic.c (output_indent): New function.
	(output_set_prefix, clear_diagnostic_info): Use.
	(output_emit_prefix): Predict future indentation.

From-SVN: r36205
2000-09-06 18:43:35 +00:00
DJ Delorie
112c7aeab1 Makefile.in (stage_*): add more dependencies to ensure parallel builds build correctly
* Makefile.in (stage_*): add more dependencies to ensure parallel
builds build correctly

From-SVN: r36204
2000-09-06 14:29:17 -04:00
Tom Tromey
8ee4db6f3a Fix for PR java.lang/339:
* java/lang/natPosixProcess.cc (fail): New function.
	(cleanup): New function.
	(startProcess): Use them.  Create pipe so child can communicate
	exec failure back to parent.

From-SVN: r36202
2000-09-06 18:14:15 +00:00
Manfred Hollstein
1bac0fb486 Makefile.in (bootstrap-lean): Depend on bootstrap-lean_g, not bootstrap-lean_f.
2000-09-06  Manfred Hollstein  <manfredh@redhat.com>

	* Makefile.in (bootstrap-lean): Depend on bootstrap-lean_g,
	not bootstrap-lean_f.

From-SVN: r36201
2000-09-06 17:57:21 +00:00
Andreas Schwab
f472a17cb4 mklibgcc.in: Emit rule for libgcc-stage-start.
* mklibgcc.in: Emit rule for libgcc-stage-start.
* Makefile.in (stage1-start, stage2-start, stage3-start,
stage4-start): Don't handle libgcc here, use libgcc.mk instead.

From-SVN: r36200
2000-09-06 14:45:28 +00:00
Alexandre Oliva
6d93bca4fe * configure: Rebuilt with new libtool.m4.
From-SVN: r36199
2000-09-06 14:08:04 +00:00
Alexandre Oliva
06298abdb6 ltconfig, [...]: Updated from libtool multi-language branch.
* ltconfig, ltmain.sh, libtool.m4, ltcf-c.sh, ltcf-cxx.sh,
ltcf-gcj.sh: Updated from libtool multi-language branch.

From-SVN: r36198
2000-09-06 13:59:29 +00:00
Bernd Schmidt
611bbf2af7 Don't use CLASS_LIKELY_SPILLED in local-alloc
From-SVN: r36197
2000-09-06 09:46:58 +00:00
Nathan Sidwell
299d838af8 * g++.old-deja/g++.pt/deduct2.C: New test.
From-SVN: r36196
2000-09-06 09:34:24 +00:00
Nathan Sidwell
d7c4edd08e pt.c (type_unification_real): Replace switch with if.
* pt.c (type_unification_real): Replace switch with if.
	(unify): Tsubst non-type parms before comparing.

From-SVN: r36195
2000-09-06 09:34:00 +00:00
Nathan Sidwell
2ff0c96233 * g++.old-deja/g++.pt/parms2.C: New test.
From-SVN: r36194
2000-09-06 09:22:08 +00:00
Nathan Sidwell
46e2747c71 error.c (dump_typename): New function, broken out of ...
* error.c (dump_typename): New function, broken out of ...
	(dump_type): ... here. Use it.
	* typeck.c (same_type_p): Use cp_tree_equal for TYPENAME_TYPE.

From-SVN: r36193
2000-09-06 09:21:35 +00:00
Bernd Schmidt
630c79be17 Changes in cse.c/loop.c cost calculations
From-SVN: r36192
2000-09-06 09:20:38 +00:00
Geoff Keating
39a10a297a rs6000.c (validate_condition_mode): New function.
* config/rs6000/rs6000.c (validate_condition_mode): New function.
(branch_comparison_operator): Call validate_condition_mode to
abort rather than returning 0.
(branch_positive_comparison_operator): New function.
(scc_comparison_operator): Call validate_condition_mode to abort
rather than returning 0.
(ccr_bit): Call validate_condition_mode.  Update for
new branch scheme.
(print_operand): Delete %C modifier.  Update %E case
to use EQ bit not SO bit.
(rs6000_reverse_condition): New function.
(rs6000_generate_compare): New function.
(rs6000_emit_sCOND): New function.
(rs6000_emit_cbranch): New function.
(output_cbranch): The length of a long branch insn is
now only 8 bytes.  Add validate_condition_mode.  Use
rs6000_reverse_condition.  Remove cror generation.
* config/rs6000/rs6000.h: Update comments.
(PREDICATE_CODES): Add new predicate.  Update codes used
by branch_comparison_operator and scc_comparison_operator.
* config/rs6000/rs6000-protos.h: Add prototypes for
new external functions.
* config/rs6000/rs6000.md: Add new scheduling parameters
for cr_logical instructions.  Change length of branch
instructions.
(bCOND patterns): Call rs6000_emit_cbranch.
(sCOND patterns): Call rs6000_emit_sCOND.
(branch patterns): Change lengths to 4.
(cr logical patterns): New.

From-SVN: r36191
2000-09-06 09:12:51 +00:00
Nathan Sidwell
6e92b232be * g++.old-deja/g++.pt/crash58.C: New test.
From-SVN: r36190
2000-09-06 09:06:04 +00:00
Nathan Sidwell
c833d2be02 init.c (build_offset_ref): Deal with namespace scoped TEMPLATE_ID_EXPRs.
* init.c (build_offset_ref): Deal with namespace scoped
	TEMPLATE_ID_EXPRs.

From-SVN: r36189
2000-09-06 09:04:00 +00:00
Nathan Sidwell
b1ce3eb24a class.c (resolve_address_of_overloaded_function): Add explanation message.
* class.c (resolve_address_of_overloaded_function): Add
	explanation message.
	* decl.c (define_case_label): Reformat explanation.
	* decl2.c (finish_static_data_member_decl): Likewise.
	(grokfield): Likewise.
	* friend.c (do_friend): Likewise.

From-SVN: r36188
2000-09-06 08:53:45 +00:00
Richard Henderson
2a4bbffab1 i386.md (call_pop): Fix test for setting current_function_uses_pic_offset_table.
* config/i386/i386.md (call_pop): Fix test for setting
        current_function_uses_pic_offset_table.
        (call, call_value_pop, call_value): Likewise.

From-SVN: r36187
2000-09-06 01:32:49 -07:00
Greg McGary
61f5be154a 20000906.c: New test.
* gcc.c-torture/20000906.c: New test.
	* gcc.c-torture/20000906.x: Expect failure for ix86 at `-O2'.

From-SVN: r36186
2000-09-06 08:27:44 +00:00
Jeff Law
d3283187d5 Daily bump.
From-SVN: r36185
2000-09-06 01:45:08 -06:00
Zack Weinberg
eab828ba93 timevar.c (timevar_add): Delete.
* timevar.c (timevar_add): Delete.
	(timevar_get): Also count time since the selected timer was
	last updated.  Do not examine the timevar stack if the
	selected timer is standalone.

From-SVN: r36184
2000-09-06 07:02:40 +00:00
J. David Anglin
f1d6a533e6 gthr-dce.h (__gthread_objc_mutex_deallocate): Free mutex->backend.
2000-09-05  J. David Anglin  <dave@hiauly1.hia.nrc.ca>

	* gthr-dce.h (__gthread_objc_mutex_deallocate): Free mutex->backend.

From-SVN: r36183
2000-09-06 06:57:39 +00:00
J. David Anglin
6bb92770ab gthr-dce.h (__gthread_objc_mutex_deallocate): Free mutex->backend.
2000-09-02  J. David Anglin  <dave@hiauly1.hia.nrc.ca>

	* gthr-dce.h (__gthread_objc_mutex_deallocate): Free mutex->backend.

From-SVN: r36182
2000-09-06 06:55:34 +00:00
John David Anglin
84802b1397 John David Anglin <dave@hiauly1.hia.nrc.ca>
* md5.h (md5_uint32): Choose via INT_MAX instead of UINT_MAX.

From-SVN: r36181
2000-09-05 23:10:12 -07:00
John David Anglin
702edf390c John David Anglin <dave@hiauly1.hia.nrc.ca>
* gettext.h (nls_uint32): Choose via INT_MAX instead of UINT_MAX.

From-SVN: r36180
2000-09-05 23:09:15 -07:00
Jason Merrill
53c5b5d77f c-decl.c (finish_incomplete_decl): Don't call complete_array_type for 'extern' arrays.
* c-decl.c (finish_incomplete_decl): Don't call complete_array_type
        for 'extern' arrays.

From-SVN: r36179
2000-09-06 02:06:46 -04:00
Zack Weinberg
11f53b6a08 tree.c (walk_tree): Expose tail recursion.
* tree.c (walk_tree): Expose tail recursion.
	(walk_stmt_tree): New function.
	* cp-tree.h: Prototype walk_stmt_tree.
	* semantics.c (prune_unused_decls): Operate on SCOPE_STMTs not
	the BLOCKs directly.  If a BLOCK has no variables after
	pruning, discard it.
	(finish_stmt_tree): Use walk_stmt_tree.  No need to save and
	restore the line number.

From-SVN: r36178
2000-09-06 05:52:51 +00:00
Richard Henderson
3392dafcfd lib1func.asm (__divtf3): Rebundle for Itanium.
* config/ia64/lib1func.asm (__divtf3): Rebundle for Itanium.
        Eliminate final copy from non-trapping case.
        (__divdf3, __divsf3): Likewise.

From-SVN: r36177
2000-09-05 20:20:53 -07:00
Alexandre Petit-Bianco
354e99ce38 parse.y (do_merge_string_cste): New locals.
2000-08-11  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* parse.y (do_merge_string_cste): New locals. Create new
	STRING_CSTs each time, use memcpy. Fixes gcj/311

(Fixes gcj/311:
   http://gcc.gnu.org/ml/gcc-patches/2000-09/msg00144.html
   http://sources.redhat.com/ml/java-prs/2000-q3/msg00116.html)

From-SVN: r36176
2000-09-05 19:37:09 -07:00
Anthony Green
3ca8c9aea0 jcf-io.c: Include zlib.h.
2000-09-02  Anthony Green  <green@redhat.com>

        * jcf-io.c: Include zlib.h.
        (open_in_zip): Read compressed class file archives.
        * zipfile.h (ZipDirectory): Add uncompressed_size and
        compression_method fields.
        * zextract.c (read_zip_archive): Collect file compression info.

From-SVN: r36175
2000-09-06 02:13:28 +00:00
Richard Henderson
2a7ffc85e5 ia64.md (mulhi3): Fix typo last change.
* config/ia64/ia64.md (mulhi3): Fix typo last change.
        * config/ia64/lib1func.asm (__divdi3, __udivdi3, __umodsi3): Likewise.

From-SVN: r36174
2000-09-05 18:46:04 -07:00
Donn Terry
204093e6a7 Makefile.in: Restructure bootstrap stages to allow clean restart after failure.
* Makefile.in: Restructure bootstrap stages to allow clean
restart after failure.

From-SVN: r36173
2000-09-05 20:45:47 -04:00
Richard Henderson
514f96e69c ia64.md (movsi and movdi patterns): Allow moves from 8-bit constants to AR registers.
* config/ia64.md (movsi and movdi patterns): Allow moves from
        8-bit constants to AR registers.

From-SVN: r36172
2000-09-05 16:20:24 -07:00
Richard Henderson
cf1f6ae31a * config/ia64/ia64.md (mulhi3): New.
From-SVN: r36171
2000-09-05 16:12:03 -07:00
Bryce McKinlay
56042127de * java/net/natPlainDatagramSocketImpl.cc (mcastGrp): Fix typo.
From-SVN: r36170
2000-09-06 00:04:46 +01:00
Richard Henderson
d8d7a2867b ia64.h (INIT_TARGET_OPTABS): Remove.
* config/ia64/ia64.h (INIT_TARGET_OPTABS): Remove.
        * config/ia64/lib1funcs.asm (__divdi3): Update from Intel IA-64
        Optimization Guide, minimum latency alternative.
        (__moddi3, __udivdi3, __umoddi3): Likewise.
        (__divsi3, __modsi3, __udivsi3, __umodsi3): Likewise.

From-SVN: r36169
2000-09-05 16:02:58 -07:00
Alex Samuel
1056d2281e cp-demangle.c (demangle_encoding): Rename variable.
* cp-demangle.c (demangle_encoding): Rename variable.
	(demangle_name): Rename parameter.  Handle return type
	suppression.
	(demangle_nested_name): Rename parameter.
	(demangle_prefix): Likewise.  Change return type suppression.
	(demangle_unqualified_name): Add parameter.  Flag constructors and
	conversion operators.
	(demangle_special_name): Fix comment.
	(demangle_type): Rename variable.
	(demangle_bare_function_type): Check for missing return type and
	parameter.
	(demangle_class_enum_type): Rename parameter.
	(demangle_discriminator): Fix misspelling in comment.

From-SVN: r36168
2000-09-05 22:37:17 +00:00
Bruce Korb
1e570a6a1b use "#if defined( HAV..." instead of "#if HAV..."
From-SVN: r36167
2000-09-05 22:28:04 +00:00
Bruce Korb
dc46505a00 PAGESIZE is not portable
From-SVN: r36166
2000-09-05 22:26:16 +00:00