1. 14 Oct, 2001 1 commit
    • c-pragma.h (cpp_register_pragma_space): Remove. · a5da89c6
      	* c-pragma.h (cpp_register_pragma_space): Remove.
      	* cpplib.h (cpp_register_pragma_space): Remove.
      	* cpplib.c (lookup_pragma_entry, insert_pragma_entry): New.
      	(cpp_register_pragma_space): Remove.
      	(cpp_register_pragma): Simplify using lookup_pragma_entry,
      	add sanity checks.
      	(do_pragma): Similarly.
      	(_cpp_init_internal_pragmas): Don't register namespaces.
      
      	* config/v850/v850.h (REGISTER_TARGET_PRAGMAS):
      	Don't register namespaces.
      	* cp/lex.c (init_cp_pragma): Similarly.
      	* doc/tm.texi: Update.
      
      From-SVN: r46254
      Neil Booth committed
  2. 13 Oct, 2001 3 commits
  3. 12 Oct, 2001 1 commit
  4. 11 Oct, 2001 3 commits
    • typeck2.c (store_init_value): Don't re-digest a bracketed initializer. · 6f32162a
              * typeck2.c (store_init_value): Don't re-digest a bracketed
              initializer.
      
              * class.c (finish_struct_anon): Use TYPE_ANONYMOUS_P instead of
              ANON_AGGR_TYPE_P.
      
      From-SVN: r46202
      Jason Merrill committed
    • rtl.h (REG_VTABLE_REF): New. · 4a8d0c9c
              * rtl.h (REG_VTABLE_REF): New.
              * rtl.c (reg_note_name): Add it.
              * combine.c (distribute_notes): Handle it.
              * final.c (final_scan_insn): Handle it.
              * tree.def (VTABLE_REF): New.
              * expr.c (expand_expr): Handle it.
              * varasm.c (assemble_vtable_entry, assemble_vtable_inherit): New.
              * output.h: Declare them.
      cp/
              * class.c (build_vtable_entry_ref): Create a VTABLE_REF instead
              of an asm statement.
              (build_vtbl_ref_1): Split out from build_vtbl_ref.
              (build_vfn_ref): Use it to handle vtable descriptors before
              calling build_vtable_entry_ref.
              * decl2.c (output_vtable_inherit): Use assemble_vtable_inherit.
      testsuite/
              * g++.old-deja/g++.other/crash18.C: Add -S to options.
      
      From-SVN: r46195
      Richard Henderson committed
    • c-parse.in (asm_operand): Allow named operands. · 84b72302
              * c-parse.in (asm_operand): Allow named operands.
              * genconfig.c (max_recog_operands): Set to 29.
              * local-alloc.c (requires_inout): Skip multiple digits.
              * recog.c (asm_operand_ok): Likewise.
              (preprocess_constraints): Use strtoul for matching constraints.
              (constrain_operands): Likewise.
              * regmove.c (find_matches): Likewise.
              * reload.c (find_reloads): Likewise.
              * stmt.c (parse_output_constraint): Don't reject in-out
              constraint on operands > 9.  Reject '[' in constraint.
              (expand_asm_operands): Handle named operands.  Use strtoul
              for matching constraints.
              (check_operand_nalternatives): Split out from expand_asm_operands.
              (check_unique_operand_names): New.
              (resolve_operand_names, resolve_operand_name_1): New.
      
              * doc/extend.texi (Extended Asm): Document named operands.
              * doc/md.texi (Simple Constraints): Document matching constraints
              on operands > 9.
      
              * parse.y (asm_operand): Allow named operands.
              * semantics.c (finish_asm_stmt): Tweek for changed location
              of the operand constrant.
      
      From-SVN: r46179
      Richard Henderson committed
  5. 09 Oct, 2001 2 commits
  6. 08 Oct, 2001 2 commits
    • Make-lang.in (CXX_OBJS): Added cp-lang.o. · 19551f29
      * Make-lang.in (CXX_OBJS): Added cp-lang.o.
      (cp/cp-lang.o): New rule.
      * cp-tree.h: Declare hooks.
      * tree.c: Make hooks non-static.
      (init_tree): Don't initialize hooks here.
      * lex.c: Likewise.  Move definition of lang_hooks to...
      * cp-lang.c: ... new file.
      
      From-SVN: r46095
      Alexandre Oliva committed
    • c-common.h (struct c_lang_decl): Add declared_inline. · 31ed8fea
              * c-common.h (struct c_lang_decl): Add declared_inline.
              * c-tree.h (DECL_DECLARED_INLINE_P): New.
              * c-lang.c (c_disregard_inline_limits): Use it.
              * c-decl.c (duplicate_decls): Likewise.
              (pushdecl, redeclaration_error_message): Likewise.
              (pushdecl): Allocate DECL_LANG_SPECIFIC if needed.
              (grokdeclarator): Likewise.  Set DECL_DECLARED_INLINE_P.
              Set DECL_INLINE if -finline-functions.
              (store_parm_decls): Don't allocate DECL_LANG_SPECIFIC here.
      
              * cp-tree.h (struct lang_decl_flags): Remove declared_inline.
              (DECL_DECLARED_INLINE_P): Use the bit in struct c_lang_decl.
      
      From-SVN: r46079
      Richard Henderson committed
  7. 07 Oct, 2001 1 commit
    • builtins.c (expand_builtin_setjmp_receiver): Const-ify. · 8b60264b
      	* builtins.c (expand_builtin_setjmp_receiver): Const-ify.
      	* c-common.c (fname_var_t, c_tree_code_type, c_tree_code_length):
      	Likewise.
      	* c-dump.c (dump_option_value_info): Likewise.
      	* c-format.c (format_length_info, format_char_info,
      	format_flag_spec, format_flag_pair, format_kind_info): Likewise.
      	* collect2.c (names): Likewise.
      	* cppdefault.h (default_include): Likewise.
      	* cppexp.c (suffix, vsuf_1, vsuf_2, vsuf_3): Likewise.
      	* flow.c (life_analysis): Likewise.
      	* gcc.c (dir_separator_str, modify_target, option_map,
      	target_option_translations, spec_list_1, extra_specs_1,
      	init_spec): Likewise.
      	* gcov.c (gcov_version_string): Likewise.
      	* genattr.c (write_units): Likewise.
      	* genattrtab.c (make_length_attrs, write_function_unit_info): Likewise.
      	* gengenrtl.c (rtx_definition, defs): Likewise.
      	* genrecog.c (pred_table): Likewise.
      	* global.c (global_alloc): Likewise.
      	* lcm.c (optimize_mode_switching): Likewise.
      	* local-alloc.c (find_free_reg): Likewise.
      	* params.h (param_info): Likewise.
      	* predict.c (predictor_info): Likewise.
      	* protoize.c (unexpansion_struct): Likewise.
      	* real.c (bmask): Likewise.
      	* recog.h (insn_operand_data, insn_data): Likewise.
      	* regclass.c (initial_fixed_regs, initial_call_used_regs): Likewise.
      	* stmt.c (expand_nl_goto_receiver): Likewise.
      	* toplev.c (da, debug_args, lang_opt, documented_lang_options,
      	target_switches, target_options): Likewise.
      	* tradcif.y (token, tokentab2, yylex): Likewise.
      	* tree.h (attribute_spec): Likewise.
      
      	* alpha.c (override_options, alpha_lookup_xfloating_lib_func):
      	Likewise.
      	* arc.c (arc_output_function_epilogue): Likewise.
      	* arm.c (processors, all_cores, all_architectures,
      	arm_override_options, isr_attribute_arg, isr_attribute_args,
      	arm_isr_value): Likewise.
      	* avr.c (mcu_type_s, reg_class_tab, order_regs_for_local_alloc):
      	Likewise.
      	* c4x.c (c4x_int_reglist): Likewise.
      	* d30v.c (override_options): Likewise.
      	* h8300.c (shift_insn): Likewise.
      	* i386.c (size_cost, i386_cost, i486_cost, pentium_cost,
      	pentiumpro_cost, k6_cost, athlon_cost, pentium4_cost, ix86_cost,
      	ix86_expand_sse_comi, ix86_expand_sse_compare, override_options,
      	builtin_description, bdesc_comi, bdesc_2arg, bdesc_1arg,
      	ix86_init_mmx_sse_builtins, ix86_expand_builtin): Likewise.
      	* i386.h (processor_costs, ix86_cost): Likewise.
      	* m68hc11.c (m68hc11_cost, m6811_cost, m6812_cost): Likewise.
      	* m68hc11.h (processor_costs, m68hc11_cost): Likewise.
      	* m68k.c (codes_68881, codes_FPA): Likewise.
      	* m88k.c (mode_from_align, max_from_align, all_from_align,
      	best_from_align, m_options): Likewise.
      	* m88k.h (ORDER_REGS_FOR_LOCAL_ALLOC): Likewise.
      	* mcore.c (mode_from_align): Likewise.
      	* mips/elf64.h (UNIQUE_SECTION): Likewise.
      	* mips/iris6gld.h (UNIQUE_SECTION): Likewise.
      	* mips.c (mips_sw_reg_names, mips_regno_to_class): Likewise.
      	* mips.h (mips_regno_to_class): Likewise.
      	* ns32k.c (scales): Likewise.
      	* pa.c (import_string, magic_milli): Likewise.
      	* rs6000.c (alt_reg_names, rs6000_override_options): Likewise.
      	* sparc.c (leaf_reg_remap, sparc_override_options,
      	reg_leaf_alloc_order, reg_nonleaf_alloc_order, reg_alloc_orders):
      	Likewise.
      	* sparc.h (sparc_cpu_select, leaf_reg_remap): Likewise.
      
      cp:
      	* class.c (build_vtable_entry_ref): Const-ify.
      	* decl.c (predefined_identifier,
      	initialize_predefined_identifiers): Likewise.
      	* init.c (build_new_1): Likewise.
      	* lex.c (cplus_tree_code_type, cplus_tree_code_length, resword):
      	Likewise.
      
      f:
      	* bad.c (_ffebad_message_, ffebad_messages_): Const-ify.
      	* bld.c (ffebld_arity_op_): Likewise.
      	* bld.h (ffebld_arity_op_): Likewise.
      	* com.c (ffecom_init_0): Likewise.
      	* intdoc.c (_ffeintrin_name_, _ffeintrin_gen_, _ffeintrin_spec_,
      	_ffeintrin_imp_, names, gens, imps, specs, cc_pair,
      	cc_descriptions, cc_summaries): Likewise.
      	* intrin.c (_ffeintrin_name_, _ffeintrin_gen_, _ffeintrin_spec_,
      	_ffeintrin_imp_, ffeintrin_names_, ffeintrin_gens_,
      	ffeintrin_imps_, ffeintrin_specs_): Likewise.
      
      java:
      	* jcf-io.c (format_uint): Const-ify.
      	* lang.c (java_tree_code_type, java_tree_code_length): Likewise.
      	* lex.c (java_get_line_col): Likewise.
      	* parse.y (build_incdec): Likewise.
      
      From-SVN: r46062
      Kaveh R. Ghazi committed
  8. 05 Oct, 2001 2 commits
    • optimize.c (struct inline_data): Moved to ../tree-inline.c. · bc4c7159
      * optimize.c (struct inline_data): Moved to ../tree-inline.c.
      (INSNS_PER_STMT): Likewise.
      (remap_decl, remap_block, copy_scopy_stmt, copy_body_r): Likewise.
      (copy_body, initialize_inlined_parameters): Likewise.
      (declare_return_variable, inlinable_function_p): Likewise.
      (expand_call_inline, expand_calls_inline): Likewise.
      (optimize_inline_calls, clone_body): Likewise.
      * tree.c (walk_tree): Moved to ../tree-inline.c.
      (walk_tree_without_duplicates): Likewise.
      (copy_tree_r, remap_save_expr): Likewise.
      
      From-SVN: r46022
      Alexandre Oliva committed
    • Make-lang.in (cp/decl.o, cp/tree.o): Depend on tree-inline.h. · 25af8512
      * Make-lang.in (cp/decl.o, cp/tree.o): Depend on tree-inline.h.
      (cp/pt.o, cp/semantics.o, cp/optimize.o): Likewise.
      * cp-tree.h (lang_decl): Moved inlined_fns to tree_decl.
      (TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved to ../tree.h.
      (flag_inline_trees): Moved declaration to ../tree-inline.h.
      (walk_tree): Moved declaration to ../tree-inline.h.
      (walk_tree_without_duplicates, copy_tree_r): Likewise.
      (remap_save_expr): Likewise.
      * decl.c: Include tree-inline.h.
      (lang_mark_tree): Don't mark inlined_fns.
      * decl2.c (flag_inline_trees): Moved defn to ../tree-inline.c.
      * optimize.c: Include tree-inline.h.
      (optimize_inline_calls): Move declaration to ../tree.h, as
      non-static.
      (remap_decl): Use language-independent constructs and hooks.
      (remap_block, copy_body_r, declare_return_variable): Likewise.
      (inlinable_function_p): Likewise.  Don't test for
      DECL_LANG_SPECIFIC before DECL_INLINED_FNS as inlined_fns is
      no longer language-specific.
      (optimize_inline_calls): Likewise.  Make it non-static.  Moved
      call of dump_function to...
      (optimize_function): Here...
      (clone_body): New function, extracted from...
      (maybe_clone_body): ... here.  Build decl_map locally and pass
      it on to clone_body.
      * pt.c, semantics.c: Include tree-inline.h.
      * tree.c: Likewise.
      (cp_walk_subtrees): New language-specific hook for tree inlining.
      (cp_cannot_inline_tree_fn, cp_add_pending_fn_decls,
      cp_is_overload_p, cp_auto_var_in_fn_p,
      cp_copy_res_decl_for_inlining): Likewise.
      (walk_tree): Move language-specific constructs into...
      (cp_walk_subtrees): this new function.
      (copy_tree_r): Use language-independent constructs and hooks.
      (init_tree): Initialize tree inlining hooks.
      (remap_save_expr): Adjust prototype so that the declaration
      does not require the definition of splay_tree.
      
      From-SVN: r46020
      Alexandre Oliva committed
  9. 03 Oct, 2001 1 commit
  10. 02 Oct, 2001 4 commits
    • * decl2.c (cxx_decode_option): Add 'else'. · 133339b4
      From-SVN: r45963
      Jason Merrill committed
    • spew.c (end_input): No longer static. · 0caee1c6
              * spew.c (end_input): No longer static.
              * cp-tree.h: Declare it.
              * parse.y (datadef): Add "error END_OF_SAVED_INPUT" expansion.
      
      From-SVN: r45962
      Jason Merrill committed
    • c-common.c (c_format_attribute_table): Make format and format_arg attributes… · 80a497e4
      c-common.c (c_format_attribute_table): Make format and format_arg attributes apply to function types rather than to decls.
      
      	* c-common.c (c_format_attribute_table): Make format and
      	format_arg attributes apply to function types rather than to
      	decls.
      	(is_valid_printf_arglist): Construct an attribute list and pass
      	that to check_function_format rather than a name.
      	* c-common.h (check_function_format): Adjust prototype.
      	* c-decl.c (duplicate_decls): Preserve attributes from type of
      	built-in decl when allowing for harmless conflict in types.
      	* c-format.c (record_function_format,
      	record_international_format, function_format_list,
      	international_format_info, international_format_list): Remove.
      	(function_format_info): Remove next, name and assembler_name.
      	Make format_num and first_arg_num be unsigned HOST_WIDE_INT.
      	(decode_format_attr): New.
      	(handle_format_attribute): Handle receiving a type rather than a
      	decl.  Call decode_format_attr.  Store format information in a
      	function_format_info.
      	(handle_format_arg_attribute): Correct comment.  Handle receiving
      	a type rather than a decl.  Use unsigned HOST_WIDE_INT for
      	arg_num.
      	(check_format_info_recurse, check_format_info_main): Take argument
      	numbers as unsigned HOST_WIDE_INT.
      	(check_function_format): Take a list of attributes from the
      	function type rather than a name or assembler name.  Check for
      	format attributes in that list and the attributes on the type of
      	the current function rather than looking through
      	function_format_list.
      	(check_format_info): Use unsigned HOST_WIDE_INT for argument
      	numbers.
      	(check_format_info_recurse): Take format_arg attributes from the
      	type of the function calls rather than using
      	international_format_list.  Allow for multiple format_arg
      	attributes.
      	* c-typeck.c (build_function_call): Pass type attributes to
      	check_function_format rather than name or assembler name.  Don't
      	require there to be a name or assembler name to check formats.
      
      cp:
      	* call.c (build_over_call), typeck.c (build_function_call_real):
      	Pass type attributes to check_function_format rather than name or
      	assembler name.  Don't require there to be a name or assembler
      	name to check formats.
      
      testsuite:
      	* g++.dg/warn/format2.C, gcc.dg/format/attr-7.c,
      	gcc.dg/format/multattr-1.c, gcc.dg/format/multattr-2.c,
      	gcc.dg/format/multattr-3.c: New tests.
      	* gcc.dg/format/attr-3.c: Update expected error texts.  Remove
      	tests for format attributes on function pointers being rejected.
      
      From-SVN: r45945
      Joseph Myers committed
    • attribs.c (decl_attributes): Possibly call insert_default_attributes to insert… · 6431177a
      attribs.c (decl_attributes): Possibly call insert_default_attributes to insert default attributes on...
      
      	* attribs.c (decl_attributes): Possibly call
      	insert_default_attributes to insert default attributes on
      	functions in a lazy manner.
      	* builtin-attrs.def: New file; define the default format and
      	format_arg attributes.
      	* c-common.c (c_format_attribute_table): Move to earlier in the
      	file.
      	(c_common_nodes_and_builtins): Initialize format_attribute_table.
      	(enum built_in_attribute, built_in_attributes,
      	c_attrs_initialized, c_init_attributes,
      	c_common_insert_default_attributes): New.
      	(c_common_lang_init): Don't initialize format_attribute_table.  Do
      	call c_init_attributes.
      	* Makefile.in (c-common.o): Depend on builtin-attrs.def.
      	* c-common.h (init_function_format_info): Don't declare.
      	(c_common_insert_default_attributes): Declare.
      	* c-decl.c (implicitly_declare, builtin_function): Call
      	decl_attributes.
      	(init_decl_processing): Don't call init_function_format_info.
      	(insert_default_attributes): New.
      	* c-format.c (handle_format_attribute,
      	handle_format_arg_attribute): Be quiet about inappropriate
      	declaration when applying default attributes.
      	(init_function_format_info): Remove.
      	* tree.h (enum attribute_flags): Add ATTR_FLAG_BUILT_IN.
      	(insert_default_attributes): Declare.
      
      cp:
      	* decl.c (init_decl_processing): Don't call
      	init_function_format_info.  Initialize lang_attribute_table
      	earlier.
      	(builtin_function): Call decl_attributes.
      	(insert_default_attributes): New.
      
      testsuite:
      	* gcc.dg/format/attr-5.c, gcc.dg/format/attr-6.c: New tests.
      
      From-SVN: r45942
      Joseph Myers committed
  11. 01 Oct, 2001 1 commit
  12. 29 Sep, 2001 1 commit
  13. 24 Sep, 2001 1 commit
    • top level: · 749ced52
      	* errors.h (warning, error, fatal, internal_error): Don't mark
      	with ATTRIBUTE_PRINTF_n.
      	* toplev.h (internal_error, fatal_io_error, warning, error,
      	pedwarn, pedwarn_with_file_and_line, warning_with_file_and_line,
      	error_with_file_and_line, sorry, error_for_asm, warning_for_asm):
      	Likewise.
      cp:
      	* Make-lang.in (CXX_OBJS): Take out cp/errfn.o.
      	(cp/errfn.o): Delete rule.
      	(cp/error.o): Depend on flags.h.
      	* errfn.c: Delete file.
      	* cp-tree.h: Declare warn_deprecated.  Remove definitions of
      	TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS,
      	and TFF_TEMPLATE_DEFAULT_ARGUMENTS. #define cp_error, cp_warning,
      	cp_pedwarn, and cp_compiler_error to error, warning, pedwarn, and
      	internal_error respectively.  Make cp_deprecated into a macro.
      	Don't define cp_printer typedef or declare cp_printers.
      	* error.c: Include flags.h.
      	Delete: struct tree_formatting_info, print_function_argument_list,
      	print_declaration, print_expression, print_function_declaration,
      	print_function_parameter, print_type_id, print_cv_qualifier_seq,
      	print_type_specifier_seq, print_simple_type_specifier,
      	print_elaborated_type_specifier, print_rest_of_abstract_declarator,
      	print_parameter_declaration_clause, print_exception_specification,
      	print_nested_name_specifier, and definition of cp_printers.
      	(locate_error): New function.
      	(cp_error_at, cp_warning_at, cp_pedwarn_at): Moved here and
      	rewritten in terms of locate_error and diagnostic.c.
      	(cp_tree_printer): Rename cp_printer; wire up to *_to_string
      	instead of deleted print_* routines.  Handle %C, %L, %O, %Q also.
      	(init_error): Adjust to match.
      po:
      	* POTFILES.in: Remove cp/errfn.c.
      
      From-SVN: r45765
      Zack Weinberg committed
  14. 22 Sep, 2001 1 commit
    • attribs.c: New file, from c-common.c. · bb9f8221
      	* attribs.c: New file, from c-common.c.
      	(attribute_tables): Now four elements.
      	(format_attribute_table, lang_attribute_common): New variables.
      	(init_attributes): Reflect above changes.
      	(handle_mode_attribute): Delete check for wider than uintmax.
      	* c-common.c: Delete parts moved to attribs.c.
      	(enum attrs): Deleted; unused.
      	(c_format_attribute_table): New variable.
      	(c_common_lang_init): Initialize format_attribute_table with it.
      	* c-common.h (decl_attributes): Remove decl.
      	* tree.h (decl_attribute): Move it to here.
      	* Makefile.in (C_AND_OBJS_OBJS): Add attribs.o.
      	(attribs.o): New rule.
      	* ch/Make-lang.in (cc1chill): Add attribs.o.
      	* cp/Make-lang.in (CXX_C_OBJS): Add attribs.o.
      
      From-SVN: r45749
      Richard Kenner committed
  15. 21 Sep, 2001 3 commits
    • 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
    • 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
  16. 15 Sep, 2001 2 commits
  17. 13 Sep, 2001 1 commit
    • c-parse.in (yyerror): Const-ification and/or static-ization. · 83182544
      	* c-parse.in (yyerror): Const-ification and/or static-ization.
      	* c-typeck.c (push_member_name): Likewise.
      	* collect2.c (main): Likewise.
      	* dbxout.c (dbxout_parms): Likewise.
      	* diagnostic.c (format_with_decl): Likewise.
      	* dwarf2out.c (output_ranges): Likewise.
      	* dwarfout.c (fundamental_type_code): Likewise.
      	* except.c (dw2_output_call_site_table): Likewise.
      	* gcc.c (do_spec_1): Likewise.
      	* genopinit.c (optabs): Likewise.
      	* objc/objc-act.c (synth_id_with_class_suffix, start_class,
      	gen_declaration_1, handle_impent): Likewise.
      	* protoize.c (default_include, in_system_include_dir, abspath):
      	Likewise.
      	* sched-vis.c (visualize_stall_cycles): Likewise.
      	* sdbout.c (plain_type_1, sdbout_end_function,
      	sdbout_end_epilogue): Likewise.
      	* varasm.c (decode_reg_name): Likewise.
      
      	* 1750a.c (mod_regno_adjust): Likewise.
      	* alpha.c (alpha_write_one_linkage,
      	unicosmk_output_default_externs): Likewise.
      	* arm.c (arm_condition_codes): Likewise.
      	* arm.h (arm_condition_codes): Likewise.
      	* avr.c (output_movsisf, encode_section_info): Likewise.
      	* darwin.h (GEN_BINDER_NAME_FOR_STUB, GEN_SYMBOL_NAME_FOR_SYMBOL):
      	Likewise.
      	* i386.c (hi_reg_name, qi_reg_name, qi_high_reg_name): Likewise.
      	* i386.h (hi_reg_name, qi_reg_name, qi_high_reg_name): Likewise.
      	* m88k.c (output_function_profiler): Likewise.
      	* mips.c (mips_output_conditional_branch): Likewise.
      	* ns32k.c (ns32k_out_reg_names): Likewise.
      	* ns32k.h (ns32k_out_reg_names): Likewise.
      	* pj.c (pj_output_rval): Likewise.
      	* rs6000.c (GEN_LOCAL_LABEL_FOR_SYMBOL): Likewise.
      	* sparc.c (sparc_flat_function_prologue,
      	sparc_flat_function_epilogue): Likewise.
      
      cp:
      	* decl.c (warn_extern_redeclared_static, cp_make_fname_decl):
      	Const-ification.
      	* pt.c (tsubst_decl): Likewise.
      
      f:
      	* bad.c (ffebad_finish): Const-ification and/or static-ization.
      	* intrin.c (ffeintrin_cmp_name_): Likewise.
      	* stc.c (ffestc_R904): Likewise.
      
      java:
      	* expr.c (expand_invoke): Const-ification.
      	* parse.y (patch_method_invocation): Likewise.
      
      From-SVN: r45581
      Kaveh R. Ghazi committed
  18. 12 Sep, 2001 1 commit
  19. 06 Sep, 2001 4 commits
    • Remove OP_IDENTIFIER. · cffb2601
      2001-09-06  Ira Ruben  <ira@apple.com>
      
              Remove OP_IDENTIFIER.
              * tree.def (OP_IDENTIFIER): Remove.
              * tree.c (tree_node_kind enum): Remove op_id_kind.
              (tree_node_kind_names): Remove "op_identifiers".
              (make_node): Remove OP_IDENTIFIER test.
              (build_op_identifier): Removed because it isn't being used.
              * print-tree.c (print_node): Remove OP_IDENTIFIER case.
              * cp/pt.c (tsubst): Remove OP_IDENTIFIER case.
      
      From-SVN: r45457
      Ira Ruben committed
    • oops, missed a bit in previous commit · 5234e23b
      From-SVN: r45436
      Nathan Sidwell committed
    • re PR c++/3986 (ICE in build_rtti_vtbl_entries) · 39e78d8b
      cp:
      	PR c++/3986
      	* class.c (force_canonical_binfo_r): Check & move an indirect
      	primary base first.
      	(force_canonical_binfo): Check that it's not already
      	canonical.
      	(mark_primary_virtual_base): Remove BINFO parameter.
      	(mark_primary_bases): Adjust, set BINFO_LOST_PRIMARY_P here.
      testsuite:
      	PR c++/3986
      	* g++.dg/abi/vbase1.C: New test.
      
      From-SVN: r45435
      Nathan Sidwell committed
    • Remove TYPE_NONCOPIED_PARTS. · 6d0a3f67
      	* tree.h (TYPE_NONCOPIED_PARTS): Remove.
      	(struct tree_type): Remove noncopied_parts.
      	* c-tree.h (TYPE_ACTUAL_ARG_TYPES): Map onto TYPE_BINFO.
      	* expr.c (save_noncopied_parts, init_noncopied_parts): Remove.
      	(fixed_type_p): Remove.
      	(expand_expr, INIT_EXPR): Don't deal with noncopied parts.
      	(expand_expr, MODIFY_EXPR): Likewise.
      	* ggc-common.c (ggc_mark_trees): Remove TYPE_NONCOPIED_PARTS.
      	* doc/c-tree.texi: Remove TYPE_NONCOPIED_PARTS FIXME.
      cp:
      	Remove TYPE_NONCOPIED_PARTS.
      	* cp-tree.h (CLASSTYPE_INLINE_FRIENDS): Map onto
      	CLASSTYPE_PURE_VIRTUALS.
      	(TYPE_RAISES_EXCEPTIONS): Map onto TYPE_BINFO.
      	* class.c (duplicate_tag_error): Remove TYPE_NONCOPIED_PARTS.
      	(layout_class_type): Don't call fixup_inlin_methods here ...
      	(finish_struct_1): ... call it here.
      
      From-SVN: r45434
      Nathan Sidwell committed
  20. 04 Sep, 2001 2 commits
  21. 31 Aug, 2001 1 commit
  22. 30 Aug, 2001 2 commits