Commit Graph

5886 Commits

Author SHA1 Message Date
Andreas Jaeger cb8b62b1a2 linux.h (NO_IMPLICIT_EXTERN_C): Define.
* config/mips/linux.h (NO_IMPLICIT_EXTERN_C): Define.
	(TARGET_MEM_FUNCTIONS): Define.

From-SVN: r32451
2000-03-09 19:38:52 +00:00
Jason Merrill cce097f1f9 * i386.c (ix86_valid_type_attribute_p): Use compare_tree_int.
From-SVN: r32450
2000-03-09 14:30:09 -05:00
Jason Merrill fb13d4d024 except.c (can_throw): See through a SEQUENCE.
* except.c (can_throw): See through a SEQUENCE.
        (nothrow_function_p): New fn.
        * except.h: Declare it.
        * function.c (current_function_nothrow): New var.
        (prepare_function_start): Initialize it.
        * output.h: Declare it.
        * toplev.c (rest_of_compilation): Set it.
        * dwarf2out.c (dwarf2out_begin_prologue): Use it.

From-SVN: r32449
2000-03-09 14:01:47 -05:00
Zack Weinberg 8051b17802 cpphash.c (collect_formal_parameters): strncmp returns 0 for match.
* cpphash.c (collect_formal_parameters): strncmp returns 0 for
	match.  (cpp_compare_defs): Count the nul separator when
	advancing over argument names.

From-SVN: r32448
2000-03-09 17:49:26 +00:00
Bernd Schmidt 37c5269a9f Fix a bug in preprocess_constraints
From-SVN: r32447
2000-03-09 16:07:33 +00:00
Bernd Schmidt aa5524a98e Fix suboptimal code generation by register elimination
From-SVN: r32446
2000-03-09 16:01:10 +00:00
Kaveh R. Ghazi 299b83b7fb libgcc2.h: New file.
* libgcc2.h: New file.
	* libgcc2.c: Move macros, typedefs and prototypes to libgcc2.h.

From-SVN: r32440
2000-03-09 03:39:09 +00:00
Jim Wilson c65ebc55ca Add ia64 port.
From-SVN: r32438
2000-03-08 16:26:04 -08:00
Zack Weinberg 88ae23e71d Makefile.in (LIBCPP_DEPS): New macro.
* Makefile.in (LIBCPP_DEPS): New macro.
	(cpplib.o, cpphash.o, cpperror.o, cppexp.o, cppfiles.o): Use
	it to declare deps.
	* cpperror.c: Include cpphash.h.
	* cppexp.c: Include cpphash.h.  Remove MULTIBYTE_CHARS
	dingleberry.
	(lex): Don't use CPP_WARN_UNDEF.
	(_cpp_parse_expr): Return an int, the truth value.
	* cppfiles.c: Include cpphash.h.
	(_cpp_merge_include_chains): Move to cppinit.c and make static.
	* cppinit.c (include_defaults_array): Disentangle.
	(cpp_cleanup): Don't free the if stack here.
	(cpp_finish): Pop off all buffers, not just one.
	* cpplib.c (eval_if_expr): Return int.
	(do_xifdef): Rename do_ifdef.
	(handle_directive): Don't use CPP_PREPROCESSED.
	(cpp_get_token): Don't use CPP_C89.
	* fix-header.c: Don't use CPP_OPTIONS.

	* cpplib.h: Move U_CHAR, enum node_type, struct
	file_name_list, struct ihash, is_idchar, is_idstart,
	is_numchar, is_numstart, is_hspace, is_space, CPP_BUF_PEEK,
	CPP_BUF_GET, CPP_FORWARD, CPP_PUTS, CPP_PUTS_Q, CPP_PUTC,
	CPP_PUTC_Q, CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q,
	CPP_BUMP_BUFFER_LINE, CPP_BUMP_LINE, CPP_PREV_BUFFER,
	CPP_PRINT_DEPS, CPP_TRADITIONAL, CPP_PEDANTIC, and prototypes
	of _cpp_simplify_pathname, _cpp_find_include_file,
	_cpp_read_include_file, and _cpp_parse_expr to cpphash.h.
	Move struct if_stack to cpplib.c.  Move struct cpp_pending to
	cppinit.c.
	Change all uses of U_CHAR to be unsigned char instead.
	Delete CPP_WARN_UNDEF, CPP_C89, and CPP_PREPROCESSED.

From-SVN: r32435
2000-03-08 23:35:19 +00:00
Jason Merrill 737faf1404 dwarf2out.c (dw_fde_struct): Add 'nothrow'.
* dwarf2out.c (dw_fde_struct): Add 'nothrow'.
        (dwarf2out_begin_prologue): Set it.
        (output_call_frame_info): Don't emit EH unwind info for leaves.

From-SVN: r32434
2000-03-08 18:05:30 -05:00
Jason Merrill 6814a8a0bb flow.c (count_basic_blocks, [...]): A rethrow can occur outside of an EH region.
* flow.c (count_basic_blocks, find_basic_blocks_1): A rethrow
        can occur outside of an EH region.
        * except.c: Correct comments about rethrow behavior.
        (rethrow_symbol_map): Do nothing if !flag_new_exceptions.

        * flow.c (make_edges): Always call make_eh_edge for calls.

From-SVN: r32432
2000-03-08 16:30:17 -05:00
Zack Weinberg 38b24ee220 cpplib.h (parse_underflow_t, [...]): Delete.
* cpplib.h (parse_underflow_t, CPP_NULL_BUFFER): Delete.
	(struct cpp_buffer): Remove fname and underflow fields.
	(struct cpp_reader): Remove get_token field.
	(struct include_hash): Rename to struct ihash.  Add typedef to
	IHASH.
	(struct if_stack): Remove fname field.
	(IF_STACK_FRAME): Rename to IF_STACK.

	* cpperror.c (print_containing_files): Trust that there are no
	macro buffers below the top file buffer.
	* cppfiles.c: Replace all references to 'struct include_hash'
	with 'IHASH'.  Rename initialize_input_buffer to
	init_input_buffer.  Don't set or reference cpp_buffer->fname,
	use buffer->ihash->name instead.
	* cpphash.c (special_symbol): Use cpp_file_buffer.  Use NULL
	not CPP_NULL_BUFFER.
	* cppinit.c: Use NULL not CPP_NULL_BUFFER, IF_STACK not
	IF_STACK_FRAME, IHASH not struct include_hash.
	* cpplib.c: Rename eval_if_expression to eval_if_expr.  Remove
	null_underflow.  Use IF_STACK not IF_STACK_FRAME, IHASH not
	struct include_hash, NULL not CPP_NULL_BUFFER.  Remove all
	references to cpp_buffer->fname (delete entirely, or use
	->ihash->name instead) and IF_STACK->fname.
	(cpp_push_buffer): Don't set new->underflow.
	(do_include): Use cpp_file_buffer.

	* cpphash.c (collect_formal_parameters): Remove duplicate
	increment of argslen.  Pedwarn in C99 mode if __VA_ARGS__ is
	used as a macro argument name.  Don't append "..." to namebuf
	for varargs macros.  After we're done scanning, go through
	namebuf and make it NUL separated, not comma separated.
	(_cpp_compare_defs): Remove register tag from variables.
	Expect defn->argnames to be NUL separated.
	(_cpp_dump_definition): Expect defn->argnames to be NUL
	separated and in forward order.
	* cpphash.h: Update documentation of argnames field.

From-SVN: r32430
2000-03-08 20:37:23 +00:00
Richard Henderson dd05e4fae9 builtins.c (expand_builtin_strlen): Be prepared for strlensi to fail.
* builtins.c (expand_builtin_strlen): Be prepared for strlensi
        to fail.  Don't pre-expand the source operand.

From-SVN: r32429
2000-03-08 11:21:13 -08:00
Jason Merrill 5cb1bea4ae expr.c (expand_expr, [...]): Still check for missing CONSTRUCTOR element.
* expr.c (expand_expr, case ARRAY_REF): Still check for missing
        CONSTRUCTOR element.

From-SVN: r32423
2000-03-08 11:00:00 -05:00
Gavin Romig-Koch 4730fa4fad mips.c (mips_expand_prologue): If the last named argument is the vararg marker "va_list"...
* config/mips/mips.c (mips_expand_prologue): If the last
	named argument is the vararg marker "va_list", treat it as
	an unnamed argument.

From-SVN: r32421
2000-03-08 14:31:10 +00:00
Clinton Popetz 917d7595c1 dbxout.c (dbxout_parms): When correcting for promoted big-endian parameters...
* dbxout.c (dbxout_parms): When correcting for promoted
	big-endian parameters, use the mode of the DECL_RTL rather
	than UNITS_PER_WORD.

From-SVN: r32420
2000-03-08 08:45:17 -05:00
Nathan Sidwell 2ce07e2d92 c-common.h (make_fname_decl): Declare.
gcc:
	* c-common.h (make_fname_decl): Declare.
	* c-common.c (make_fname_decl): Define.
	(declare_hidden_char_array): Remove.
	(declare_function_name): Use make_fname_decl.
	* c-decl.c (c_make_fname_decl): New function.
	(init_decl_processing): Set make_fname_decl.

gcc/cp:
	* decl.c (cp_make_fname_decl): New function.
	(wrapup_globals_for_namespace): Don't emit unused static vars.
	(init_decl_processing): Remove comment about use of
	array_domain_type. Set make_fname_decl.
	(cp_finish_decl): Remove __FUNCTION__ nadgering.
	* semantics.c (begin_compound_stmt): Remove
	current_function_name_declared flagging.
	(expand_stmt): Don't emit unused local statics.
	* typeck.c (decay_conversion): Don't treat __FUNCTION__ decls
	specially.

From-SVN: r32418
2000-03-08 11:21:28 +00:00
Jeffrey A Law 776fc020b5 * cccp.c (handle_directive): Initialize backslash_newlines_p.
From-SVN: r32412
2000-03-07 23:55:21 -07:00
Philipp Thomas d020c88404 * po/POTFILES.in: Remove cppalloc.c from file list.
From-SVN: r32410
2000-03-07 23:38:47 -07:00
Steve Chamberlain 511fce8b71 pj.c (pj_expand_prologue): current_function->args_info is now current_function_args_info.
* pj.c (pj_expand_prologue): current_function->args_info is
        now current_function_args_info.

        * pj.h (STORE_FLAG_VALUE, USER_LABEL_PREFIX,
        LOCAL_LABEL_PREFIX, ASM_GENERATE_INTERNAL_LABEL,
        ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Define.

From-SVN: r32409
2000-03-07 23:27:35 -07:00
Michael Hayes db14c6a02a c4x.h (PUT_SDB_TYPE): Define so that the type info is output as hexadecimal rather than the default octal.
* config/c4x/c4x.h (PUT_SDB_TYPE): Define so that the type info is
	output as hexadecimal rather than the default octal.

From-SVN: r32400
2000-03-08 04:13:39 +00:00
Zack Weinberg 707beebb3d * cpphash.c (special_symbol): Fix thinko in previous commit.
From-SVN: r32399
2000-03-08 03:58:12 +00:00
Zack Weinberg e23c0ba36f [multiple changes]
2000-03-07  Neil Booth  <NeilB@earthling.net>

	* cppexp.c (struct operation, left_shift, right_shift,
	cpp_parse_expr): Change some "char"s to "U_CHAR"s, and some
	"int"s to "unsigned int"s.
	* cpplib.c (detect_if_not_defined, do_assert, do_unassert):
	Similarly.
	* cpplib.h: Update for above.
	* mkdeps.c (deps_init, deps_calc_target): Cast pointers
	returned from allocations.

	* cppinit.c (opt_comp, parse_options): New functions.
	(handle_option): Use parse_option to parse a single command
	line option, that possibly takes an argument.
	(cpp_handle_options): Sort the array of command line options on
	first invocation (non-ASCII hosts only).
	(print_help): Update.

2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>

	* mkdeps.c (munge): Fix off-by-one bug and inconsistencies in
	backslash counting loops.  Problem noted by Matt Kraai <kraai@ghs.com>.

From-SVN: r32394
2000-03-07 23:11:06 +00:00
Zack Weinberg b0699daddf cppfiles.c (_cpp_find_include_file): Make sure ih->name is initialized.
* cppfiles.c (_cpp_find_include_file): Make sure ih->name is
	initialized.
	* cppinit.c (cpp_cleanup): Free imp->nshort also.

	* cpperror.c (cpp_print_containing_files,
	cpp_print_file_and_line, v_cpp_message): Rename to
	print_containing_files, print_file_and_line, and v_message.
	* cppexp.c (cpp_parse_expr, cpp_parse_escape, cpp_lex): Rename
	to _cpp_parse_expr, parse_escape, and lex.
	(parse_charconst): Remove broken multibyte support.
	* cppfiles.c (include_hash): Make static.
	(cpp_included): New function.
	(merge_include_chains, find_include_file, finclude,
	simplify_pathname): Rename to _cpp_merge_include_chains,
	_cpp_find_include_file, _cpp_read_include_file, and
	_cpp_simplify_pathname.
	* cpphash.c (cpp_lookup, free_definition, delete_macro,
	cpp_install, create_definition, macroexpand, compare_defs,
	dump_definition): Rename to _cpp_lookup, _cpp_free_definition,
	_cpp_delete_macro, _cpp_install, _cpp_create_definition,
	_cpp_macroexpand, _cpp_compare_defs, and _cpp_dump_definition.
	* cppinit.c (cpp_handle_option): Rename to handle_option, make
	static.
	* cpplib.c: Remove extern prototype of cpp_parse_expr.

	* cpphash.h: Update prototypes.
	* cpplib.h: Likewise.  Prototype _cpp_parse_expr here.

From-SVN: r32390
2000-03-07 20:58:47 +00:00
Andrew Haley 79e69af025 mips.h (PTRDIFF_TYPE): Revert broken change; PTRDIFF_TYPE should be based solely on Pmode.
2000-03-07  Andrew Haley  <aph@cygnus.com>

	* config/mips/mips.h (PTRDIFF_TYPE): Revert broken change;
	PTRDIFF_TYPE should be based solely on Pmode.
	(SIZE_TYPE): ditto.

From-SVN: r32389
2000-03-07 20:49:45 +00:00
Kaveh R. Ghazi 3cce094dd9 rtl.h (rtunion_def): Constify member `rtstr'.
* rtl.h (rtunion_def): Constify member `rtstr'.
	(emit_line_note_after, emit_line_note, emit_line_note_force,
	emit_note, decode_asm_operands): Constify.

	* cse.c (canon_hash): Likewise.

	* dbxout.c (dbxout_block): Likewise.

	* diagnostic.c (file_and_line_for_asm, v_error_for_asm,
	v_warning_for_asm): Likewise.

	* dwarfout.c (function_start_label): Likewise.

	* emit-rtl.c (emit_line_note_after, emit_line_note, emit_note,
	emit_line_note_force): Likewise.

	* final.c (last_filename, asm_insn_count, final_scan_insn,
	output_source_line): Likewise.

	* function.h (struct emit_status): Likewise.

	* gcse.c (hash_expr_1): Likewise.

	* genattr.c (gen_attr, main): Likewise.

	* genattrtab.c (struct function_unit, current_alternative_string,
	write_attr_valueq, n_comma_elts, next_comma_elt, attr_eq,
	attr_numeral, check_attr_test, check_attr_value,
	convert_set_attr_alternative, convert_set_attr,
	compute_alternative_mask, simplify_by_exploding, gen_attr,
	gen_unit): Likewise.

	* genflags.c (gen_insn): Likewise.

	* gengenrtl.c (type_from_format): Likewise.

	* genopinit.c (gen_insn): Likewise.

	* genoutput.c (n_occurrences, process_template, process_template):
	Likewise.

	* ggc-page.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
	Likewise.

	* ggc-simple.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
	Likewise.

	* ggc.h (ggc_mark_string, ggc_mark, ggc_mark_if_gcable,
	ggc_set_mark, ggc_get_size): Likewise.

	* objc/objc-act.c (build_module_descriptor, finish_objc): Likewise.

	* optabs.c (init_one_libfunc): Likewise.

	* output.h (assemble_start_function): Likewise.

	* recog.c (decode_asm_operands): Likewise.

	* toplev.c (rest_of_compilation): Likewise.

	* tree.h (emit_line_note_after, emit_line_note,
	emit_line_note_force): Likewise.

	* varasm.c (asm_output_bss, asm_output_aligned_bss,
	asm_emit_uninitialised, assemble_start_function,
	assemble_variable, const_hash, compare_constant_1,
	find_pool_constant, mark_constant_pool, assemble_alias): Likewise.

	* xcoffout.h (DBX_FINISH_SYMBOL): Likewise.

	* alpha/alpha.md (call_vms, call_value_vms): Likewise.

	* arm/aof.h (ASM_OUTPUT_ASCII): Likewise.

	* arm/aout.h (ASM_OUTPUT_ASCII): Likewise.

	* arm/arm-protos.h (output_ascii_pseudo_op, arm_dllexport_name_p,
	arm_dllimport_name_p): Likewise.

	* arm/arm.c (arm_encode_call_attribute, output_ascii_pseudo_op):
	Likewise.

	* arm/arm.h (ASM_OUTPUT_MI_THUNK): Likewise.

	* arm/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* arm/pe.c (arm_dllexport_name_p, arm_dllimport_name_p,
	arm_mark_dllexport, arm_mark_dllimport,
	arm_pe_encode_section_info): Likewise.

	* arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS,
	ASM_FINISH_DECLARE_OBJECT): Likewise.

	* arm/thumb.c (thumb_function_prologue): Likewise.

	* arm/thumb.h (ASM_OUTPUT_ASCII): Likewise.

	* avr/avr.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* clipper/clix.h (ASM_OUTPUT_ASCII): Likewise.

	* fx80/fx80.h (ASM_OUTPUT_ASCII): Likewise.

	* i386/cygwin.h (ASM_OUTPUT_SECTION_NAME): Likewise.

	* i386/freebsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* i386/i386-interix.h (ASM_OUTPUT_LIMITED_STRING,
	ASM_OUTPUT_ASCII, ASM_OUTPUT_SECTION_NAME): Likewise.

	* i386/i386-protos.h (asm_output_function_prefix): Likewise.

	* i386/i386.c (asm_output_function_prefix): Likewise.

	* i386/i386elf.h (ASM_OUTPUT_ASCII): Likewise.

	* i386/osfrose.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* i386/ptx4-i.h (ASM_OUTPUT_ASCII): Likewise.

	* i386/sco5.h (ASM_FINISH_DECLARE_OBJECT,
	ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII,
	ASM_OUTPUT_SECTION_NAME): Likewise.

	* i386/sysv4.h (ASM_OUTPUT_ASCII): Likewise.

	* i860/paragon.h (ASM_OUTPUT_ASCII): Likewise.

	* i860/sysv3.h (ASM_OUTPUT_ASCII): Likewise.

	* m32r/m32r.c (m32r_encode_section_info): Likewise.

	* mcore-elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* mcore/mcore.c (mcore_encode_section_info): Likewise.

	* mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* mips/iris6.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* mips/mips.h (ASM_OUTPUT_IDENT): Likewise.

	* mips/mips.md (movdi, movsi): Likewise.

	* mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* openbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.

	* ptx4.h (ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
	ASM_OUTPUT_ASCII): Likewise.

	* rs6000/rs6000.c (rs6000_allocate_stack_space, output_epilog,
	output_mi_thunk, output_toc): Likewise.

	* rs6000/rs6000.md (movsi): Likewise.

	* rs6000/sysv4.h (ASM_OUTPUT_INT, ASM_OUTPUT_SECTION_NAME): Likewise.

	* tahoe/harris.h (ASM_OUTPUT_ASCII): Likewise.

	* v850/v850.c (print_operand, print_operand_address,
	v850_encode_data_area): Likewise.

ch:
	* grant.c (globalize_decl): Constify a char*.

cp:
	* decl2.c (finish_objects): Constify a char*.

	* method.c (emit_thunk): Likewise.

From-SVN: r32388
2000-03-07 20:39:10 +00:00
Clinton Popetz 32fdad6ead mips.md (zero_extendsidi2): Always force operand one to memory for mips16.
* config/mips/mips.md (zero_extendsidi2): Always force operand
	one to memory for mips16.

From-SVN: r32386
2000-03-07 14:29:51 -05:00
Richard Kenner 05bccae2ef tree.h (INT_CST_LT, [...]): Remove unneeded casts.
* tree.h (INT_CST_LT, INT_CST_LT_UNSIGNED): Remove unneeded casts.
	(struct tree_int_cst): int_cst_low is now unsigned HOST_WIDE_INT.
	(attribute_hash_list, type_hash_canon): hashcode is now unsigned.
	(type_hash_lookup, type_hash_add, type_hash_list): Likewise.
	(min_precision): Result is unsignd.
	(add_double, neg_double, mul_double): Low word is unsigned.
	(lshift_double, rshift_double, lrotate_double): Likewise.
	(rrotate_double, div_and_round_double): Likewise.
	(tree_floor_log2, compare_tree_int): New functions.
	(preserve_rtl_expr_temps): New declaration.
	* c-common.c (declare_hidden_char_array): Use compare_tree_int.
	(decl_attributes): Use tree_log2 to find alignment.
	Check for TREE_INT_CST_HIGH for format args.
	(min_precision): Now unsigned.
	Use tree_floor_log2.
	(truthvalue_conversion): Delete long-disabled code.
	* c-decl.c (finish_struct): Clean up tests on field width.
	(finish_function): Use compare_tree_int.
	* c-pragma.c (handle_pragma_token): Use tree_log2 for alignment.
	* c-typeck.c (comptypes): Use tree_int_cst_equal.
	(default_conversion, digest_init): Use compare_tree_int.
	(build_binary_op): Use integer_all_onesp and compare_tree_int.
	Fix type errors in forming masks.
	* calls.c (initialize_argument_information): Use compare_tree_int.
	* dbxout.c (dbxout_type): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
	* except.c (expand_eh_region_start_tree): Use compare_tree_int.
	* expr.c (is_zeros_p, case INTEGER_CST): Use integer_zerop.
	(store_field): Use compare_tree_int.
	(expand_expr, case CONSTRUCTOR): Use TYPE_SIZE_UNIT.
	(expand_expr, case ARRAY_REF): Use compare_tree_int.
	(do_jump, case BIT_AND_EXPR): Use tree_floor_log2.
	(do_store_flag): Use compare_tree_int.
	* fold-const.c (encode, decode): Low part is always unsigned.
	(force_fit_type, add_double, neg_double, mul_double): Likewise.
	(lshift_double, rshift_double, lrotate_double): Likewise.
	(rrotate_double, div_and_round_double, int_const_binop): Likewise.
	(fold_convert): Use compare_tree_int.
	(operand_equal_p, case INTEGER_CST): Use tree_int_cst_equal.
	(invert_truthvalue, case INTEGER_CST): Likewise.
	(fold): Use compare_tree_int; add casts for unsigned TREE_INT_CST_LOW.
	* mkdeps.c (deps_dummy_targets): Make I unsigned.
	* rtl.h (add_double, neg_double, mul_double): Low words are unsigned.
	(lshift_double, rshift_double, lrotate_double, rrotate_double):
	Likewise.
	* stmt.c (expand_decl): Use compare_tree_int and mode_for_size_tree.
	(expand_end_case): Use compare_tree_int.
	(estimate_case_costs): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
	* stor-layout.c (mode_for_size_tree): Use compare_tree_int.
	(layout_decl): Likewise.
	(layout_record, layout_union): Make sizes unsigned.
	(layout_type, case VOID_TYPE): TYPE_SIZE must be bitsizetype.
	(layout_type, case QUAL_UNION_TYPE): Use compare_tree_int.
	* tree.c (struct type_hash): hashcode is unsigned.
	(build_type_attribute_variant, type_hash_list): Likewise.
	(type_hash_lookup, type_hash_add, type_hash_canon): Likewise.
	(attribute_hash_list, build_array_type, build_method_type): Likewise.
	(build_complex_type): Likewise.
	(real_value_from_int_cst): Remove unneeded casts.
	(integer_all_onesp): Add casts.
	(tree_floor_log2, compare_tree_int): New functions.
	(build_index_type): Use tree_int_cst_sgn.
	* varasm.c (assemble_variable): Use compare_tree_int.
	* ch/actions.c (chill_convert_for_assignment): INDEX is unsigned
	HOST_WIDE_INT.
	* ch/ch-tree.h (DECL_NESTING_LEVEL): Use TREE_INT_CST_HIGH
	since unsigned.
	* ch/except.c (chill_handle_on_labels): ALTERNATIVE is unsigned.
	Use compare_tree_int.
	(expand_goto_except_cleanup): Likewise.
	* cp/class.c (dfs_modify_vtables): I is now unsigned.
	(check_bitfield_decl): Use tree_int_cst_sgn and compare_tree_int.
	(build_base_field): Add casts of TREE_INT_CST_LOW to HOST_WIDE_INT.
	* cp/error.c (dump_expr): Cast TREE_INT_CST_HIGH to unsigned.
	* cp/init.c (build_vec_init): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
	* cp/method.c (build_overload_int): Cast TREE_INT_CST_HIGH to unsigned.
	* cp/typeck.c (build_binary_op, case TRUNC_DIV_EXPR):
	Call integer_all_onesp.
	* cp/typeck2.c (process_init_constructor): Use compare_tree_int.
	* f/com.c (ffecom_f2c_set_lio_code_): Use compare_tree_int.
	(ffecom_sym_transform_, ffecom_transform_common_): Likewise.
	(ffecom_transform_equiv_): Likewise.
	* java/decl.c (emit_init_test_initialization): Mark KEY as unused.
	* java/expr.c (build_newarray): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
	(build_anewarray): Likewise.
	* java/parse.y (patch_newarray): Likewise.
	* java/parse.c: Regenerated.

From-SVN: r32383
2000-03-07 06:41:32 -05:00
Jason Merrill 7d26bd1698 cpphash.c (collect_expansion): Also catch ## at start of macro.
* cpphash.c (collect_expansion): Also catch ## at start of macro.

        * varasm.c (make_decl_rtl): Don't add a number to members of
        local classes.
        (make_function_rtl): Likewise.

From-SVN: r32378
2000-03-07 03:34:34 -05:00
Alexandre Oliva 141b581084 gcse.c (compute_can_copy): Adjust if/else blocks from rth's patch from 2000-01-28.
* gcse.c (compute_can_copy): Adjust if/else blocks from rth's
patch from 2000-01-28.

From-SVN: r32375
2000-03-07 03:43:03 +00:00
Clinton Popetz b1b41fe4ac sh.c: (barrier_align): Handle a delay slot that is filled with an insn from the jump...
* config/sh/sh.c: (barrier_align): Handle a delay slot that is
	filled with an insn from the jump target.

From-SVN: r32371
2000-03-06 16:17:44 -05:00
Michael Hayes 1621934772 c4x-protos.h (c4x_global_name): Constify char *.
* config/c4x/c4x-protos.h (c4x_global_name): Constify char *.
	(c4x_external_ref): Likewise.
	* config/c4x/c4x.c (struct name_list): Likewise.

From-SVN: r32370
2000-03-06 20:59:16 +00:00
Jakub Jelinek 4710d3eb4b real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Define to LONG_DOUBLE_TYPE_SIZE if not defined.
* real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Define to
	LONG_DOUBLE_TYPE_SIZE if not defined.
	Use MAX_LONG_DOUBLE_TYPE_SIZE instead of
	LONG_DOUBLE_TYPE_SIZE in preprocessor if clauses.
	* real.c: Likewise.
	* gengenrtl.c: Likewise.
	* print-rtl.c: Likewise.
	* rtl.c: Likewise.
	* config/sparc/sol2-sld-64.h (TARGET_DEFAULT): Set
	MASK_LONG_DOUBLE_128.
	* config/sparc/sol2.h (TARGET_DEFAULT): Likewise.
	* config/sparc/sp64-elf.h (TARGET_DEFAULT): Likewise.
	* config/sparc/linux64 (TARGET_DEFAULT): Likewise.
	(SUBTARGET_SWITCHES): Define.
	(CPP_ARCH32_SPEC): Define __LONG_DOUBLE_128__ if compiling
	with -mlong-double-128.
	(LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
	(MAX_LONG_DOUBLE_TYPE_SIZE): Define.
	(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
	(CC1_SPEC): Include -mlong-double-{64,128} as needed.
	* config/sparc/linux.h (SUBTARGET_SWITCHES): Define.
	(CPP_SUBTARGET_SPEC): Define __LONG_DOUBLE_128__ if compiling
	with -mlong-double-128.
	(LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
	(MAX_LONG_DOUBLE_TYPE_SIZE): Define.
	(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
	* config/sparc/sparc.h (MASK_LONG_DOUBLE_128,
	TARGET_LONG_DOUBLE_128): Define.
	* config/sparc/linux-aout.h (LONG_DOUBLE_TYPE_SIZE): Remove.
	* config/sparc/sparc.c (sparc_override_options): Disallow 64bit
	long double on TARGET_ARCH64.

From-SVN: r32367
2000-03-06 19:51:52 +01:00
Jakub Jelinek 6149cebb52 sparc.h (ASM_ARCH64_SPEC): Pass -no-undeclared-regs to gas if it supports .register pseudo.
* config/sparc/sparc.h (ASM_ARCH64_SPEC): Pass -no-undeclared-regs
	to gas if it supports .register pseudo.

From-SVN: r32366
2000-03-06 19:14:48 +01:00
Ben Collins 0a8d66180c Makefile.in: Pass a new MULTILIB_EXCLUSIONS option as the sixth argument to genmultilib.
* Makefile.in: Pass a new MULTILIB_EXCLUSIONS option as the sixth
	argument to genmultilib.
	* genmultilib: accept new MULTILIB_EXCLUSIONS option and output
	the contents into the multilib.h header.
	* gcc.c: Declare multilib_exclusions for the specs file.
	(set_multilib_dir): Use it.
	(print_multilib_info): Likewise.
	* t-linux64: Declare arguments for new MULTILIB_EXCLUSIONS option
	to pass to genmultilib.

From-SVN: r32365
2000-03-06 19:05:52 +01:00
Kaveh R. Ghazi fd05eb8097 builtins.c (built_in_class_names, [...]): Constify a char*.
* builtins.c (built_in_class_names, built_in_names): Constify a
	char*.

	* gmon-sol2.c (monstartup, moncontrol): Cast ptrs to long, not
	int.
	(_mcleanup): Ensure value matches format specifier in sprintf.

	* cpphash.c (special_symbol): Don't needlessly cast away
	const-ness.

	* cppinit.c (base_name): Delete unused prototype.

	* mkdeps.c (deps_init): Make definition K&R safe.

	* tree.h (built_in_class_names, built_in_names): Constify a
	char*.

f:
	* ansify.c (die_unless): Don't use ANSI string concatenation.
	(die): Mark with ATTRIBUTE_NORETURN.

From-SVN: r32364
2000-03-06 18:03:55 +00:00
Jakub Jelinek c137830fba sparc.c (eligible_for_epilogue_delay): Accept floating point instructions for epilogue delay.
* config/sparc/sparc.c (eligible_for_epilogue_delay): Accept
	floating point instructions for epilogue delay.

From-SVN: r32362
2000-03-06 18:55:17 +01:00
Mark Mitchell 64dc53f34d function.c (free_temps_for_rtl_expr): Don't free slots that have been pushed into a higher level.
* function.c (free_temps_for_rtl_expr): Don't free slots
	that have been pushed into a higher level.

	* expr.c (cplus_expand_expr, case STMT_EXPR): Don't set
	RTL_EXPR_HAS_NO_SCOPE after all.

From-SVN: r32355
2000-03-06 09:50:17 +00:00
Mark Mitchell ee25a7a5f6 basic-block.h (ALLOCA_REG_SET): Remove.
* basic-block.h (ALLOCA_REG_SET): Remove.
	(INITIALIZE_REG_SET): New macro.
	* flow.c (update_life_info): Use it.
	(calculate_global_regs_live): Likewise.
	(propagate_block): Likewise.
	* global.c (build_insn_chain): Likewise.
	* haifa-sched.c (schedule_region): Likewise.

From-SVN: r32350
2000-03-05 22:35:27 +00:00
Stephane Carrez 262b638442 dwarf2out.c (UNALIGNED_WORD_ASM_OP): Support 2 bytes pointer.
* dwarf2out.c (UNALIGNED_WORD_ASM_OP): Support 2 bytes pointer.
        (ASM_OUTPUT_DWARF_ADDR_CONST): Use UNALIGNED_WORD_ASM_OP.
        (DWARF_ARANGES_PAD_SIZE): New define.
        (output_aranges): Use it to pad the address range header.
        (DWARF_ROUND): Fix for non power of 2 rounding.

From-SVN: r32347
2000-03-05 17:25:36 -05:00
Jason Merrill 92df03e1de * mkdeps.c (deps_calc_target): Remove incorrect 'const'.
From-SVN: r32346
2000-03-05 16:47:50 -05:00
Mark Mitchell 9f93702662 tree.def (RTL_EXPR): Update documentation.
* tree.def (RTL_EXPR): Update documentation.
	* tree.h (RTL_EXPR_HAS_NO_SCOPE): New macro.
	* expr.c (expand_expr): Handle RTL_EXPR_HAS_NO_SCOPE.
	* function.c (preserve_rtl_expr_temp): New function.
	(preserve_rtl_expr_temps): Likewise.
	(preserve_rtl_expr_result): Use it.

From-SVN: r32344
2000-03-05 20:43:44 +00:00
Mark Mitchell 591ccf92b3 Revert this patch:
2000-03-04  Mark Mitchell  <mark@codesourcery.com>

From-SVN: r32343
2000-03-05 19:34:29 +00:00
Mark Mitchell 7470e8d74c function.h (struct sequence_stack): Remove rtl_expr.
* function.h (struct sequence_stack): Remove rtl_expr.
	(struct emit_staus): Likewise.
	(seq_rtl_expr): Remove.
	* tree.h (free_temps_for_rtl_expr): Don't declare.
	(start_sequence_for_rtl_expr): Likewise.
	* rtl.h (preserve_rtl_expr_result): Likewise.
	* emit-rtl.c (start_sequence): Don't set sequence_rtl_expr.
	(start_sequence_for_rtl_expr): Remove.
	(push_topmost_sequence): Don't save sequence_rtl_expr.
	(pop_topmost_sequence): Remove comment about not restoring it.
	(end_sequence): Don't set seq_rtl_expr.
	(init_emit): Don't initialize it.
	(mark_sequence_stack): Don't mark it.
	(mark_emit_status): Likewise.
	* except.c (protect_with_terminate): Use
	start_sequence_for_rtl_expr, not start_sequence.
	* expr.c (expand_expr, case RTL_EXPR): Don't call
	preserve_rtl_expr_result or free_temps_for_rtl_expr.
	* function.c (assign_stack_temp_for_type): Don't set rtl_expr.
	(preserve_rtl_expr_result): Remove.
	(free_temps_for_rtl_expr): Likewise.
	(pop_temp_slots): Likewise.
	(mark_temp_slot): Don't mark the rtl_expr.
	* stmt.c (expand_start_stmt_expr): Use start_sequence, not
	start_sequence_for_rtl_expr.

From-SVN: r32335
2000-03-05 03:43:58 +00:00
Thomas Schuster 40546a785b * regmove.c (copy_src_to_dest) Do not create src->dest move
for unchanging destination.

From-SVN: r32334
2000-03-05 02:02:09 +00:00
Mark Mitchell 08d0be2f4c function.h (struct sequence_stack): Remove rtl_expr.
* function.h (struct sequence_stack): Remove rtl_expr.
	(struct emit_staus): Likewise.
	(seq_rtl_expr): Remove.
	* tree.h (free_temps_for_rtl_expr): Don't declare.
	(start_sequence_for_rtl_expr): Likewise.
	* rtl.h (preserve_rtl_expr_result): Likewise.
	* emit-rtl.c (start_sequence): Don't set sequence_rtl_expr.
	(start_sequence_for_rtl_expr): Remove.
	(push_topmost_sequence): Don't save sequence_rtl_expr.
	(pop_topmost_sequence): Remove comment about not restoring it.
	(end_sequence): Don't set seq_rtl_expr.
	(init_emit): Don't initialize it.
	(mark_sequence_stack): Don't mark it.
	(mark_emit_status): Likewise.
	* except.c (protect_with_terminate): Use
	start_sequence_for_rtl_expr, not start_sequence.
	* expr.c (expand_expr, case RTL_EXPR): Don't call
	preserve_rtl_expr_result or free_temps_for_rtl_expr.
	(assign_stack_temp_for_type): Don't set rtl_expr.
	(preserve_rtl_expr_result): Remove.
	(free_temps_for_rtl_expr): Likewise.
	(pop_temp_slots): Likewise.
	(mark_temp_slot): Don't mark the rtl_expr.
	* stmt.c (expand_start_stmt_expr): Use start_sequence, not
	start_sequence_for_rtl_expr.

From-SVN: r32333
2000-03-05 01:57:10 +00:00
Zack Weinberg 49e6c08e21 mkdeps.c, mkdeps.h: New files.
* mkdeps.c, mkdeps.h: New files.
	* po/POTFILES.in: Add them.
	* Makefile.in (LIBCPP_OBJS): Add mkdeps.o.
	(cpplib.o, cppinit.o): Depend on mkdeps.h.
	(mkdeps.o): New target.

	* cppfiles.c: Delete deps_output.
	* cppinit.c: Include mkdeps.h.  Delete known_suffixes,
	OBJECT_SUFFIX, and base_name.
	(cpp_cleanup): Use deps_free.  Free ihash->name when clearing
	the include hash.
	(initialize_dependency_output): Use deps_init,
	deps_add_target, deps_calc_target, and deps_add_dep.  Remove
	all the unnecessary string bashing.
	(cpp_finish): Use deps_write.  Remove an unnecessary nesting
	level.
	* cpplib.c (do_include): Use deps_add_dep.
	* cpplib.h (struct cpp_reader): Replace deps_buffer,
	deps_allocated_size, deps_size, deps_column members with
	single pointer to a struct deps.  Delete prototype of
	deps_output.

From-SVN: r32329
2000-03-04 19:42:04 +00:00
Zack Weinberg c649121029 * cppinit.c: Fix thinko in previous patch.
From-SVN: r32327
2000-03-04 17:53:04 +00:00
Richard Kenner 72c602fc01 machmode.h (mode_for_size, [...]): SIZE now signed.
* machmode.h (mode_for_size, smallest_mode_for_size): SIZE now signed.
	* stor-layout.c (mode_for_size, smallest_mode_for_size): Likewise.
	(mode_for_size_tree): New function.
	(layout_decl, layout_type): Call it and clean up BLKmode checks.
	* tree.h (mode_for_size_tree): New declaration.

From-SVN: r32326
2000-03-04 11:40:05 -05:00
Richard Kenner 32070bf2d8 * toplev.c (debug_ignore_block): Mark arg BLOCK as possibly unused.
From-SVN: r32325
2000-03-04 11:24:03 -05:00