Commit Graph

37671 Commits

Author SHA1 Message Date
Joseph Myers
91d231cb91 Table-driven attributes.
* c-decl.c, config/alpha/alpha.c, config/arc/arc.c,
	config/arm/arm.c, config/arm/pe.c, config/avr/avr.c,
	config/avr/avr.h, config/d30v/d30v.h, config/fr30/fr30.h,
	config/h8300/h8300.c, config/i386/cygwin.h, config/i386/winnt.c,
	config/m32r/m32r.c, config/mcore/mcore.c, config/sh/sh.c,
	config/stormy16/stormy16.h, config/v850/v850.c, doc/c-tree.texi,
	doc/tm.texi, ggc-common.c, integrate.c, print-tree.c, tree.c,
	tree.h: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES.
	* tree.h (struct tree_decl): Change machine_attributes to
	attributes.
	* doc/c-tree.texi: Document that all attributes are now attached
	to decls and types.
	* c-common.c (add_attribute, attrtab, attrtab_idx,
	default_valid_lang_attribute, valid_lang_attribute): Remove.
	(attribute_tables, attributes_initialized,
	c_common_attribute_table, default_lang_attribute_table): New
	variables.
	(handle_packed_attribute, handle_nocommon_attribute,
	handle_common_attribute, handle_noreturn_attribute,
	handle_unused_attribute, handle_const_attribute,
	handle_transparent_union_attribute, handle_constructor_attribute,
	handle_destructor_attribute, handle_mode_attribute,
	handle_section_attribute, handle_aligned_attribute,
	handle_weak_attribute, handle_alias_attribute,
	handle_no_instrument_function_attribute,
	handle_no_check_memory_usage_attribute, handle_malloc_attribute,
	handle_no_limit_stack_attribute, handle_pure_attribute): New
	functions.
	(init_attributes, decl_attributes): Rewrite to implement
	table-driven attributes.
	* c-common.h (enum attribute_flags): Move to tree.h.
	* c-format.c (decl_handle_format_attribute,
	decl_handle_format_arg_attribute): Rename to
	handle_format_attribute and handle_format_arg_attribute.  Update
	for table-driven attributes.
	* c-common.h (decl_handle_format_attribute,
	decl_handle_format_arg_attribute): Remove prototypes.
	(handle_format_attribute, handle_format_arg_attribute): Add
	prototypes.
	* c-decl.c (grokdeclarator): Handle attributes nested inside
	declarators.
	* c-parse.in (setattrs, maybe_setattrs): Remove.
	(maybe_type_quals_setattrs): Rename to maybe_type_quals_attrs.
	Update to handle nested attributes properly.
	(maybe_resetattrs, after_type_declarator,
	parm_declarator_nostarttypename, notype_declarator, absdcl1_noea,
	absdcl1_ea, direct_absdcl1): Update to handle nested attributes
	properly.
	(make_pointer_declarator): Update to handle nested attributes
	properly.
	* doc/extend.texi: Update documentation of limits of attributes
	syntax.  Warn about problems with attribute semantics in C++.
	* target.h (struct target): Remove valid_decl_attribute and
	valid_type_attribute.  Add attribute_table and
	function_attribute_inlinable_p.
	* target-def.h (TARGET_VALID_DECL_ATTRIBUTE,
	TARGET_VALID_TYPE_ATTRIBUTE): Remove.
	(TARGET_ATTRIBUTE_TABLE, TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P):
	Add.
	(TARGET_INITIALIZER): Update.
	* integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): Remove default
	definition.
	(function_attribute_inlinable_p): New function.  Check for the
	presence of any machine attributes before using
	targetm.function_attribute_inlinable_p.
	(function_cannot_inline_p): Update.
	* Makefile.in (integrate.o): Update dependencies.
	* doc/tm.texi: Update documentation of target attributes and
	example definition of TARGET_VALID_TYPE_ATTRIBUTE.
	* tree.c (default_valid_attribute_p, valid_machine_attribute):
	Remove.
	(default_target_attribute_table,
	default_function_attribute_inlinable_p): New.
	(lookup_attribute): Update comment to clarify handling of multiple
	attributes with the same name.
	(merge_attributes, attribute_list_contained): Allow multiple
	attributes with the same name but different arguments to appear in
	the same attribute list.
	* tree.h (default_valid_attribute_p): Remove prototype.
	(struct attribute_spec): New.
	(default_target_attribute_table): Declare.
	(enum attribute_flags): Move from c-common.h.  Add
	ATTR_FLAG_TYPE_IN_PLACE.
	(default_function_attribute_inlinable_p): Declare.
	* config/alpha/alpha.c (vms_valid_decl_attribute_p): Remove.
	(TARGET_VALID_DECL_ATTRIBUTE): Don't define.
	(TARGET_ATTRIBUTE_TABLE): Define.
	(vms_attribute_table): New.
	* config/arc/arc.c (arc_valid_decl_attribute): Remove.
	(TARGET_VALID_DECL_ATTRIBUTE): Don't define.
	(TARGET_ATTRIBUTE_TABLE): Define.
	(arc_attribute_table, arc_handle_interrupt_attribute): New.
	* config/arm/arm.c (arm_valid_type_attribute_p,
	arm_valid_decl_attribute_p, arm_pe_valid_decl_attribute_p):
	Remove.
	(TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't
	define.
	(TARGET_ATTRIBUTE_TABLE): Define.
	(arm_attribute_table, arm_handle_fndecl_attribute,
	arm_handle_isr_attribute): New.
	* config/avr/avr.c (avr_valid_type_attribute,
	avr_valid_decl_attribute): Remove.
	(TARGET_VALID_DECL_ATTRIBUTE, TARGET_VALID_TYPE_ATTRIBUTE): Don't
	define.
	(TARGET_ATTRIBUTE_TABLE): Define.
	(avr_attribute_table, avr_handle_progmem_attribute,
	avr_handle_fndecl_attribute): New.
	* config/c4x/c4x.c (c4x_valid_type_attribute_p): Remove.
	(TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
	(TARGET_ATTRIBUTE_TABLE): Define.
	(c4x_attribute_table, c4x_handle_fntype_attribute): New.
	* config/h8300/h8300.c (h8300_valid_decl_attribute): Remove.
	(TARGET_VALID_DECL_ATTRIBUTE): Don't define.
	(TARGET_ATTRIBUTE_TABLE): Define.
	(h8300_attribute_table, h8300_handle_fndecl_attribute,
	h8300_handle_eightbit_data_attribute,
	h8300_handle_tiny_data_attribute): New.
	* config/i386/i386-protos.h (ix86_valid_type_attribute_p,
	i386_pe_valid_decl_attribute_p, i386_pe_valid_type_attribute_p):
	Remove prototypes.
	(ix86_handle_dll_attribute, ix86_handle_shared_attribute): New
	declarations.
	* config/i386/i386.c (ix86_valid_type_attribute_p: Remove.
	(TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't
	define.
	(TARGET_ATTRIBUTE_TABLE): Define.
	(ix86_attribute_table, ix86_handle_cdecl_attribute,
	ix86_handle_regparm_attribute): New.
	* config/i386/winnt.c (i386_pe_valid_decl_attribute_p,
	i386_pe_valid_type_attribute_p): Remove.
	(ix86_handle_dll_attribute, ix86_handle_shared_attribute): New.
	* config/ia64/ia64.c (ia64_valid_type_attribute): Remove.
	(TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
	(TARGET_ATTRIBUTE_TABLE): Define.
	(ia64_attribute_table): New.
	* config/m32r/m32r.c (m32r_valid_decl_attribute, interrupt_ident1,
	interrupt_ident2, model_ident1, model_ident2): Remove.
	(TARGET_VALID_DECL_ATTRIBUTE): Don't define.
	(TARGET_ATTRIBUTE_TABLE): Define.
	(init_idents): Update.
	(m32r_attribute_table, m32r_handle_model_attribute): New.
	* config/m68hc11/m68hc11.c (m68hc11_valid_type_attribute_p):
	Remove.
	(TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
	(TARGET_ATTRIBUTE_TABLE): Define.
	(m68hc11_attribute_table, m68hc11_handle_fntype_attribute): New.
	* config/mcore/mcore.c (mcore_valid_decl_attribute): Remove.
	(TARGET_VALID_DECL_ATTRIBUTE): Don't define.
	(TARGET_ATTRIBUTE_TABLE): Define.
	(mcore_attribute_table, mcore_handle_naked_attribute): New.
	* config/ns32k/ns32k.c (ns32k_valid_type_attribute_p): Remove.
	(TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
	(TARGET_ATTRIBUTE_TABLE): Define.
	(ns32k_attribute_table, ns32k_handle_fntype_attribute): New.
	* config/rs6000/rs6000.c (rs6000_valid_type_attribute_p): Remove.
	(TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
	(TARGET_ATTRIBUTE_TABLE): Define.
	(rs6000_attribute_table, rs6000_handle_longcall_attribute): New.
	* config/sh/sh.c (sh_valid_decl_attribute): Remove.
	(TARGET_VALID_DECL_ATTRIBUTE): Don't define.
	(TARGET_ATTRIBUTE_TABLE): Define.
	(sh_attribute_table, sh_handle_interrupt_handler_attribute,
	sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
	New.
	* config/stormy16/stormy16.c (stormy16_valid_type_attribute):
	Remove.
	(TARGET_VALID_TYPE_ATTRIBUTE): Don't define
	(TARGET_ATTRIBUTE_TABLE): Define.
	(stormy16_attribute_table, stormy16_handle_interrupt_attribute):
	New.
	* config/v850/v850.c (v850_valid_decl_attribute): Remove.
	(TARGET_VALID_DECL_ATTRIBUTE): Don't define.
	(TARGET_ATTRIBUTE_TABLE): Define.
	(v850_attribute_table, v850_handle_interrupt_attribute,
	v850_handle_data_area_attribute): New.
	* config/v850/v850-c.c (mark_current_function_as_interrupt):
	Return void.  Call decl_attributes instead of
	valid_machine_attribute.

cp:
	Table-driven attributes.
	* decl.c: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES.
	* decl2.c (cplus_decl_attributes): Only take one attributes
	parameter.
	* cp-tree.c (cplus_decl_attributes): Update prototype.
	* class.c (finish_struct), decl.c (start_decl, start_function),
	decl2.c (grokfield), friend.c (do_friend), parse.y
	(parse_bitfield): Update calls to cplus_decl_attributes.
	* decl.c (grokdeclarator): Take a pointer to a single ordinary
	attribute list.
	* decl.h (grokdeclarator): Update prototype.
	* decl2.c (grokfield): Take a single ordinary attribute list.
	* friend.c (do_friend): Likewise.
	* decl.c (shadow_tag, groktypename, start_decl,
	start_handler_parms, grokdeclarator, grokparms, start_function,
	start_method), decl2.c (grokfield, grokbitfield, grokoptypename),
	parse.y (parse_field, parse_bitfield, component_decl_1), pt.c
	(process_template_parm, do_decl_instantiation): Pass single
	ordinary attribute lists around.
	* decl.c (grokdeclarator): Correct handling of nested attributes.
	Revert the patch
	1998-10-18  Jason Merrill  <jason@yorick.cygnus.com>
		* decl.c (grokdeclarator): Embedded attrs bind to the right,
		not the left.
	.
	* cp-tree.h (cp_valid_lang_attribute): Remove declaration
	(cp_attribute_table): Declare.
	* decl.c (valid_lang_attribute): Don't define.
	(lang_attribute_table): Define.
	(init_decl_processing): Initialize lang_attribute_table instead of
	valid_lang_attribute.
	* tree.c (cp_valid_lang_attribute): Remove.
	(handle_java_interface_attribute, handle_com_interface_attribute,
	handle_init_priority_attribute): New functions.
	(cp_attribute_table): New array.
	* decl2.c (import_export_class): Don't use
	targetm.valid_type_attribute.

testsuite:
	Table-driven attributes.
	* g++.dg/ext/attrib1.C: New test.

From-SVN: r45718
2001-09-21 02:27:06 +01:00
J"orn Rennecke
3007d592bf sh-protos.h (sh_pr_n_sets): Declare.
* sh-protos.h (sh_pr_n_sets): Declare.
	* sh.c (calc_live_regs): If the initial value for PR has been copied,
	look at the copy to determine if PR needs to be saved.
	sh_pr_n_sets: New function.
	* sh.h (RETURN_ADDR_RTX): Use get_hard_reg_initial_val.
	(ALLOCATE_INITIAL_VALUE): Define.

	* sh.c (initial_elimination_offset):
	Fix RETURN_ADDRESS_POINTER_REGNUM case.

From-SVN: r45717
2001-09-21 01:53:28 +01:00
J"orn Rennecke
385b6e2d89 integrate.c (allocate_initial_values): New function.
* integrate.c (allocate_initial_values): New function.
	* integrate.h (allocate_initial_values): Declare.
	* local-alloc.c (local_alloc): Move call to allocate_reg_info from
	here...
	* reload1.c (reload): And initialization of reg_equiv_memory_loc
	from here...
	* toplev.c (rest_of_compilation): To here.
	Call allocate_initial_values.
	* tm.texi: add description for ALLOCATE_INITIAL_VALUE.

From-SVN: r45716
2001-09-21 01:45:30 +01:00
Richard Kenner
a4b5b2ae8d * ggc-page.c (ggc_marked_p): Properly convert return to boolean.
From-SVN: r45715
2001-09-20 20:33:01 -04:00
DJ Delorie
e7b6a0ee34 c-typeck.c (really_start_incremental_init): Discriminate between zero-length arrays and flexible arrays.
* c-typeck.c (really_start_incremental_init): Discriminate
between zero-length arrays and flexible arrays.
(push_init_level): Detect zero-length arrays and handle them
like fixed-sized arrays.
* expr.c (store_constructor): Handle zero-length arrays and
flexible arrays correctly.
* doc/extend.texi: Update zero-length array notes.

* gcc.dg/20000926-1.c: Update expected warning messages.
* gcc.dg/array-2.c: Likewise, and test for warnings too.
* gcc.dg/array-4.c: Likewise, and don't verify the zero-length
array.

From-SVN: r45714
2001-09-20 20:27:59 -04:00
Jim Wilson
f5aee6316d re PR c/3917 (IA-64 assembler output shows erroneous cycle counting)
Fix for PR 3917.
	* config/ia64/ia64.c (itanium_split_issue): Allow max 2 FP per cycle.
	(insn_matches_slot): Handle TYPE_L and TYPE_X slots when checking
	for issue port conflicts.
	(cycle_end_fill_slots): TYPE_L instructions take two slots.

From-SVN: r45713
2001-09-20 17:00:03 -07:00
Andrew MacLeod
91dc6f6e47 990208-1.x: New.
2001-09-20  Andrew MacLeod  <amacleod@redhat.com>

	* testsuite/gcc.c-torture/execute/990208-1.x: New. XFAIL at -O3
	on ia64.

From-SVN: r45712
2001-09-20 18:06:39 +00:00
Richard Kenner
4c160717ca fold-const.c (hashtab.h): Include.
* fold-const.c (hashtab.h): Include.
	(int_const_binop): Remove FORSIZE arg and compute from type; all
	callers changed.
	Call size_int_type_wide for all single-word constants.
	(size_htab_hash, size_htab_eq): New functions.
	(size_int_type_wide): Rework to use hash table.
	* ggc-common.c (hashtab.h): Include.
	(struct d_htab_root): New struct.
	(d_htab_roots): New variable.
	(ggc_add_deletable_htab, ggc_htab_delete): New functions
	(ggc_mark_roots): Handle deletable htabs.
	* ggc-page.c (ggc_marked_p): New function.
	* ggc-simple.c (ggc_marked_p): Likewise.
	* ggc.h: Reformatting throughout.
	(ggc_marked_p, ggc_add_deletable_htab): New declarations.
	* tree.c (init_obstacks): Make type_hash_table a deletable root.
	(type_hash_add): Allocate struct type_hash from GC memory.
	(mark_hash_entry, mark_type_hash): Deleted.
	(type_hash_marked_p, type_hash_mark): New functions.
	* Makefile.in (ggc-common.o, fold-const.o): Include hashtab.h.

From-SVN: r45710
2001-09-20 11:12:54 -04:00
J"orn Rennecke
c762ab6ebb sh.c (shiftcosts): Don't use shiftcosts array for modes wider than SImode.
* sh.c (shiftcosts): Don't use shiftcosts array for modes wider
	than SImode.

From-SVN: r45709
2001-09-20 15:25:11 +01:00
Richard Kenner
ed1a150e05 stor-layout.c (layout_type, [...]): Kludge to disable array-too-large test for signed sizetype.
* stor-layout.c (layout_type, case ARRAY_TYPE): Kludge to disable
	array-too-large test for signed sizetype.

From-SVN: r45707
2001-09-20 08:56:59 -04:00
Jan Hubicka
6eb791fc97 i386.md (indirect_jump): Allow Pmode operand.
* i386.md (indirect_jump): Allow Pmode operand.
	(tablejump): LIkewise; perform expansion to 64bit mode.
	* i386.c (symbolic_operand): Allow 64bit PIC references.
	(pic_symbolic_operand): Likewise.
	(ix86_find_base_term): Strip the 64bit PIC references.
	(legitimate_pic_address_disp_p): Handle 64bit PIC.
	(legitimize_pic_address): Likewise.
	(i386_simplify_dwarf_addr): Strip down the 64bit PIC references.
	* i386.h (CASE_VECTOR_MODE): Set to SImode for 64bit PIC compilation.

From-SVN: r45705
2001-09-20 10:21:40 +00:00
Benjamin Kosnik
5b66fcf9a9 [multiple changes]
2001-09-20  Scott Johnston <scott@accom.com>
	    Peter Schmid <schmid@snake.iap.physik.tu-darmstadt.de>

	* include/backward/alloc.h: Conditionally define malloc_alloc
	* testsuite/backward/header_deque_h.cc: New file.

2001-09-20  Sylvain Pion <Sylvain.Pion@sophia.inria.fr>

	* libstdc++-v3/include/bits/locale_facets.tcc (money_put::do_put):
        change variable name so that it works with -fno-for-scope.

From-SVN: r45704
2001-09-20 09:48:24 +00:00
Benjamin Kosnik
9a92330f24 numpunct_members_char.cc (test01): Remove redundant sanity checks.
2001-09-20  Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/22_locale/numpunct_members_char.cc (test01): Remove
	redundant sanity checks.
	* testsuite/22_locale/money_put_members_wchar_t.cc (test01): Same.
	(test02): Same.
	* testsuite/22_locale/money_put_members_char.cc (test01): Same.
	(test02): Same.
	* testsuite/22_locale/moneypunct_members_wchar_t.cc (test01): Same.
	* testsuite/22_locale/moneypunct_members_char.cc (test01): Same.
	* testsuite/22_locale/money_get_members_wchar_t.cc (test01): Same.
	(test02): Same.
	* testsuite/22_locale/money_get_members_char.cc (test01): Same.
	(test02): Same.

From-SVN: r45703
2001-09-20 09:07:37 +00:00
Benjamin Kosnik
e08138aae3 Implement std::time_put.
2001-09-19  Benjamin Kosnik  <bkoz@redhat.com>

	Implement std::time_put.
	* include/bits/locale_facets.h: Include time_members.h.
	(__timepunct): New.
	(time_put): Implement.
	* include/bits/locale_facets.tcc (do_put): Put generic versions here.
	* include/bits/localefwd.h: Bump number of facets.
	* config/locale/time_members_generic.h: New file.
	* config/locale/time_members_gnu.h: New file.
	* config/locale/c_locale_generic.h: Include clocale.
	* src/locale-inst.cc: Add use_facet instantiations for __timepunct.
	* src/locale.cc: Add __timepunct initializations.
	* src/localename.cc (locale::_Impl::_Impl(string, size_t)): Same.
	* include/Makefile.am (stamp-target): Add time_members.h.
	* include/Makefile.in: Regenerate.
	* acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): Add CTIME_H.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* testsuite/22_locale/time_put.cc: New file.
	* testsuite/22_locale/time_put_members_char.cc: New file.

	* docs/html/22_locale/locale.html: Add note.

From-SVN: r45702
2001-09-20 08:30:01 +00:00
GCC Administrator
10bd1d78b4 Daily bump.
From-SVN: r45701
2001-09-20 07:16:41 +00:00
Alan Modra
40501e5f72 revert: rs6000.c (logical_operand): CONST_INTs are already sign-extended.
2001-09-19  Alan Modra  <amodra@bigpond.net.au>
            David Edelsohn  <edelsohn@gnu.org>

        Revert:
        * config/rs6000/rs6000.c (logical_operand): CONST_INTs are
        already sign-extended.

        * config/rs6000/aix.h (INIT_TARGET_OPTABS): Define TFmode handlers.
        * config/rs6000/rs6000.c (logical_operand): Streamline comparison
        with HOST_WIDE_INT.
        (rs6000_emit_set_long_const): Avoid unnecessary shift.
        (output_profile_hook): Declare label_name const.
        * config/rs6000/rs6000.md (boolcsi3, boolcdi3): Change predicates
        to match constraints.

Co-Authored-By: David Edelsohn <edelsohn@gnu.org>

From-SVN: r45699
2001-09-19 22:35:00 -04:00
Stan Shebs
e3aafbad87 alias.c: Fix typos in comments.
* alias.c: Fix typos in comments.
        * sched-rgn.c (init_ready_list): Ditto.
        * unwind-dw2.c (uw_frame_state_for): Ditto.
        * unwind-dw2-fde.c (_Unwind_Find_FDE): Ditto.
        * unwind.inc (_Unwind_RaiseException_Phase2): Ditto.
        * config/rs6000/rs6000.c (rs6000_adjust_priority): Ditto.

From-SVN: r45698
2001-09-19 23:58:10 +00:00
Richard Henderson
3d9339a9ca cfg.c (force_nonfallthru_and_redirect): Handle redirecting to the exit block.
* cfg.c (force_nonfallthru_and_redirect): Handle redirecting
        to the exit block.
        * Makefile.in (cfg.o): Depend on TM_P_H.

From-SVN: r45696
2001-09-19 12:29:10 -07:00
Richard Henderson
e2c9fb9bbc alpha.c (local_symbol_p): Split out from ...
* config/alpha/alpha.c (local_symbol_p): Split out from ...
	(local_symbolic_operand): ... here.
	(small_symbolic_operand): Check mode.
	(global_symbolic_operand): New.
	(input_operand): Reject symbolics if explicit relocs.
	(call_operand): Tidy.
	(alpha_legitimize_address): Use movdi_er_high_g.
	(alpha_expand_mov): Likewise.
	* config/alpha/alpha-protos.h: Update.
	* config/alpha/alpha.h (PREDICATE_CODES): Update.
	* config/alpha/alpha.md (UNSPEC_LITERAL, UNSPEC_LITUSE): New.
	(UNSPEC_LDGP2, UNSPECV_PLDGP2): New.
	(UNSPECV_LDGP2): Remove.
	(all call patterns): Use 's' not 'i' for symbolic constraint.
	(call_osf call_value_osf): Use call_operand.
	(all osf call patterns): Use $gp.  New peepholes for explicit relocs.
	(movdi_er_nofix, movdi_er_fix): Remove symbolic alternative.
	(prologue_ldgp_1_er): Remove.
	(ldgp_er_1, ldgp_er_2, prologue_ldgp_er_2): New.
	(builtin_setjmp_receiver_er patterns): Use them.
	(exception_receiver_er): Likewise.

From-SVN: r45694
2001-09-19 11:55:22 -07:00
Richard Henderson
33593de731 recog.c (peephole2_optimize): Likewise.
* recog.c (peephole2_optimize): Likewise.  Handle EH_REGION;
        copy over CALL_INSN_FUNCTION_USAGE.

From-SVN: r45693
2001-09-19 11:32:21 -07:00
Anthony Green
bb7fd9624b Fix null pointer bug.
From-SVN: r45692
2001-09-19 18:28:59 +00:00
Richard Henderson
216183ce28 emit-rtl.c (try_split): Copy NORETURN, SETJMP, ALWAYS_RETURN and NON_LOCAL_GOTO notes.
* emit-rtl.c (try_split): Copy NORETURN, SETJMP, ALWAYS_RETURN
        and NON_LOCAL_GOTO notes.

From-SVN: r45691
2001-09-19 11:27:49 -07:00
Richard Henderson
f068df3fe6 * cfgbuild.c (find_sub_basic_blocks): Handle insns that can throw.
From-SVN: r45690
2001-09-19 11:21:54 -07:00
GCC Administrator
e8f9246734 Daily bump.
From-SVN: r45688
2001-09-19 07:16:16 +00:00
Ben Elliston
1dc4a75000 configure.in (sparc-sun-solaris2*): Don't use /usr/bin/which on Solaris when testing for the /usr/ucb/cc compiler...
2001-09-19  Ben Elliston  <bje@redhat.com>

	* configure.in (sparc-sun-solaris2*): Don't use /usr/bin/which on
	Solaris when testing for the /usr/ucb/cc compiler; it has incorrect
	semantics.  Use the shell built-in "type" command instead.

From-SVN: r45687
2001-09-19 16:07:00 +10:00
Catherine Moore
784d7cce85 config/stormy16/stormy16.h (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
From-SVN: r45686
2001-09-18 18:00:37 -04:00
Ulrich Weigand
70eeb10b99 config.gcc (s390-*-linux-*, [...]): Switch to new-style tm_file specification.
* config.gcc (s390-*-linux-*, s390x-*-linux*): Switch to
new-style tm_file specification.  Specify correct tm_p_file,
md_file, and out_file for s390x.

* config/s390/linux.h, linux64.h:  Don't include other target
macro header files.  Now handled via tm_file.

* config/s390/linux.h, s390.h:  (IEEE_FLOAT, TARGET_IEEE_FLOAT,
TARGET_IBM_FLOAT): Move from linux.h to s390.h to ensure they
are defined before use.

From-SVN: r45685
2001-09-18 21:51:53 +00:00
Kaveh R. Ghazi
69ee340e99 libiberty.h (concat, [...]): Improve comments.
* libiberty.h (concat, concat_length, concat_copy, concat_copy2,
	ACONCAT): Improve comments.

From-SVN: r45683
2001-09-18 20:07:31 +00:00
Eric Christopher
518b566fe6 mips.c (mips_asm_file_start): Conditionalize Elf code generation only for Gnu assembler.
Tue Sep 18 09:51:11 2001  Eric Christopher  <ecechristo@redhat.com>

        * config/mips/mips.c (mips_asm_file_start): Conditionalize Elf
        code generation only for Gnu assembler.

From-SVN: r45681
2001-09-18 17:37:48 +00:00
Catherine Moore
8086b53c76 * config/stormy16 (LIB_SPEC): Remove -lnosys.
From-SVN: r45680
2001-09-18 13:02:28 -04:00
Richard Sandiford
4241b63781 * g++.dg/eh/registers1.C: New test case.
From-SVN: r45679
2001-09-18 16:26:41 +00:00
Richard Sandiford
1cbfdb1f9c mips.c (mips_frame_set): New.
* config/mips/mips.c (mips_frame_set): New.
	(mips_emit_frame_related_store): When storing two 32-bit FPRs, use
	a parallel frame-related expression with a set for each register.

From-SVN: r45678
2001-09-18 16:24:32 +00:00
Alan Modra
b9bc4bf6de * objalloc.h (OBJALLOC_ALIGN): Define using offsetof.
From-SVN: r45677
2001-09-18 23:09:40 +09:30
Philip Blundell
d71ebc326b lib1funcs.asm (L_dvmd_lnx): Don't rely on kernel header files.
2001-09-18  Philip Blundell  <philb@gnu.org>

	* config/arm/lib1funcs.asm (L_dvmd_lnx): Don't rely on kernel
	header files.

From-SVN: r45674
2001-09-18 10:02:37 +00:00
GCC Administrator
a45ea23b3d Daily bump.
From-SVN: r45672
2001-09-18 07:16:10 +00:00
Andreas Jaeger
e64c46ce50 parse.y: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
* parse.y: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
	* jv-scan.c: Likewise.

From-SVN: r45671
2001-09-18 07:22:40 +02:00
Dale Johannesen
5dead3e5cd rs6000.h (FIXED_REGISTERS): Use FIXED_R2.
2001-09-17  Dale Johannesen  <dalej@apple.com>

        * config/rs6000/rs6000.h (FIXED_REGISTERS): Use FIXED_R2.
        * config/rs6000/aix.h (FIXED_R2): Define.
        * config/rs6000/darwin.h (FIXED_R2): Define.
        * config/rs6000/sysv4.h (FIXED_R2): Define.

From-SVN: r45669
2001-09-17 23:24:52 +00:00
Phil Edwards
5d5e5e4e42 configopts.html: HTML to XHTML change.
2001-09-17  Phil Edwards  <pme@gcc.gnu.org>

	* docs/html/configopts.html:  HTML to XHTML change.  Lowercase tags.
	* docs/html/documentation.html:  Likewise.
	* docs/html/explanations.html:  Likewise.
	* docs/html/install.html:  Likewise.
	* docs/html/17_intro/howto.html:  Likewise.
	* docs/html/18_support/howto.html:  Likewise.
	* docs/html/19_diagnostics/howto.html:  Likewise.
	* docs/html/20_util/howto.html:  Likewise.
	* docs/html/21_strings/howto.html:  Likewise.
	* docs/html/22_locale/codecvt.html:  Likewise.
	* docs/html/22_locale/ctype.html:  Likewise.
	* docs/html/22_locale/howto.html:  Likewise.
	* docs/html/22_locale/locale.html:  Likewise.
	* docs/html/22_locale/messages.html:  Likewise.
	* docs/html/23_containers/howto.html:  Likewise.
	* docs/html/24_iterators/howto.html:  Likewise.
	* docs/html/25_algorithms/howto.html:  Likewise.
	* docs/html/26_numerics/howto.html:  Likewise.
	* docs/html/27_io/howto.html:  Likewise.
	* docs/html/ext/howto.html:  Likewise.
	* docs/html/faq/index.html:  Likewise.
	* docs/html/faq/index.txt:  Regenerated.

From-SVN: r45668
2001-09-17 23:24:40 +00:00
Jeff Sturm
5c701bb10c except.c (dw2_build_landing_pads): New local clobbers_hard_regs.
* except.c (dw2_build_landing_pads): New local
	clobbers_hard_regs.  Emit an ASM_INPUT as a scheduling
	barrier after clobbers.  Fixes c++/4012.

From-SVN: r45667
2001-09-17 23:16:28 +00:00
Kaveh R. Ghazi
c793eea7ab libiberty.h (concat_length, [...]): New.
include:
	* libiberty.h (concat_length, concat_copy, concat_copy2,
	libiberty_concat_ptr, ACONCAT): New.

libiberty:
	* concat.c (vconcat_length, vconcat_copy, concat_length,
	concat_copy, concat_copy2): New functions.
	(concat): Use vconcat_length/vconcat_copy.

gcc:
	* gcc.c (find_file): Use ACONCAT in lieu of alloca/strcpy/strcat.

From-SVN: r45664
2001-09-17 22:15:10 +00:00
Joseph Myers
63fb6fc7f8 dostage2, [...]: Remove obsolete files.
* dostage2, dostage3, listing, make-l2.com, makefile.vms,
	patch-apollo-includes, vmsconfig.com: Remove obsolete files.

From-SVN: r45661
2001-09-17 21:40:28 +01:00
Kaveh R. Ghazi
c1d49704bc libiberty.h (ASTRDUP): New macro.
include:
	* libiberty.h (ASTRDUP): New macro.
	libiberty_optr, libiberty_nptr, libiberty_len): Declare.

libiberty:
	* alloca.c (libiberty_optr, libiberty_nptr, libiberty_len):
	Define.

gcc:
	* c-aux-info.c (affix_data_type): Use ASTRDUP in lieu of
	alloca/strcpy.

From-SVN: r45657
2001-09-17 18:48:45 +00:00
Neil Booth
14baae01f6 cpphash.h (_cpp_lex_direct): New.
* cpphash.h (_cpp_lex_direct): New.
	* cpplex.c (_cpp_lex_token): Update.
	(lex_token): Rename _cpp_lex_direct; lex into pfile->cur_token,
	and increment that pointer.
	* cppmacro.c (alloc_expansion_token): New.
	(lex_expansion_token): Lex macro expansion directly into
	macro storage.

From-SVN: r45656
2001-09-17 18:26:12 +00:00
Tom Tromey
7a91449ca1 re PR java/4189 (gcj generates bytecode for switch stmt that doesn't verify)
* jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Call
	NOTE_PUSH for single-case push.  Fixes PR java/4189.

From-SVN: r45655
2001-09-17 17:03:13 +00:00
Richard Henderson
17920efbf0 * gcc.dg/array-5.c: Fix VLA decomposition test.
From-SVN: r45654
2001-09-17 09:38:59 -07:00
GCC Administrator
28d86bb96b Daily bump.
From-SVN: r45651
2001-09-17 07:16:15 +00:00
Andreas Jaeger
63dc70a159 * jni.cc (array_from_valist): Use promoted types for va_arg.
From-SVN: r45650
2001-09-17 07:08:10 +02:00
Anthony Green
214bcb99a1 Add support for iso8859_1.
From-SVN: r45649
2001-09-17 02:28:53 +00:00
Brad Lucier
478c61b7e1 * Makefile.in: Make rtl-error.o depend on $(CONFIG_H).
From-SVN: r45648
2001-09-16 22:13:44 -04:00
Jan Hubicka
3c030e88e7 basic-block.h (free_bb_for_insn): Declare.
* basic-block.h (free_bb_for_insn): Declare.
	* bb-reorder.c (label_for_bb): Use block_label.
	(emit_jump_to_block_after): Remove.
	(insert_intra_1): Do not update block_for_insn.
	(insert_inter_bb_scope_notes): Likewise; update bb->end
	* cfg.c (free_bb_for_insn): New.
	(try_rediret_by_replacing_jump): Avoid set_block_for_new_insns call.
	(force_nonfallthru_and_redirect): Likewise; do not update BB boundaries.
	(commit_one_edge_insertion): Likewise.
	(commit_one_edge_insertion): Do not update BB boundary.
	(commit_edge_insertions): Do not call compute_bb_for_insn.
	* cfgbuild.c (find_basic_blocks): Do not free basic_block_for_insn.
	* cfgcleanup.c (merge_blocks_move_predecessor): Use reorder_insns_nobb.
	(merge_blocks_move_successor_nojumps): Likewise.
	(try_crossjump_to_edge): Do not update block_for_insn.
	* combine.c (combine_instructions): Remove compute_bb_for_insn call.
	* df.c (df_pattern_emit_later): Do not update BB boundary.
	(df_jump_pattern_emit_after): Likewise.
	(df_insn_move_before): Use emit_insn_before.
	* emit-rtl.c (try_split): Emit after trial to get bb boundary updated
	 properly.
	(add_insn_after, add_insn_before, emit_insns_after): Update BB
	boundaries and basic_block_for_insn.
	(reorder_insns_nobb): Rename from reorder_insns.
	(reorder_insns): New.
	(emit_block_insn_before, emit_block_insn_after): Kill.
	* flow.c (check_function_return_warnings): Do not call
	compute_bb_for_insn; Do not free basic_block_for_insn.
	(attempt_auto_inc): Do not update basic_block_for_insn.
	* function.c (emit_return_into_block): Likewise;
	do not update BB boundaries.
	* gcse.c (handle_avail_expr): Do not update basic_block_for_insn.
	(insert_insn_end_bb): Use emit_insn_before; Likewise.
	(pre_insert_copy_insn): Likewise.
	(update_ld_motion_notes): Likewise.
	(insert_insn_start_bb): Likewise.
	(replace_store_insn): Likewise.
	* ifcvt.c (noce_process_if_block): Likewise.
	(if_convert): Do not call compute_bb_for_insn.
	* lcm.c (optimize_mode_switching): Do not update BB boundaries.
	Use emit_insn_before and emit_insn_after.
	* recog.c (split_all_insns): Do not update BB boundaries;
	Do not call compute_bb_for_insn.
	(peephole2_optimize): Do not update BB boundaries.
	* reg-stack.c (emit_pop_insn): Use emit_insn_after and
	emit_insn_before.
	(emit_swap_insn): Likewise.
	(convert_regs_1): Likewise.
	* reload1.c (reload): Call compute_bb_for_insn.
	* rtl.h (reorder_insns_nobb): Declare.
	* ssa.c (rename_equivalent_regs): Use emit_insn_before.
	* toplev.c (rest_of_compilation): Call free_bb_for_insn
	at places CFG is invalidated; do not call compute_bb_for_insn.

	* cfg.c (expunge_block): Invalidate BB structure.

	* (merge_blocks_nomove): Update properly BLOCK_FOR_INSN
	array.

	* cfg.c (verify_flow_info): Verify the basic_block_for_insn array.

From-SVN: r45647
2001-09-16 20:21:30 +00:00