1. 21 Sep, 2001 23 commits
    • rtl.h (LCT_RETURNS_TWICE): New. · 9defc9b7
              * rtl.h (LCT_RETURNS_TWICE): New.
              * calls.c (emit_call_1): Set current_function_calls_setjmp for
              ECF_RETURNS_TWICE.
              (emit_library_call_value_1): Map LCT_RETURNS_TWICE
              to ECF_RETURNS_TWICE.
              * except.c (sjlj_emit_function_enter): Use LCT_RETURNS_TWICE for
              call to setjmp.
      
              * unwind-sjlj.c: Invent the setjmp.h declarations if inhibit_libc.
      
              * config/stormy16/stormy16.h (DONT_USE_BUILTIN_SETJMP): New.
              (JMP_BUF_SIZE): New.
      
      From-SVN: r45736
      Richard Henderson committed
    • stormy16.h (REG_CLASS_FROM_LETTER): Map 'd' to R8_REGS. · 1853547e
              * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Map 'd'
              to R8_REGS.
      
      From-SVN: r45735
      Richard Henderson committed
    • jvm.h (_Jv_VTable): Handle function descriptors for ia64... · f5ddf154
              * include/jvm.h (_Jv_VTable): Handle function descriptors for ia64;
              add get_method, set_method, vtable_elt_size, new_vtable.
              (_Jv_ArrayVTable): Derive from _Jv_VTable.
              * resolve.cc (_Jv_PrepareClass): Use new _Jv_VTable methods.
              * interpret.cc (_Jv_InterpMethod::continue1): Likewise.
              * java/lang/natClassLoader.cc (_Jv_NewArrayClass): Likewise.
      
      From-SVN: r45734
      Richard Henderson committed
    • tree.def (FDESC_EXPR): New. · 67231816
      gcc/
              * tree.def (FDESC_EXPR): New.
              * expr.c (expand_expr): Handle it.
              * varasm.c (initializer_constant_valid_p): Likewise.
              (output_constant): Likewise.
              * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): New.
              * config/ia64/ia64.h (TARGET_VTABLE_USES_DESCRIPTORS): New.
              (ASM_OUTPUT_FDESC): New.
              * doc/tm.texi: Document the new macros.
      gcc/cp/
              * class.c (set_vindex): Mind TARGET_VTABLE_USES_DESCRIPTORS.
              (build_vtbl_initializer): Likewise.
              (build_vfn_ref): New.
              * cp-tree.h: Declare it.
              * call.c (build_over_call): Use it.
              * decl2.c (mark_vtable_entries): Mark FDESC_EXPR.
              * typeck.c (get_member_function_from_ptrfunc): Mind descriptors.
      gcc/java/
              * class.c (get_dispatch_table): Handle function descriptors.
              (build_dtable_decl): Likewise.
              * expr.c (build_invokevirtual): Likewise.
      gcc/testsuite/
              * g++.old-deja/g++.abi/ptrmem.C: Update for ia64 c++ abi.
              * g++.old-deja/g++.abi/vtable2.C: Likewise.
      
      From-SVN: r45733
      Richard Henderson committed
    • parse.h: (WFL_STRIP_BRACKET): Re-written using build_type_name_from_array_name. · 2e3b2d2c
      2001-09-19  Alexandre Petit-Bianco  <apbianco@redhat.com>
      
      	* parse.h: (WFL_STRIP_BRACKET): Re-written using
      	build_type_name_from_array_name.
      	(STRING_STRIP_BRACKETS): New macro.
      	* parse.y (build_type_name_from_array_name): New function.
      	(array_creation_expression:): Accumulate []s instead of [s.
      	(cast_expression:): Accumulate []s instead of [s after cast type
      	name.
      	(build_array_from_name): Local string deleted, use
      	build_type_name_from_array_name.
      	(build_unresolved_array_type): Accumulate []s instead of [s after
      	type name.
      	(register_fields): Fixed comment.
      	(resolve_class): Local name, base deleted, new locals tname and
      	array_dims. Use build_type_name_from_array_name. Use array_dims to
      	build array type.
      	(purify_type_name): Use STRING_STRIP_BRACKETS.
      
      ( http://gcc.gnu.org/ml/gcc-patches/2001-09/msg00779.html )
      
      From-SVN: r45732
      Alexandre Petit-Bianco committed
    • stringpool.c (get_identifier_with_length): New function. · 4bad9e39
      2001-09-19  Alexandre Petit-Bianco  <apbianco@redhat.com>
      
      	* stringpool.c (get_identifier_with_length): New function.
      	* tree.h (get_identifier_with_length): New prototype.
      
      ( http://gcc.gnu.org/ml/gcc-patches/2001-09/msg00779.html )
      
      From-SVN: r45731
      Alexandre Petit-Bianco committed
    • cfgcleanup.c (merge_blocks_move_successor_nojumps): Don't leave ADDR_VEC or… · f62ce55b
      cfgcleanup.c (merge_blocks_move_successor_nojumps): Don't leave ADDR_VEC or ADDR_DIFF_VEC jump insns as part of the basic block...
      
      * cfgcleanup.c (merge_blocks_move_successor_nojumps): Don't leave
      ADDR_VEC or ADDR_DIFF_VEC jump insns as part of the basic block
      once merging is complete.
      
      From-SVN: r45730
      Richard Earnshaw committed
    • Whitespace changes · 2cc222d3
      From-SVN: r45728
      Richard Kenner committed
    • cfgcleanup.c (flow_find_cross_jump): Delete any REG_EQUAL notes that would be… · 7106d491
      cfgcleanup.c (flow_find_cross_jump): Delete any REG_EQUAL notes that would be invalid after a merge.
      
      * cfgcleanup.c (flow_find_cross_jump): Delete any REG_EQUAL notes
      that would be invalid after a merge.
      
      From-SVN: r45727
      Richard Earnshaw committed
    • basic-block.h (flow_delete_insn, [...]): Kill. · 53c17031
      	* basic-block.h (flow_delete_insn, flow_delete_insn_chain): Kill.
      	* cfg.c (delete_insn): Rename from ....; use remove_insn; do not
      	remove some labels.
      	(flow_delete_insn): This one.
      	(delete_insn_chain): Rename from ...; do not care labels.
      	(flow_delete_insn_chain): ... this one.
      	(flow_delete_block): Remove the insns one BB has been expunged.
      	(merge_blocks_nomove): Likewise.
      	(try_redirect_by_replacing_jump): Use delete_insn[_chain]; do not care
      	updating BB boundaries.
      	(tidy_fallthru_edge): Likewise.
      	(commit_one_edge_insertion): Likewise.
      	* cfgbuild.c (find_basic_block): Likewise.
      	(find_basic_blocks_1): Likewise.
      	* cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Likewise.
      	(try_crossjump_to_edge): Likewise.
      	(try_optimize_cfg): Likewise.
      	* cse.c (delete_trivially_dead_insns): Likewise.
      	* df.c (df_insn_delete): Likewise.
      	* doloop.c (doloop_modify): Use delete_related_insns.
      	* emit-rtl.c (try_split): Likewise.
      	(remove_insn): Update BB boundaries.
      	* expect.c (connect_post_landing_pads): Use delete_related_insns.
      	* flow.c (delete_dead_jumptables): Use delete_insn[_chain]; do not care
      	updating BB boundaries.
      	(propagate_block_delete_insn): Likewise.
      	(propagate_block_delete_libcall): Likewise.
      	* function.c (delete_handlers): Use delete_related_insns.
      	(thread_prologue_and_epilogue_insns): Likewise.
      	* gcse.c (delete_null_pointer_checks): Use delete_related_insns.
      	* genpeep.c (gen_peephole): Use delete_related_insns.
      	* ifcvt.c (noce_process_if_block): Use delete_insn; do not care updating
      	BB boundaries.
      	(find_cond_trap): Likewise.
      	* integrate.c (save_for_inline): Use delete_related_insns.
      	(copy_insn_list): Likewise.
      	* jump.c (pruge_linie_number_notes): Likewise.
      	(duplicate_loop_exit_test): Likewise.
      	(delete_computation): Likewise.
      	(delete_related_insn): Rename from ...; use delete_insn
      	(delete_insn): ... this one.
      	(redirect_jump): Use delete_related_insns.
      	* loop.c (scan_loop): Likewise.
      	(move_movables): Likewise.
      	(find_and_verify_loops): Likewise.
      	(check_dbra_loop): Likewise.
      	* recog.c (peephole2_optimize): Likewise.
      	* reg-stack.c (delete_insn_for_stacker): Remove.
      	(move_for_stack_reg): Use delete_insn.
      	* regmove.c (combine_stack_adjustments_for_block): Likewise.
      	* reload1.c (delete_address_reloads): Use delete_related_insns.
      	(fixup_abnormal_edges): Use delete_insn.
      	* recog.c (emit_delay_sequence): Use delete_related_insns.
      	(delete_from-delay_slot): Likewise.
      	(delete_scheduled_jump): likewise.
      	(optimize_skip): Likewise.
      	(try_merge_delay_insns): Likewise.
      	(full_simple_delay_slots): Likewise.
      	(fill_slots_from_thread): Likewise.
      	(relax_delay_slots): Likewise.
      	(make_return_insns): Likewise.
      	(dbr_schedule): Likewise.
      	* rtl.h (delete_insn): Rename to delete_related_insns.
      	(delete_insn, delete_insn_chain): New prototypes.
      	* ssa-ccp (sse_fast_dce):  Remove deleting of DEF, as it is done
      	by df_insn_delete already.
      	* ssa-dce.c (delete_insn_bb): Use delete_insn.
      	* ssa.c (convert_from_ssa): Use delete_related_insns.
      	* unroll.c (unroll_loop): Likewise.
      	(calculate_giv_inc): Likewise.
      	(copy_loop_body): Likewise.
      
      	* i386-protos.h (ix86_libcall_value, ix86_function_value,
      	ix86_function_arg_regno_p, ix86_function_arg_boundary,
      	ix86_return_in_memory, ix86_function_value): Declare.
      	* i386.c (x86_64_int_parameter_registers, x86_64_int_return_registers):
      	new static valurables.
      	(x86_64_reg_class): New enum
      	(x86_64_reg_class_name): New array.
      	(classify_argument, examine_argument, construct_container,
      	 merge_classes): New static functions.
      	(optimization_options): Enable flag_omit_frame_pointer and disable
      	flag_pcc_struct_return on 64bit.
      	(ix86_libcall_value, ix86_function_value,
      	ix86_function_arg_regno_p, ix86_function_arg_boundary,
      	ix86_return_in_memory, ix86_function_value): New global functions.
      	(init_cumulative_args): Refuse regparm on x86_64, set maybe_vaarg.
      	(function_arg_advance): Handle x86_64 passing conventions.
      	(function_arg): Likewise.
      	* i386.h (FUNCTION_ARG_BOUNDARY): New macro.
      	(RETURN_IN_MEMORY): Move offline.
      	(FUNCTION_VALUE, LIBCALL_VALUE): Likewise.
      	(FUNCTION_VALUE_REGNO_P): New macro.
      	(FUNCTION_ARG_REGNO_P): Move offline.
      	(struct ix86_args): Add maybe_vaarg.
      	* next.h (FUNCTION_VALUE_REGNO_P): Delete.
      	* unix.h (FUNCTION_VALUE_REGNO_P): Delete.
      
      From-SVN: r45726
      Jan Hubicka committed
    • s390.md: Changed attributes for scheduling. · f2d3c02a
      2001-09-21  Hartmut Penner  <hpenner@de.ibm.com>
      
              * s390.md: Changed attributes for scheduling.
              * s390.c: (s390_adjust_cost, s390_adjust_priority)
              Changed scheduling
      
      From-SVN: r45725
      Hartmut Penner committed
    • no-threads.cc (_Jv_ThreadStart): Remove names of unused arguments. · 01c62aea
              * no-threads.cc (_Jv_ThreadStart): Remove names of unused arguments.
              * java/lang/mprec.c (lo0bits): Fix paren typo.
      
      From-SVN: r45724
      Richard Henderson committed
    • Daily bump. · 4816067b
      From-SVN: r45722
      GCC Administrator committed
    • Makefile.in (AS_FOR_TARGET, [...]): Don't use double quotes to avoid quotes nesting problems. · 759bfa90
      * Makefile.in (AS_FOR_TARGET, LD_FOR_TARGET,
      DLLTOOL_FOR_TARGET, WINDRES_FOR_TARGET, AR_FOR_TARGET,
      RANLIB_FOR_TARGET, NM_FOR_TARGET): Don't use double quotes to
      avoid quotes nesting problems.
      (NATIVE_CHECK_MODULES): Ditto, just for consistency.
      (DO_X): Export only variables that are set.
      
      From-SVN: r45720
      Alexandre Oliva committed
    • posix-threads.cc (_Jv_ThreadInterrupt): Re-enable interrupt of blocking IO via pthread_kill(). · f449e885
      	* posix-threads.cc (_Jv_ThreadInterrupt): Re-enable interrupt of
      	blocking IO via pthread_kill().
      	* java/io/natFileDescriptorPosix.cc (write (jint)): Check for thread
      	interrupted status flag only if ::write returned an error.
      	(write (jbyteArray, jint, jint): Likewise.
      	(read (jint)): Likewise.
      	(read (jbyteArray, jint, jint): Likewise.
      
      From-SVN: r45719
      Bryce McKinlay committed
    • Table-driven attributes. · 91d231cb
      	* 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
      Joseph Myers committed
    • sh-protos.h (sh_pr_n_sets): Declare. · 3007d592
      	* 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
      J"orn Rennecke committed
    • integrate.c (allocate_initial_values): New function. · 385b6e2d
      	* 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
      J"orn Rennecke committed
    • c-typeck.c (really_start_incremental_init): Discriminate between zero-length… · e7b6a0ee
      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
      DJ Delorie committed
    • re PR c/3917 (IA-64 assembler output shows erroneous cycle counting) · f5aee631
      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
      Jim Wilson committed
  2. 20 Sep, 2001 10 commits
    • 990208-1.x: New. · 91dc6f6e
      
      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
      Andrew MacLeod committed
    • fold-const.c (hashtab.h): Include. · 4c160717
      	* 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
      Richard Kenner committed
    • sh.c (shiftcosts): Don't use shiftcosts array for modes wider than SImode. · c762ab6e
      	* sh.c (shiftcosts): Don't use shiftcosts array for modes wider
      	than SImode.
      
      From-SVN: r45709
      J"orn Rennecke committed
    • stor-layout.c (layout_type, [...]): Kludge to disable array-too-large test for signed sizetype. · ed1a150e
      	* stor-layout.c (layout_type, case ARRAY_TYPE): Kludge to disable
      	array-too-large test for signed sizetype.
      
      From-SVN: r45707
      Richard Kenner committed
    • i386.md (indirect_jump): Allow Pmode operand. · 6eb791fc
      
      	* 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
      Jan Hubicka committed
    • [multiple changes] · 5b66fcf9
      
      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
      Benjamin Kosnik committed
    • numpunct_members_char.cc (test01): Remove redundant sanity checks. · 9a92330f
      
      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
      Benjamin Kosnik committed
    • Implement std::time_put. · e08138aa
      
      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
      Benjamin Kosnik committed
    • Daily bump. · 10bd1d78
      From-SVN: r45701
      GCC Administrator committed
    • revert: rs6000.c (logical_operand): CONST_INTs are already sign-extended. · 40501e5f
      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
      Alan Modra committed
  3. 19 Sep, 2001 7 commits