Commit Graph

27085 Commits

Author SHA1 Message Date
Greg McGary
4b4f19ec78 c-lex.h (enum rid): Add RID_BOUNDED & RID_UNBOUNDED.
* c-lex.h (enum rid): Add RID_BOUNDED & RID_UNBOUNDED.
	* c-lex.c (init_lex): Handle RID_BOUNDED & RID_UNBOUNDED.
	* c-parse.gperf (__bounded, __bounded__, __ptrbase, __ptrbase__,
	__ptrextent, __ptrextent__, __ptrvalue, __ptrvalue__,
	__unbounded, __unbounded__): New keywords.
	* c-parse.in (PTR_VALUE PTR_BASE PTR_EXTENT): New tokens.

From-SVN: r32540
2000-03-14 19:42:11 +00:00
Tom Tromey
199504d153 * libjava.compile/pr172.java: New file, for PR gcj/172.
From-SVN: r32539
2000-03-14 18:37:18 +00:00
Bernd Schmidt
eab5c70a03 Add cselib; use it in loop and reload_cse_regs
From-SVN: r32538
2000-03-14 18:36:18 +00:00
Tom Tromey
4bdf01f210 * libjava.compile/pr174.java: New file, for PR gcj/174.
From-SVN: r32537
2000-03-14 18:35:02 +00:00
Bernd Schmidt
8c5d513f17 Some cleanups/additions for hashtables
From-SVN: r32536
2000-03-14 18:28:45 +00:00
Nick Clifton
3ac63d9488 Fix spec string parsing bugs
From-SVN: r32535
2000-03-14 18:08:35 +00:00
Richard Earnshaw
c487e48467 function.c (prepare_function_start): Correctly initialize cfun->stack_alignment_needed.
* function.c (prepare_function_start): Correctly initialize
cfun->stack_alignment_needed.

From-SVN: r32534
2000-03-14 17:48:48 +00:00
Zack Weinberg
5648866613 cppfiles.c (find_include_file): Don't assume nshort is a substring of name.
* cppfiles.c (find_include_file): Don't assume nshort is a
	substring of name.

From-SVN: r32533
2000-03-14 17:25:24 +00:00
Jeffrey A Law
07fd50eab4 * gcc.c-torture/execute/20000314-2.c: New test.
From-SVN: r32532
2000-03-14 09:49:03 -07:00
Jeffrey A Law
263ac0d832 * gcc.c-torture/compile/20000314-2.c: New test.
From-SVN: r32531
2000-03-14 09:28:08 -07:00
Jeffrey A Law
eb61c012cf * gcc.c-torture/execute/2000314-1.c: New test.
From-SVN: r32530
2000-03-14 09:10:27 -07:00
Jeffrey A Law
4fa241f2f2 New test.
From-SVN: r32529
2000-03-14 09:06:24 -07:00
Jeffrey A Law
88624c0e27 configure.in (hppa configurations): Add pa32-regs.h to the list of tm files as appropriate.
* configure.in (hppa configurations): Add pa32-regs.h to the
        list of tm files as appropriate.
        * configure: Rebuilt.
        * pa.c (compute_frame_size): Remove explicit knowledge about FP
        register numbering.
        (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
        (fmpyaddoperands, fmpysuboperands): Likewise.
        * pa.h: Remove various definitions which depend on knowing
        how registers are numbered.
        * pa32-regs.h: New file with PA32 register numbering specific
        definitions.

From-SVN: r32527
2000-03-14 08:47:24 -07:00
Richard Henderson
1e7f0a48cf regmove.c (combine_stack_adjustments): New.
* regmove.c (combine_stack_adjustments): New.
        (stack_memref_p, single_set_for_csa): New.
        (free_csa_memlist, record_one_stack_memref): New.
        (try_apply_stack_adjustment): New.
        (combine_stack_adjustments_for_block): New.
        * rtl.h (combine_stack_adjustments): Declare.
        * toplev.c (rest_of_compilation): Call it.

        * i386.md: Revert 2000-01-16 change.

From-SVN: r32526
2000-03-14 06:38:52 -08:00
Martin v. Löwis
d5fb67d394 * gccbug.in: Add web category, gcc specific classes.
From-SVN: r32525
2000-03-14 09:50:58 +00:00
Nathan Sidwell
b451555aa1 * stor-layout.c (finalize_record_size): Fix typo.
From-SVN: r32524
2000-03-14 09:36:03 +00:00
Jeff Law
9f056e3b10 Daily bump.
From-SVN: r32523
2000-03-14 01:45:07 -07:00
Stan Shebs
9d27bffe6d c-typeck.c (c_alignof): Error on incomplete types.
* c-typeck.c (c_alignof): Error on incomplete types.
        * extend.texi (Alignment): Document this.

From-SVN: r32522
2000-03-14 00:24:21 -08:00
Jeff Sturm
d9420976f2 Jeff Sturm <jsturm@sigma6.com>
* except.c (expand_throw): Fix typo in _Jv_Sjlj_Throw.

From-SVN: r32521
2000-03-14 00:11:38 -08:00
Alexandre Petit-Bianco
dde1da7265 parse.y (resolve_package): Set `next' once a type name has been progressively discovered.
2000-03-13  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* parse.y (resolve_package): Set `next' once a type name has been
	progressively discovered.
	(resolve_qualified_expression_name): Propagate resolution only if
	there are remaining qualifiers. Take into account `q' might have
	been cleared after re-qualification.
	* parse.y (patch_method_invocation): New local `resolved'.
  	Section dealing with qualified expression rewritten to use
 	resolve_field_access.

From-SVN: r32520
2000-03-13 23:51:42 -08:00
Zack Weinberg
168d3732aa cppfiles.c: Include mkdeps.h.
* cppfiles.c: Include mkdeps.h.
	(find_include_file, read_include_file): Remove _cpp_ prefix
	from name, make static.
	(_cpp_execute_include): New function, broken out of
	do_include.

	* cpplib.c: Don't include mkdeps.h.
	(struct directive): Remove type field. Reorder entries.  The
	function takes only one argument.
	(struct if_stack): Make type field an int.
	(directive_table): Rename to dtable.  Generate it, the
	prototypes of the directive handlers, and the enum for the
	directive numbers, from a template macro.
	(do_ifndef, do_include_next, do_import): New functions.
	(do_define, do_include, do_endif, do_ifdef, do_if, do_else,
	do_undef, do_line, do_elif, do_error, do_pragma, do_warning,
	do_ident, do_assert, do_unassert, do_sccs): Take only one
	argument.
	(do_sccs): Define always, but alter behavior based on
	SCCS_DIRECTIVE.
	(_cpp_handle_directive, consider_directive_while_skipping):
	Restructure for new directive table layout.

	(pass_thru_directive): Take a directive number, not a pointer
	to a struct directive.
	(parse_include): New function, broken out of do_include.
	(do_include, do_import, do_include_next): Use parse_include
	and _cpp_execute_include.
	(do_elif, do_else): Test for T_ELSE specifically when checking
	for #elif/#else after #else.
	(parse_ifdef): New function, broken out of do_ifdef.
	(validate_else): Expect a name arg without a leading #.
	(if_directive_name): Delete.
	(cpp_define, cpp_assert, cpp_undef, cpp_unassert): Call
	directive handlers with only one argument.

	* cpphash.h: Update prototypes.
	(enum node_type): Remove entries for directives.
	* Makefile.in: Update dependencies.

From-SVN: r32519
2000-03-14 06:34:11 +00:00
Zack Weinberg
194ae3f644 cpphash.c (dump_hash_helper): Only dump nodes of type T_MACRO.
* cpphash.c (dump_hash_helper): Only dump nodes of type
	T_MACRO.  Emit a newline after each definition.

From-SVN: r32518
2000-03-14 06:10:27 +00:00
Alexandre Petit-Bianco
c2952b018a Added Java 1.1 language features.
From-SVN: r32517
2000-03-13 21:01:05 -08:00
Martin v. Löwis
e4476d1cbd gccbug.in: New file.
* gccbug.in: New file.
	* configure.in (all_outputs): Add gccbug.
	* Makefile.in (install-common): Install gccbug.
	(GCCBUG_INSTALL_NAME): New variable.
	* configure: Rebuilt.

From-SVN: r32515
2000-03-13 23:51:26 +00:00
Jason Merrill
c3b247b445 function.c (put_var_into_stack): Use type_for_mode to calculate part_type.
* function.c (put_var_into_stack): Use type_for_mode to calculate
        part_type.  Use MEM_SET_IN_STRUCT_P.
        * expr.c (store_field): Handle CONCAT.
        (store_constructor): Use fields_length.
        * tree.c (fields_length): New fn.
        * tree.h: Declare it.

From-SVN: r32514
2000-03-13 17:54:03 -05:00
Zack Weinberg
45b966db65 Makefile.in (LIBCPP_OBJS): Add cpplex.o.
* Makefile.in (LIBCPP_OBJS): Add cpplex.o.
	(cpplex.o): New target.
	* po/POTFILES.in: Add cpplex.c.

	* cpplex.c (_cpp_grow_token_buffer, null_cleanup,
	cpp_push_buffer, cpp_pop_buffer, cpp_scan_buffer,
	cpp_expand_to_buffer, cpp_buf_line_and_col, cpp_file_buffer,
	skip_block_comment, skip_line_comment, skip_comment,
	copy_comment, _cpp_skip_hspace, _cpp_skip_rest_of_line,
	_cpp_parse_name, skip_string, parse_string,
	_cpp_parse_assertion, cpp_get_token, cpp_get_non_space_token,
	_cpp_get_directive_token, find_position,
	_cpp_read_and_prescan, _cpp_init_input_buffer): Move here.
	(maybe_macroexpand, _cpp_lex_token): New functions.

	* cpplib.c (SKIP_WHITE_SPACE, eval_if_expr, parse_set_mark,
	parse_goto_mark): Delete.
	(_cpp_handle_eof): New function.
	(_cpp_handle_directive): Rename from handle_directive.
	(_cpp_output_line_command): Rename from output_line_command.
	(do_if, do_elif): Call _cpp_parse_expr directly.
	* cppfiles.c (_cpp_read_include_file): Don't call
	init_input_buffer here.
	* cpphash.c (quote_string): Move here, rename _cpp_quote_string.
	* cppexp.c (_cpp_parse_expr): Diddle parsing_if_directive
	here; pop the token_buffer and skip the rest of the line here.
	* cppinit.c (cpp_start_read): Call _cpp_init_input_buffer
	here.

	* cpphash.h (CPP_RESERVE, CPP_IS_MACRO_BUFFER, ACTIVE_MARK_P):
	Define here.
	(CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK, CPP_SET_MARK,
	CPP_GOTO_MARK): New macros.
	(_cpp_quote_string, _cpp_parse_name, _cpp_skip_rest_of_line,
	_cpp_skip_hspace, _cpp_parse_assertion, _cpp_lex_token,
	_cpp_read_and_prescan, _cpp_init_input_buffer,
	_cpp_grow_token_buffer, _cpp_get_directive_token,
	_cpp_handle_directive, _cpp_handle_eof,
	_cpp_output_line_command): Prototype them here.
	* cpplib.h (enum cpp_token): Add CPP_MACRO.
	(CPP_RESERVE, get_directive_token, cpp_grow_buffer,
	quote_string, output_line_command): Remove.

From-SVN: r32513
2000-03-13 22:01:08 +00:00
Hans Boehm
46089b8642 typeck.c (build_prim_array_type): Correctly set the high word too.
Mon Mar 13 11:36:51 2000  Hans Boehm <boehm@acm.org>

	* typeck.c (build_prim_array_type): Correctly set the high word too.

From-SVN: r32512
2000-03-13 13:36:09 -08:00
Bernd Schmidt
f0c988c823 Fix recently introduced error in expand_end_case.
From-SVN: r32511
2000-03-13 19:35:38 +00:00
Jason Merrill
93ca4ba766 decl.c (grokfndecl): Set TREE_NOTHROW if TYPE_NOTHROW_P.
* decl.c (grokfndecl): Set TREE_NOTHROW if TYPE_NOTHROW_P.

        * except.c (dtor_nothrow): New fn.
        (do_pop_exception): Use it.  Take type parm.
        (push_eh_cleanup): Take type parm.
        (expand_start_catch_block): Pass it.
        (build_eh_type_type_ref): Accept null type.

From-SVN: r32510
2000-03-13 14:23:34 -05:00
Zack Weinberg
a8c73de3a4 New test; for ia32 codegen bug.
Reported by Daniel Lauer <daniel@informatik.uni-bonn.de>

From-SVN: r32509
2000-03-13 17:41:35 +00:00
Jakub Jelinek
e6c1be7e7f sparc.md: Remove all traces of TARGET_LIVE_G0.
* config/sparc/sparc.md: Remove all traces of TARGET_LIVE_G0.
	(movsi_zero_liveg0): Remove.
	(movsf_insn_novis_liveg0): Remove.
	(negsi2): Remove.
	(negsi2_not_liveg0): Rename to negsi2.
	(one_cmplsi2): Remove.
	(one_cmplsi2_not_liveg0): Rename to one_cmplsi2.
	(one_cmplsi2_liveg0): Remove.
	* config/sparc/sparc.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE,
	MASK_LIVE_G0, MASK_BROKEN_SAVERESTORE): Remove.
	(CONDITIONAL_REGISTER_USAGE): Remove TARGET_LIVE_G0 if.
	(PREDICATE_CODES): Remove zero_operand.
	* config/sparc/sparc.c: Remove all traces of TARGET_LIVE_G0 and
	TARGET_BROKEN_SAVERESTORE.
	(zero_operand): Remove.
	* config/sparc/splet.h (SUBTARGET_SWITCHES): Remove -mlive-g0,
	-mno-live-g0, -mbroken-saverestore and -mno-broken-saverestore
	options.
	(SUBTARGET_OVERRIDE_OPTIONS): Remove.
	* config/sparc/linux-aout.h (TARGET_LIVE_G0,
	TARGET_BROKEN_SAVERESTORE): Remove.
	* config/sparc/linux.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
	Remove.
	* config/sparc/linux64.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
	Remove.
	* config/sparc/sol2.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
	Remove.

	* config/sparc/sparc.md (return_df_no_fpu): New pattern.

From-SVN: r32508
2000-03-13 18:34:57 +01:00
Zack Weinberg
0e091b520e cpplib.c (do_pragma_implementation): Fix off-by-one error truncating a string.
* cpplib.c (do_pragma_implementation): Fix off-by-one error
	truncating a string.  Don't assume tokens are nul terminated.
	Problem noted by Andreas Jaeger <aj@suse.de>

From-SVN: r32507
2000-03-13 17:25:36 +00:00
Jason Merrill
bc808e0bc5 dwarf2out.c (add_name_and_src_coords_attributes): Only add DW_AT_MIPS_linkage_name for TREE_PUBLIC decls.
* dwarf2out.c (add_name_and_src_coords_attributes): Only add
        DW_AT_MIPS_linkage_name for TREE_PUBLIC decls.
        (ASM_OUTPUT_DWARF_ADDR_CONST): Don't output trailing newline.

From-SVN: r32506
2000-03-13 10:09:49 -05:00
Richard Earnshaw
f132af859b stor-layout.c (new_record_layout_info): Fix typo inside ifdef STRUCTURE_SIZE_BOUNDARY.
* stor-layout.c (new_record_layout_info): Fix typo inside ifdef
STRUCTURE_SIZE_BOUNDARY.

From-SVN: r32505
2000-03-13 13:24:54 +00:00
Nathan Sidwell
302e5c4601 * g++.old-deja/g++.warn/inline.C: New test.
From-SVN: r32504
2000-03-13 11:12:13 +00:00
Mark Mitchell
9328904cdf tree.h (record_layout_info_s): New structure.
* tree.h (record_layout_info_s): New structure.
	(record_layout_info): New type.
	(new_record_layout_info): New function.
	(layout_field): Likewise.
	(finish_record_layout): Likewise.
	* stor-layout.c (layout_record): Remove.
	(new_record_layout_info): New function.
	(layout_field): New function, broken out from layout_record.
	(finalize_record_size): Likewise.
	(compute_record_mode): Likewise.
	(finalize_type_size): New function, broken out from layout_type.
	(finish_record_layout): Likewise.
	(layout_type): Use them.

From-SVN: r32503
2000-03-13 09:12:50 +00:00
Jeff Law
05e126b360 Daily bump.
From-SVN: r32502
2000-03-13 01:45:08 -07:00
Mark Mitchell
3afb32a4a4 cp-tree.h (revert_static_member_fn): Change prototype.
* cp-tree.h (revert_static_member_fn): Change prototype.
	* decl.c (grokfndecl): Adjust call to revert_static_member_fn.
	(grok_op_properties): Likewise.
	(start_function): Likewise.
	(revert_static_member_fn): Simplify.
	* pt.c (check_explicit_specialization): Adjust call to
	revert_static_member_fn.

From-SVN: r32501
2000-03-13 04:54:39 +00:00
Zack Weinberg
f01fc05930 toon forgot to check in configure
From-SVN: r32500
2000-03-13 03:43:19 +00:00
Zack Weinberg
6feb772821 cpphash.c: Don't include version.h.
* cpphash.c: Don't include version.h.
	(special_symbol) [case T_VERSION]: Look for the string in
	hp->value.cpval; don't use version_string.
	* cppinit.c (initialize_builtins): Set hp->value.cpval for
	__VERSION__ to version_string.
	* Makefile.in (cpphash.o): Update deps.

From-SVN: r32499
2000-03-13 00:10:13 +00:00
Zack Weinberg
d35364d13e Convert cpplib to use libiberty/hashtab.c.
* cpplib.h (struct cpp_reader): Make hashtab and
	all_include_files of type 'struct htab *'.  Delete HASHSIZE
	and ALL_INCLUDE_HASHSIZE macros.

	* cpphash.h: Update prototypes.
	(struct hashnode): Remove next, prev, and bucket_hdr members.
	Make length a size_t.  Add hash member.
	(struct ihash): Remove next member.  Add hash member.  Make
	name a flexible array member.

	* cppfiles.c: Include hashtab.h.
	(include_hash): Delete.
	(IHASHSIZE): New macro.
	(hash_IHASH, eq_IHASH, _cpp_init_include_hash): New functions.
	(cpp_included): Do the hash lookup here.
	(_cpp_find_include_file): Rewrite.
	(cpp_read_file): Put the "fake" hash entry into the hash
	table.  Honor the control_macro, if it turns out we've seen
	the file before.  Don't push the buffer here.
	(_cpp_read_include_file): Push the buffer here.
	(OMODES): New macro.  Use it whenever we call open(2).

	* cpphash.c: Include hashtab.h.
	(hash_HASHNODE, eq_HASHNODE, del_HASHNODE, dump_hash_helper,
	_cpp_init_macro_hash, _cpp_dump_macro_hash, _cpp_make_hashnode,
	_cpp_lookup_slot): New functions.
	(HASHSIZE): new macro.
	(hashf, _cpp_install, _cpp_delete_macro): Delete.
	(_cpp_lookup): Use hashtab.h routines.

	* cppinit.c: Include hashtab.h.
	(cpp_reader_init): Call _cpp_init_macro_hash and
	_cpp_init_include_hash.  Don't allocate hashtab directly.
	(cpp_cleanup): Just call htab_delete on pfile->hashtab and
	pfile->all_include_files.
	(initialize_builtins): Use _cpp_make_hashnode and
	htab_find_slot to add hash entries.
	(cpp_finish): Just call _cpp_dump_macro_hash.
	* cpplib.c: Include hashtab.h.
	(do_define): Use _cpp_lookup_slot and _cpp_make_hashnode to
	create hash entries.
	(do_pragma_poison, do_assert): Likewise.
	(do_include): Don't push the buffer here.  Don't increment
	system_include_depth unless _cpp_read_include_file succeeds.
	(do_undef, do_unassert): Use _cpp_lookup_slot and htab_clear_slot
	or htab_remove_elt.
	(do_pragma_implementation): Use alloca to create copy.

	* Makefile.in: Update dependencies.

From-SVN: r32497
2000-03-12 23:46:05 +00:00
Toon Moene
6973bf5482 configure.in: Define IEEE_COMPLEX_DIVIDE.
* libF77/configure.in: Define IEEE_COMPLEX_DIVIDE.
	* libF77/[cz]_div.c: Arrange for compilation under
	-DIEEE_COMPLEX_DIVIDE to make these routines
	avoid calling sig_die when the denominator vanishes.
	* libF77/s_rnge.c: Add casts for the case of
	sizeof(ftnint) == sizeof(int) < sizeof(long).
	* libI77/endfile.c: Set state to writing (b->uwrt = 1) when an
	endfile statement requires copying the file
	Also, supply a missing (long) cast in the sprintf call.
	* libI77/sfe.c: Add #ifdef ALWAYS_FLUSH logic, for formatted I/O.

From-SVN: r32496
2000-03-12 19:20:47 +00:00
Gabriel Dos Reis
66e86e32ab Revert previous checkin
From-SVN: r32495
2000-03-12 19:03:13 +00:00
Mark Mitchell
74b846e0de cp-tree.h (scope_kind): New type.
* cp-tree.h (scope_kind): New type.
	(tmpl_spec_kind): Likewise.
	(declare_pseudo_global_level): Remove.
	(pseudo_global_level_p): Rename to template_parm_scope_p.
	(pushlevel): Remove declaration.
	(begin_scope): New function.
	(finish_scope): Likewise.
	(current_tmpl_spec_kind): Likewise.
	* decl.c (struct binding_level): Shorten parm_flag to 2 bits.
	Shorten keep to 2 bits.  Rename pseudo_global to template_parms_p.
	Add template_spec_p.
	(toplevel_bindings_p): Adjust.
	(declare_pseudo_global_level): Remove.
	(pseudo_global_level_p): Rename to template_parm_scope_p.
	(current_tmpl_spec_kind): New function.
	(begin_scope): Likewise.
	(finish_scope): Likewise.
	(maybe_push_to_top_level): Adjust.
	(maybe_process_template_type_declaration): Likewise.
	(pushtag): Likewise.
	(pushdecl_nonclass_level): Likewise.
	(lookup_tag): Likewise.
	(grokfndecl): Handle member template specializations.  Share
	constructor and non-constructor code.
	* decl2.c (check_classfn): Handle member template specializations.
	* pt.c (begin_template_parm_list): Use begin_scope.
	(begin_specialization): Likewise.
	(end_specialization): Likewise.
	(check_explicit_specialization): Use current_tmpl_spec_kind.
	Handle member template specializations.
	(end_template_decl): Use finish_scope.  Remove call to
	get_pending_sizes.
	(push_template_decl_real): Remove bogus error message.
	(tsubst_decl): Fix typo in code contained in comment.
	(instantiate_template): Handle member template specializations.
	(most_general_template): Likewise.

From-SVN: r32494
2000-03-12 18:47:52 +00:00
Toon Moene
d453714896 * MAINTAINERS: Added myself for write-after-approval.
From-SVN: r32493
2000-03-12 17:24:42 +00:00
Gabriel Dos Reis
b4f4233d52 lex.c (whitespace_cr): Compress consecutive calls to warning().
2000-03-11  Gabriel Dos Reis  <gdr@codesourcery.com>

        * lex.c (whitespace_cr): Compress consecutive calls to warning().
        (do_identifier): Ditto for error().

        * pt.c (convert_nontype_argument): Ditto for cp_error().
        (convert_template_argument): Ditto for cp_pedwarn().

From-SVN: r32492
2000-03-12 17:19:22 +00:00
Kaveh R. Ghazi
8be1ddcacc * cppinit.c (cl_directive_handler): More K&R fixing.
From-SVN: r32490
2000-03-12 13:55:52 +00:00
Jeff Law
c24f43032b Daily bump.
From-SVN: r32489
2000-03-12 01:45:08 -07:00
Jim Wilson
f152e9d4b1 * MAINTAINERS: Add self as ia64 port maintainer.
From-SVN: r32488
2000-03-12 00:24:23 -08:00
Jim Wilson
294dac8081 Fix bug found by make bootstrap failure. Eliminate some warnings.
* config/ia64/ia64.c (ia64_compute_frame_size): Align size to
	STACK_BOUNDARY.
	* config/ia64/ia64.h (REGISTER_MOVE_COST): Add missing parentheses.

From-SVN: r32487
2000-03-12 00:00:08 -08:00