Commit Graph

23530 Commits

Author SHA1 Message Date
Zack Weinberg
e89a9554e3 c-typeck.c (c_expand_start_case): Return immediately if exp is an ERROR_MARK.
1999-08-27 00:27 -0700  Zack Weinberg  <zack@bitmover.com>

	* c-typeck.c (c_expand_start_case): Return immediately if exp
	is an ERROR_MARK.
	* fold-const.c (operand_equal_p): Return immediately if arg1
	or arg0 are ERROR_MARKs.
	* stor-layout.c (layout_type [case RECORD_TYPE]): Ignore
	fields of type ERROR_MARK when calculating if the record can
	go in a register.

From-SVN: r28923
1999-08-27 07:37:16 +00:00
Jeffrey A Law
2dc36fe3a7 * gcc.c-torture/execute/990827-1.c: New test.
From-SVN: r28922
1999-08-27 01:24:32 -06:00
Jim Kingdon
7759f25bfb i386.md: In the 6 insns which call output_fix_trunc, earlyclobber operands[0].
* i386.md: In the 6 insns which call output_fix_trunc,
        earlyclobber operands[0].

From-SVN: r28921
1999-08-27 01:07:06 -06:00
Philip Blundell
5ca8e6f76b jump.c (duplicate_loop_exit_test): Call reg_scan_update after creating new registers.
* jump.c (duplicate_loop_exit_test): Call reg_scan_update after
        creating new registers.

From-SVN: r28920
1999-08-27 01:02:37 -06:00
Zack Weinberg
9c23aa4770 i386.h: Declare ix86_cpu_string...
1999-08-26 23:09 -0700  Zack Weinberg  <zack@bitmover.com>

	* i386.h: Declare ix86_cpu_string, ix86_arch_string,
	i386_reg_alloc_order, i386_regparm_string,
	i386_align_loops_string, i386_align_jumps_string,
	i386_align_funcs_string, i386_preferred_stack_boundary_string,
	and i386_branch_cost_string as type "const char *".
	* i386.c: Define all above strings as type "const char *".

From-SVN: r28919
1999-08-27 06:16:55 +00:00
Mark Mitchell
3fa5619139 decl.c (lookup_label): Build labels on the permanent obstack when building statement trees.
* decl.c (lookup_label): Build labels on the permanent obstack
	when building statement trees.  Don't build RTL for labels when
	building statement trees.
	* semantics.c (finish_goto_stmt): Use LABEL_DECLs even when
	building statement trees.
	(finish_label_stmt): Likewise.
	(expand_stmt): Adjust accordingly.
	* pt.c (tsubst_expr); Likewise.
	(do_decl_instantiation): Robustify.

From-SVN: r28918
1999-08-27 06:07:08 +00:00
Mark Mitchell
ed6d16ade2 Fix typo in last change
From-SVN: r28917
1999-08-27 05:33:09 +00:00
Mark Mitchell
49124a6e01 cp-tree.h (AGGR_INIT_VIA_CTOR_P): New macro.
* cp-tree.h (AGGR_INIT_VIA_CTOR_P): New macro.
	* tree.c (build_cplus_new): Set it.
	* expr.c (cplus_expand_expr): Use it.
	* dump.c (deque_and_dump): Handle AGGR_INIT_EXPR.

From-SVN: r28916
1999-08-27 05:01:08 +00:00
Mark Mitchell
e1376b008f cp-tree.h (AGGR_INIT_VIA_CTOR_P): New macro.
* cp-tree.h (AGGR_INIT_VIA_CTOR_P): New macro.
	* tree.c (build_cplus_new): Set it.
	* expr.c (cplus_expand_expr): Use it.

From-SVN: r28915
1999-08-27 04:58:19 +00:00
Mark Mitchell
078a76c8a0 decl.c (store_parm_decls): Reset immediate_size_expand.
* decl.c (store_parm_decls): Reset immediate_size_expand.
	(finish_function): Likewise.

From-SVN: r28914
1999-08-27 03:52:44 +00:00
Jim Wilson
b122caabab Fix aranges corruption for non-mips 64 bit targets.
* dwarf2out.c (output_aranges): Check DWARF_OFFSET_SIZE not PTR_SIZE
	when emitting alignment padding.  Emit padding byte of 0 instead of 4.

From-SVN: r28913
1999-08-26 20:41:45 -07:00
Mark Mitchell
a4efc7d798 tree.c (store_parm_decls): Reset immediate_size_expand.
* tree.c (store_parm_decls): Reset immediate_size_expand.
	(finish_function): Likewise.

From-SVN: r28912
1999-08-27 03:11:52 +00:00
Mark Mitchell
c3da6f12b8 tree.c (copy_node): Improve documentation.
* tree.c (copy_node): Improve documentation.
	(cplus_unsave_expr_now): Don't return a value.

From-SVN: r28911
1999-08-27 03:01:20 +00:00
Jim Wilson
b2244e22a0 Add support for defering line number table construction to assembler.
* dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Add default definition.
	(debug_dwarf): Add DWARF2_ASM_LINE_DEBUG_INFO support.
	(dwarf2out_line, dwarf2out_finish): Likewise.
	* tm.texi (DWARF2_ASM_LINE_DEBUG_INFO): Add documetation.

From-SVN: r28910
1999-08-26 19:37:40 -07:00
Mark Mitchell
26612c795a tree.c (cplus_unsave_expr_now): Don't return a value.
1999-08-26  Mark Mitchell  <mark@codesourcery.com>

	* tree.c (cplus_unsave_expr_now): Don't return a value.

From-SVN: r28909
1999-08-27 00:51:55 +00:00
Mark Mitchell
38c7331af5 * semantics.c (do_poplevel): Always initialize the return value.
From-SVN: r28908
1999-08-26 23:40:50 +00:00
Craig Burley
723dc4421e New test
From-SVN: r28907
1999-08-26 18:16:57 -04:00
Gavin Romig-Koch
4ef8e8f542 For gcc:
* tree.c (lang_unsave_expr_now) : Correct return type.
	* tree.h (lang_unsave_expr_now) : Same.

For gcc/cp:
	* cp-tree.h (cplus_unsave_expr_now) : Correct return type.
	* tree.h (cplus_unsave_expr_now) : Same.

From-SVN: r28906
1999-08-26 20:47:25 +00:00
Jeff Law
59de811e27 Fix typo in last entry.
From-SVN: r28905
1999-08-26 13:19:58 -06:00
Jeffrey A Law
b85ed4fc35 pa.md (cint_ok_for_move): Use CONST_INT_OK_FOR_LETTER_P macros instead of duplicating code.
* pa.md (cint_ok_for_move): Use CONST_INT_OK_FOR_LETTER_P macros
        instead of duplicating code.

From-SVN: r28904
1999-08-26 13:15:22 -06:00
Tom Tromey
12207a8790 gjavah.c (print_cxx_classname): Print "::" before qualified name.
* gjavah.c (print_cxx_classname): Print "::" before qualified
	name.

http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&database=java&pr=36

From-SVN: r28902
1999-08-26 18:23:33 +00:00
Bernd Schmidt
21e3a71724 Ignore no-ops in cprop pass.
From-SVN: r28901
1999-08-26 17:33:35 +00:00
Craig Burley
49b1e9eb96 New test
From-SVN: r28900
1999-08-26 13:31:13 -04:00
Craig Burley
c363a0c4a5 New test
From-SVN: r28899
1999-08-26 13:25:27 -04:00
Craig Burley
9dae6a7f36 New test
From-SVN: r28898
1999-08-26 13:13:42 -04:00
Gregg Townsend
ee5cd6389e verify.c (verify_jvm_instructions): Don't check instruction validity beyond end of method.
Wed Aug 25 15:37:15 1999  Gregg Townsend  <gmt@cs.arizona.edu>

        * verify.c (verify_jvm_instructions): Don't check instruction
        validity beyond end of method.

From-SVN: r28897
1999-08-26 10:00:57 -07:00
Craig Burley
b5a3b73799 New tests
From-SVN: r28895
1999-08-26 12:54:30 -04:00
Alexandre Petit-Bianco
f441f67120 re GNATS gcj/32 (A boolean expression containing two qualified expressions makes jc1 die.)
Thu Aug 26 09:10:58 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>

        * parse.y (lookup_cl): Changed leading comment. Now does its best
        to set the column number.
        (qualify_ambiguous_name): Take WFL wrappers into account.

This patch fixes the Java net PR #32.

From-SVN: r28894
1999-08-26 09:51:49 -07:00
Zack Weinberg
8ce2547995 tree.h: fancy_abort always takes three args.
1999-08-26 09:42 -0700  Zack Weinberg  <zack@bitmover.com>

	* tree.h: fancy_abort always takes three args.
	* resource.c: Move include of system.h before toplev.h.

From-SVN: r28893
1999-08-26 16:49:42 +00:00
Craig Burley
03565372b3 New test
From-SVN: r28892
1999-08-26 11:24:57 -04:00
Nick Clifton
368f4cd6f3 Accept LABEL_REFs as well as SYMBOL_REFs in mem_loc_descriptor()
From-SVN: r28891
1999-08-26 08:47:03 +00:00
Jeff Law
b7e89a7795 Daily bump.
From-SVN: r28890
1999-08-26 01:45:12 -06:00
Zack Weinberg
987009bf0d system.h: Don't redefine abort or trim_filename.
1999-08-25 22:10 -0700  Zack Weinberg  <zack@bitmover.com>

	* system.h: Don't redefine abort or trim_filename.
	* rtl.h: Define abort to fancy_abort (__FILE__, __LINE__, 0)
	or fancy_abort (__FILE__, __LINE__, __FUNCTION__) depending on
	whether or not __FUNCTION__ is available.
	* tree.h: Duplicate rtl.h's definition of abort, for files
	that don't include rtl.h.  Delete all code to perform type
	checking with a compiler other than GCC.
	* varray.h: Delete all code to perform type checking with a
	compiler other than GCC.  Make VARRAY_CHECK() always evaluate
	its arguments exactly once, using a statement expression.
	Adjust the VARRAY_<type> accessor macros to match.
	* toplev.h (fatal_insn, fatal_insn_not_found): Kill.
	(_fatal_insn, _fatal_insn_not_found): New fns, take info on
	caller's location.  Define fatal_insn and fatal_insn_not_found
	as macros that use _fatal_insn and _fatal_insn_not_found.
	(fancy_abort, trim_filename): Kill prototypes.

	* rtl.c (trim_filename): Move here from toplev.c.
	(fancy_abort): New function.
	(DIR_SEPARATOR): Provide default definition.
	* tree.c (tree_check_failed, tree_class_check_failed): Go
	through fancy_abort.
	(tree_check, tree_class_check, cst_or_constructor_check,
	expr_check): Delete.
	* varray.c (varray_check_failed): New function.
	* toplev.c (fatal_insn, fatal_insn_not_found): Replace with
	_fatal_insn and _fatal_insn_not_found.  Go through
	fancy_abort.
	(trim_filename, fancy_abort): Delete.

	* builtins.c (expand_builtin_args_info): Report ICE with abort.
	* except.c (start_catch_handler): Report ICE with error/abort
	combo.
	* final.c (output_operand_lossage): Likewise.
	* flow.c (verify_flow_info): Likewise.

	* gcc.c: Prototype fatal.
	* gengenrtl.c: Undef abort after including rtl.h not system.h.
	* genattr.c, genattrtab.c, genemit.c, genextract.c,
	genflags.c, genopinit.c, genoutput.c, genpeep.c, genrecog.c:
	Don't define fancy_abort.

From-SVN: r28889
1999-08-26 05:18:44 +00:00
Mark Mitchell
f18a14bcc1 decl.c (grokdeclarator): Amend comment.
* decl.c (grokdeclarator): Amend comment.
	* except.c (expand_start_catch_block): Call push_template_decl for
	catch-block parameters.
	* method.c (synthesize_method): Build an empty compound statement
	for the body of a constructor.

From-SVN: r28888
1999-08-26 04:19:52 +00:00
Jason Merrill
b06167fcc4 new
From-SVN: r28887
1999-08-25 22:25:45 -04:00
Jason Merrill
e271912d4b tree.c (cp_build_qualified_type_real): If we're asking for the same quals we already have, just return.
* tree.c (cp_build_qualified_type_real): If we're asking for the
	same quals we already have, just return.

From-SVN: r28886
1999-08-25 22:19:26 -04:00
Richard Henderson
5879933a92 optabs.c (emit_cmp_and_jump_insns): Be more thorough in canonization.
* optabs.c (emit_cmp_and_jump_insns): Be more thorough in
        canonization.

From-SVN: r28885
1999-08-25 17:59:14 -07:00
Richard Henderson
2cb3d06cd5 m88k.h (VERSION_INFO2): Kill.
* m88k.h (VERSION_INFO2): Kill.
        (VERSION_STRING): Kill.
        (TM_RCS_ID): Kill.
        (VERSION_INFO1): Tidy.
        (TARGET_VERSION): Update.
        * m88k/dgux.h (VERSION_INFO2): Kill.
        (ASM_FIRST_LINE): Adjust for death of VERSION_STRING.
        * m88k/luna.h (VERSION_INFO1): Tidy.
        * m88k/sysv4.h (VERSION_INFO1): Likewise.
        * m88k.c (out_rcs_id, tm_rcs_id): Kill.
        (output_file_start): Adjust for death of VERSION_STRING.

From-SVN: r28881
1999-08-25 15:40:16 -07:00
Mark Mitchell
f1dedc319f cp-tree.def (SUBOBJECT): New tree node.
* cp-tree.def (SUBOBJECT): New tree node.
	* cp-tree.h (CLEANUP_P): New macro.
	(SUBOBJECT_CLEANUP): Likewise.
	(keep_next_level): Add parameter.
	(get_temp_regvar): Don't declare.
	(emit_base_init): Remove parameter.
	(expand_aggr_init): Rename to build_aggr_init.
	(expand_vec_init): Rename to build_vec_init.
	(do_pushlevel): Remove.
	(do_poplevel): Likewise.
	(finish_cleanup): New function.
	(finish_subobject): Likewise.
	(stmts_are_full_exprs_p): New variable.
	* decl.c (keep_next_level): Add parameter.
	(cp_finish_decl): Use build_aggr_init, not
	expand_aggr_init.  Use finish_expr_stmt to expand the code.
	(expand_static_init): Use tree-generating, not RTL-generating,
	functions to handle the initialization.
	(start_function): Remove dead code.  Always have a momentary
	obstack inside the function, even before hitting the first curly
	brace.
	(cplus_expand_expr_stmt): Move calls to
	expand_{start,end}_target_temps into semantics.c.
	(cp_function): Add stmts_are_full_exprs_p.
	(push_cp_function_context): Save it.
	(pop_cp_function_context): Restore it.
	* decl2.c (get_temp_regvar): Move to init.c.
	(do_static_initialization): Use build_{aggr,vec}_init.
	(do_static_destruction): Fix typo in comment.
	* dump.c (dequeue_and_dump): Handle INIT_EXPR.
	* except.c (expand_throw): Use create_temporary_var.
	* expr.c (cplus_expand_expr): Use build_{aggr,vec}_init.
	* init.c (expand_vec_init_try_block): Remove.
	(expand_vec_init_catch_clause): Likewise.
	(get_temp_regvar): New function.
	(begin_init_stmts): Likewise.
	(finish_init_stmts): Likewise.
	(perform_member_init): Use build_{aggr,vec}_init.  Build up tree
	structure here.
	(emit_base_init): Likewise.  Remove unused parameter.
	(expand_virtual_init): Likewise.
	(expand_cleanup_for_base): Use finish_subobject.
	(expand_aggr_vbase_init_1): Simplify.
	(construct_virtual_bases): Use tree-generating functions to build
	up initialization.
	(expand_aggr_init): Likewise.  Rename to build_aggr_init.
	(expand_default_init): Likewise.
	(expand_aggr_init_1): Likewise.
	(expand_vec_init): Rename to build_vec_init.
	* method.c (do_build_copy_constructor): Use tree-generating
	functions.  Don't call clear_last_expr.
	(do_build_assign_ref): Likewise.
	(synthesize_method): Call clear_last_expr here.
	* parse.y (base_init): Don't call clear_last_expr here.
	(nodecls): Likewise.
	* pt.c (tsubst_expr): Handle a TRY_BLOCK with CLEANUP_P set.
	* semantics.c (do_pushlevel): Move to here.
	(do_poplevel): Likewise.
	(stmts_are_full_exprs_p): New variable.
	(finish_expr_stmt): Handle logic for temoprary cleanup here.
	(finish_for_stmt): Use finish_expr_stmt.
	(finish_cleanup): New function.
	(finish_function_try_block): Fix indentation.
	(finish_subobject): New function.
	(setup_vtbl_ptr): Call keep_next_level here.
	(finish_stmt_expr): Handle a block with no scope inside the
	statement-expression.
	(expand_stmt): Handle a TRY_BLOCK with CLEANUP_P set.  Handle
	SUBOBJECT.
	* tree.c (search_tree): Handle INIT_EXPR.
	(mapcar): Likewise.
	* typeck.c (build_modify_expr): Don't build an RTL_EXPR.
	* typeck2.c (store_init_value): Change expand_aggr_init to
	build_aggr_init in comment.

From-SVN: r28878
1999-08-25 22:07:18 +00:00
Jim Meyering
1d0e51ba33 cpplib.c (detect_if_not_defined): New function.
1999-08-25 13:51 -0700  Jim Meyering  <meyering@ascend.com>

	* cpplib.c (detect_if_not_defined): New function.
	(do_if): Use it to detect potential once-only headers.

From-SVN: r28877
1999-08-25 22:01:36 +00:00
Paul Burchard
f362bcef80 lss-001.C, [...]: New tests.
* g++.old-deja/g++.pt/lss-001.C, lss-002.C, lss-003.C, lss-004.C,
lss-005.C, lss-006.C, lss-007.C, lss-008.C, lss-009.C, lss-010.C,
lss-011.C: New tests.

From-SVN: r28874
1999-08-25 21:48:16 +00:00
Jason Merrill
ccd4c83283 * c-common.c (combine_strings): Always set TREE_CONSTANT.
From-SVN: r28873
1999-08-25 17:05:16 -04:00
Gavin Romig-Koch
57cf50a464 combine.c (nonzero_bits): Allow single-ly set registers to be anywere in the function only if...
* combine.c (nonzero_bits) : Allow single-ly set registers to be
	anywere in the function only if they are pseudos and set before
	being used (not live at the start of the function).
	(num_sign_bit_copies) : Same.
	(get_last_value_validate) : Same.
	(get_last_value) : Same.

From-SVN: r28871
1999-08-25 19:29:43 +00:00
Tom Tromey
95c5608516 G19990304_01.out: New file.
* libjava.toshiba/G19990304_01.out: New file.
	* libjava.toshiba/G19990304_01.java: New file.

From-SVN: r28870
1999-08-25 18:38:58 +00:00
Tom Tromey
20c96b2a12 * jvspec.c (lang_specific_driver): Correctly handle --help again.
From-SVN: r28869
1999-08-25 18:37:05 +00:00
Richard Henderson
e0485b850c loop.c (express_from): Try harder to unify (* c N) and (* c M) where N and M are constant and N is an...
* loop.c (express_from): Try harder to unify (* c N) and (* c M)
        where N and M are constant and N is an integer multiple of M.

From-SVN: r28868
1999-08-25 11:14:11 -07:00
Mark Mitchell
37f26d6499 * dump.c (dequeue_and_dump): Dump TARGET_EXPRs.
From-SVN: r28867
1999-08-25 18:06:25 +00:00
Andrew MacLeod
36349f8be4 sbitmap.h (sbitmap_intersection_of_succs): Add prototype.
Wed Aug 25 13:55:47 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>

	* sbitmap.h (sbitmap_intersection_of_succs): Add prototype.
	(sbitmap_intersection_of_preds, sbitmap_union_of_succs,
	sbitmap_union_of_preds): Add prototypes.
	* sbitmap.c (sbitmap_intersection_of_succs): New function to compute
	the intersection of successors with the new flow graph structures.
	(sbitmap_intersection_of_preds): New function to compute the
	intersection of predecessors with the new flow graph structures.
	(sbitmap_union_of_succs): New function to compute the union of
	successors with the new flow graph structures.
	(sbitmap_union_of_preds): New function to compute the union of
	predecessors with the new flow graph structures.
	* gcse.c (compute_rdm, compute_available): Use new sbitmap routines.
	(expr_reaches_here_p): Use edge and basic_block structures instead
	of s_preds and s_succs.
	(compute_cprop_avinout): Use new sbitmap routines.
	(pre_expr_reaches_here_p): Use edge and basic_block structures instead
	of s_preds and s_succs.
	* flow.c (compute_flow_dominators): Compute dominators using
	edges and basic blocks instead of s_preds and s_succs.

From-SVN: r28866
1999-08-25 18:01:48 +00:00
Tom Tromey
3d31bc7f58 G19990310_01.out: New file.
* libjava.lang/G19990310_01.out: New file.
	* libjava.lang/G19990310_01.java: New file.

From-SVN: r28865
1999-08-25 17:54:55 +00:00
Andrew MacLeod
5a4f6418af lists.c (unused_insn_list, [...]): New file for maintaining various types of lists.
Wed Aug 25 13:41:47 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>

	* lists.c (unused_insn_list, unused_expr_list): New file for
	maintaining various types of lists. New statics for maintaining a
	cache of available INSN_LIST and EXPR_LIST nodes.
	(free_list): Static function for freeing a list of INSN/EXPR nodes.
	(alloc_INSN_LIST): Function to get a free INSN_LIST node.
	(alloc_EXPR_LIST): Function to get a free EXPR_LIST node.
	(init_EXPR_INSN_LIST_cache): Initialize the cache lists.
	(free_EXPR_LIST_list): Free an entire list of EXPR_LIST nodes.
	(free_INSN_LIST_list): Free an entire list of INSN_LIST nodes.
	(free_EXPR_LIST_node): Free an individual EXPR_LIST node.
	(free_INSN_LIST_node): Free an individual INSN_LIST node.
	* haifa-sched.c (unused_insn_list, unused_expr_list): Moved to flow.c
	(free_list, alloc_INSN_LIST, alloc_EXPR_LIST): Moved to flow.c
	(remove_dependence, free_pending_lists): Use new global routines.
	(flush_pending_lists, sched_analyze_insn): Use new global routines.
	(sched_analyze, compute_block_backward_dependences): Use new routines.
	(sched_analyze_1, sched_analyze_2): Use new routines.
	(schedule_insns): Use new global routines.
	* rtl.h (init_EXPR_INSN_LIST_cache, free_EXPR_LIST_list): Add function
	prototypes.
	(free_INSN_LIST_list, free_EXPR_LIST_node): Add prototypes.
	(free_INSN_LIST_node, alloc_INSN_LIST, alloc_EXPR_LIST): Add function
	prototypes.
	* toplev.c (rest_of_compilation): Initialize node cache.
	* Makefile.in (OBJS): Add lists.o to list of object files.
	(lists.o): Add dependancies.

From-SVN: r28864
1999-08-25 17:50:53 +00:00