Commit Graph

25 Commits

Author SHA1 Message Date
Neil Booth
0b6f2917cf Makefile.in (c-opts.o, [...]): Update.
* Makefile.in (c-opts.o, c-common.o, C_AND_OBJC_OBJS): Update.
	* c-common.c: Don't include tree-inline.h.
	(c_common_init_options, c_common_post_options): Move to c-opts.c.
	* c-common.h (c_common_decode_option): New.
	* c-decl.c (c_decode_option): Remove.
	* c-lang.c (LANG_HOOKS_DECODE_OPTION): Use c_common_decode_option.
	* c-opts.c: New file.
	* c-tree.h (c_decode_option): Remove.
	* doc/passes.texi: Update.
	* objc/objc-act.c (objc_decode_option): Remove.
	* objc/objc-act.h (objc_decode_option): Remove.
	* objc/ojbc-lang.c (LANG_HOOKS_DECODE_OPTION): Use
	c_common_decode_option.
cp:
	* Make-lang.in (CXX_C_OBJS): Update.
	* cp-lang.c (LANG_HOOKS_DECODE_OPTION): Use c_common_decode_option.
	* cp-tree.h (cxx_decode_option): Remove.
	* decl2.c (compare_options, lang_f_options, unsupported_options,
	cxx_decode_option): Remove.
testsuite:
	* objc.dg/const-str-2.m: Update.
	* gcc.dg/cpp/c++98.c: Change to C extension.
	* gcc.dg/cpp/c++98-pedantic.c: Similarly.
	* gcc.dg/cpp/cpp.exp: Process .C extensions too.

From-SVN: r56105
2002-08-07 18:32:13 +00:00
Nicola Pero
4b65dba166 Define some laguage hooks which were missing - LANG_HOOKS_GET_ALIAS_SET
and LANG_HOOKS_SAFE_FROM_P

From-SVN: r54314
2002-06-06 09:25:48 +00:00
Geoffrey Keating
e2500fedef Merge from pch-branch up to tag pch-commit-20020603.
From-SVN: r54232
2002-06-04 07:11:05 +00:00
Neil Booth
e5f3b786ed re PR preprocessor/6517 (gcc hangs on C compile with multiple "-I-")
PR preprocessor/6517
	* Makefile.in: Update.
	* c-common.c (c_common_post_options): Add preprocessor
	errors to the error count.
	* c-lang.c (c_post_options): Kill.
	(LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
	* hooks.h: Add header guards.
	* langhooks-def.h: Include hooks.h.
	(LANG_HOOKS_POST_OPTIONS): Update.
	* langhooks.h (struct lang_hooks): Update post_options.
	* toplev.c (parse_options_and_default_flags): Update.
cp:
	* cp-lang.c (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
	* cp-tree.h (cxx_post_options): Kill.
	* cp-lex.c (cxx_post_options): Kill.
objc:
	* objc-lang.c (objc_post_options): Kill.
	(LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.

From-SVN: r53724
2002-05-22 05:40:22 +00:00
Neil Booth
ff45c01ef4 c-common.h (c_common_parse_file): Update.
* c-common.h (c_common_parse_file): Update.
	* c-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
	* c-lex.c (YYDEBUG): Get from c-lex.h.
	(c_common_parse_file): Update.
	* c-lex.h (YYDEBUG, yydebug): New.
	* c-parse.in (YYDEBUG): Get from c-lex.h.
	(c_set_yydebug): Remove.
	* c-tree.h (c_set_yydebug): Remove.
	* langhooks-def.h (lhd_do_nothing_i): New.
	(lhd_set_yydebug, LANG_HOOKS_SET_YYDEBUG): Remove.
	(LANG_HOOKS_PARSE_FILE, LANG_HOOKS_INITIALIZER): Update.
	* langhooks.c  (lhd_do_nothing_i): New.
	(lhd_set_yydebug): Remove.
	* langhooks.h (struct lang_hooks): Update.
	* toplev.c (set_yydebug): New.
	(compile_file): Update call to parse_file hook.
	(decode_d_option): Update.
ada:
	* misc.c (gnat_parse_file): Update.
cp:
	* cp-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
	* cp-tree.h (cxx_set_yydebug): Die.
	* lex.c (YYDEBUG): Get from c-lex.h.
	(cxx_set_yydebug): Remove.
	* parse.y: Include c-lex.h.
	(YYDEBUG): Get from c-lex.h.
f:
	* com.h (ffe_parse_file): Update.
	* lex.c (ffe_parse_file): Update.
java:
	* java-tree.h (java_parse_file): Update.
	(java_set_yydebug): Remove.
	* jcf-parse.c (yydebug): Remove.
	(java_set_yydebug): Die.
	(java_parse_file): Update.
	* lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
objc:
	* objc-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.

From-SVN: r52753
2002-04-25 06:24:41 +00:00
Neil Booth
349ae713cb attribs.c (c_common_attribute_table): Move table and handlers to c-common.c.
* attribs.c (c_common_attribute_table): Move table and handlers
	to c-common.c.
	(format_attribute_table, lang_attribute_table,
	lang_attribute_common): Remove.
	(init_attributes): Replace NULL pointers with pointers to the
	empty table.
	(handle_packed_attribute, handle_nocommon_attribute,
	handle_common_attribute, handle_noreturn_attribute,
	handle_noinline_attribute, handle_always_inline_attribute,
	handle_used_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_visibility_attribute,
	handle_no_instrument_function_attribute, handle_malloc_attribute,
	handle_no_limit_stack_attribute, handle_pure_attribute,
	handle_deprecated_attribute, handle_vector_size_attribute,
	vector_size_helper): Move to c-common.c.
	* c-common.c (c_common_attribute_table,
	handle_packed_attribute, handle_nocommon_attribute,
	handle_common_attribute, handle_noreturn_attribute,
	handle_noinline_attribute, handle_always_inline_attribute,
	handle_used_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_visibility_attribute,
	handle_no_instrument_function_attribute, handle_malloc_attribute,
	handle_no_limit_stack_attribute, handle_pure_attribute,
	handle_deprecated_attribute, handle_vector_size_attribute,
	vector_size_helper): Move from attribs.c.
	* c-common.h (c_common_attribute_table,
	c_common_format_attribute_table): New.
	* c-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
	LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
	* langhooks-def.h (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
	LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE): New.
	(LANG_HOOKS_INITIALIZER): Update.
	* langhooks.h (struct lang_hooks): 3 new attribute hooks.
	* target-def.h (TARGET_ATTRIBUTE_TABLE): Default to NULL.
	* target.h: Update comment.
	* tree.c (default_target_attribute_table): Remove.
	* tree.h (default_target_attribute_table, format_attribute_table,
	lang_attribute_table, lang_attribute_common): Remove.
ada:
	* misc.c (gnat_init): Don't set lang_attribute_common.
cp:
	* cp-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
	LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE):
	Redefine.
	* cp-tree.h (cp_attribute_table): Rename.
	* decl.c (lang_attribute_table): Remove declaration.
	(cxx_init_decl_processing): Don't set it.
	* tree.c (cp_attribute_table): Rename.
objc:
	* objc-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
	LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.

From-SVN: r52730
2002-04-24 20:41:04 +00:00
Neil Booth
b03e38e17e Makefile.in: Update.
* Makefile.in: Update.
	* decl.c (push_c_function_context, pop_c_function_context,
	mark_c_function_context): Rename for consistency.
	* c-objc-common.c (c_objc_common_init): Langhooks set elsewhere.
	* c-tree.h (push_c_function_context, pop_c_function_context,
	mark_c_function_context): Rename for consistency.
	* c-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
	LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
	* function.c (init_lang_status, save_lang_status,
	restore_lang_status, mark_lang_status, free_lang_status):
	Move to langhooks.h.
	(push_function_context_to, pop_function_context_from,
	free_after_parsing, prepare_function_start, ggc_mark_struct_function):
	Update.
	* function.h (init_lang_status, save_lang_status,
	restore_lang_status, mark_lang_status, free_lang_status):
	Move to langhooks.h.
	* langhooks-def.h (LANG_HOOKS_FUNCTION_INIT,
	LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_ENTER_NESTED,
	LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK,
	LANG_HOOKS_FUNCTION_INITIALIZER): New.
	(LANG_HOOKS_INITIALIZER): Update.
	(lhd_do_nothing_f): New.
	* langhooks.h (struct lang_hooks_for_functions): New.
	(struct lang_hooks): New hooks.
	* langhooks.c (lhd_do_nothing_f): New.
cp:
	* cp-lang.c (LANG_HOOKS_FUNCTION_INIT,
	LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_MARK): Redefine.
	* cp-tree.h (cxx_push_function_context, cxx_pop_function_context,
	cxx_mark_function_context): New.
	* decl.c (push_cp_function_context, pop_cp_function_context,
	mark_cp_function_context): Rename for consistency.
	(cxx_init_decl_processing): Don't set old hooks.
objc:
	* objc-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
	LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.

From-SVN: r52551
2002-04-20 09:14:37 +00:00
Neil Booth
ab393bf171 builtins.c: Include langhooks.h.
* builtins.c: Include langhooks.h.
	(lang_type_promotes_to): Remove.
	(expand_builtin_va_arg): Use new hook.
	* c-common.c (c_common_nodes_and_builtins): Don't set hook.
	(simple_type_promotes_to): Move to c-typeck.c.
	* c-common.h (simple_type_promotes_to): Remove.
	* c-decl.c (duplicate_decls, grokdeclarator): Update.
	* c-format.c: Include langhooks.h.
	(check_format_types): Update.
	* c-tree.h (c_type_promotes_to): New.
	* c-typeck.c (c_type_promotes_to): Move from c-common.c.
	(type_lists_compatible_p): Update.
	* langhooks-def.h (lhd_type_promotes_to): New.
	(LANG_HOOKS_TYPE_PROMOTES_TO): New.
	(LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
	* langhooks.c (lhd_type_promotes_to): New.
	* langhooks.h (struct lang_hooks_for_types): New hook.
	* tree.h (lang_type_promotes_to): Remove.
cp:
	* call.c (convert_type_from_ellipsis): Rename, update.
	* cp-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
	* cp-tree.h (convert_type_from_ellipsis): Rename.
	* decl.c (cxx_init_decl_processing): Don't set hook.
objc:
	* objc-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.

From-SVN: r52512
2002-04-19 06:22:18 +00:00
Neil Booth
7a2289181e c-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
* c-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
	* c-tree.h (c_incomplete_type_error): New.
	* c-typeck.c (require_complete_type, build_component_ref): Update.
	(incomplete_type_error): Rename.
	* langhooks-def.h (lhd_incomplete_type_error): New.
	(LANG_HOOKS_INCOMPLETE_TYPE_ERROR): New.
	(LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
	* langhooks.c (lhd_incomplete_type_error): New.
	* langhooks.h (struct lang_hooks_for_types): New hook.
	* tree.c (size_in_bytes): Use new hook.
	* tree.h (incomplete_type_error): Remove.
ada:	* gigi.h (incomplete_type_error): Remove.
	* utils.c (incomplete_type_error): Remove.
cp:
	* call.c (build_new_method_call): Update.
	* cp-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
	* cp-tree.h (cxx_incomplete_type_error): New.
	* decl.c (grokdeclarator, grokparms): Update.
	* decl2.c (check_classfn): Update.
	* pt.c (tsubst): Update.
	* typeck.c (complete_type_or_else, expr_sizeof,
	decay_conversion): Update.
	* typeck2.c (incomplete_type_error): Rename.
	(add_exception_specifier): Update.
f:
	* com.c (incomplete_type_error): Remove.
java:
	* typeck.c (incomplete_type_error): Remove.
objc:
	* objc-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.

From-SVN: r52480
2002-04-18 17:54:11 +00:00
Neil Booth
78ef5b895f c-common.c (truthvalue_conversion): Rename, update.
* c-common.c (truthvalue_conversion): Rename, update.
	* c-common.h (c_common_truthvalue_conversion): New.
	* c-convert.c (convert): Update.
	* c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
	* c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update.
	* c-typeck.c (build_binary_op, build_unary_op,
	build_conditional_expr): Update.
	* fold-const.c (constant_boolean_node, fold): Use langhook.
	* langhooks-def.h (LANGHOOK_INITIALIZER): Update.
	* langhooks.h (struct lang_hooks): New hook.
	* stmt.c (expand_decl_cleanup): Use langhook.
	* tree.h (truthvalue_conversion): Remove.
ada:
	* gigi.h (truthvalue_conversion): Rename.
	* misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
	* trans.c (tree_transform): Update.
	* utils2.c (truthvalue_conversion): Rename, update.
	(build_binary_op, build_unary_op): Update.
cp:
	* cp-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
	* cvt.c: Update comment.
	* init.c (expand_cleanup_for_base): Update.
	* semantics.c (finish_parenthesized_expr): Update.
	* typeck.c (cp_truthvalue_conversion): Update.
f:
	* com.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
	(truthvalue_conversion): Rename.  Update.  Make static.
	(ffecom_truth_value): Update.
java:
	* expr.c (truthvalue_conversion): Rename.  Update.
	(expand_compare): Update.
	* java-tree.h (java_truthvalue_conversion): New.
	* lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
objc:
	* objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.

From-SVN: r51880
2002-04-04 22:19:58 +00:00
Richard Henderson
ef4f94ac97 re PR rtl-optimization/4330 (Optimizer generates illegal assembly code)
PR opt/4330
        * langhooks.h (lang_hooks.decls.warn_unused_global): New.
        * toplev.c (check_global_declarations): Use it.
        * langhooks-def.h (lhd_warn_unused_global_decl): Declare.
        (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
        (LANG_HOOKS_DECLS): Add it.
        * langhooks.c (lhd_warn_unused_global_decl): New.
        * c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
        * c-objc-common.c (c_warn_unused_global_decl): New.
        * c-tree.h (c_warn_unused_global_decl): Declare.
        * objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.

        * cp-lang.c (cxx_warn_unused_global_decl): New.
        (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.

	* g++.dg/warn/Wunused-2.C: New.
	* gcc.dg/unused-4.c: New.

From-SVN: r51818
2002-04-03 14:39:51 -08:00
Neil Booth
dffd7eb68a c-decl.c (grokdeclarator): Update.
* c-decl.c (grokdeclarator): Update.
	* c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
	* c-tree.h (c_mark_addressable): New.
	* c-typeck.c (default_function_array_conversion, build_unary_op,
	build_array_ref, convert_for_assignment): Update.
	(mark_addressable): Rename.
	* calls.c (try_to_integrate, expand_call): Use langhook.
	* expr.c (expand_expr): Use langhook.
	* langhooks-def.h (LANG_HOOKS_INITIALIZER): Update.
	* langhooks.h (struct lang_hooks): New hook.
	* stmt.c (expand_asm_operands): Use langhook.
	* tree.h (mark_addressable): Remove.
ada:
	* decl.c (gnat_to_gnu_entity): Update.
	* gigi.h (mark_addressable): Rename.
	* misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
	* trans.c (tree_transform): Update.
	* utils.c (create_var_decl): Update.
	* util2.c (build_binary_op, build_unary_op,
	fill_vms_descriptor): Update.
	(mark_addressable): Rename, update.
cp:
	* call.c (build_addr_func): Update.
	* class.c (resolve_address_of_overloaded_function): Update.
	* cp-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
	* cp-tree.h (cxx_mark_addressable): New.
	* decl.c (register_dtor_fn, cxx_maybe_build_cleanup): Update.
	* decl2.c (build_cleanup): Update.
	* except.c (build_throw): Update.
	* init.c (resolve_offset_ref): Update.
	* pt.c (convert_nontype_argument): Update.
	* semantics.c (finish_asm_stmt, simplify_affr_init_exprs_r): Update.
	* typeck.c (decay_conversion, build_array_ref, build_unary_op,
	unary_complex_lvalue): Update.
	(mark_addressable): Rename.
f:
	* com.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
	(mark_addressable): Rename.
	(ffecom_arrayref_, ffecom_1): Update.
java:
	* java-tree.h (java_mark_addressable): New.
	* lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
	* typeck.c (mark_addressable): Rename, update.
objc:
	* objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.

From-SVN: r51705
2002-04-01 20:26:18 +00:00
Neil Booth
ceef8ce4b4 c-common.c (unsigned_conversion_warning, [...]): Use new hooks.
* c-common.c (unsigned_conversion_warning, convert_and_check,
	unsigned_type, signed_type, shorten_compare,
	c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks.
	(unsigned_type, signed_type, signed_or_unsigned_type): Rename.
	* c-common.h (unsigned_type, signed_type, signed_or_unsigned_type):
	New.
	* c-decl.c (grokdeclarator): Update.
	* c-format.c (check_format_types): Update.
	* c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
	LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
	* c-typeck.c (build_binary_op, convert_for_assignment): Update.
	* convert.c (convert_to_integer): Use new hooks.
	* expmed.c (make_tree): Use new hooks.
	* expr.c (store_expr): Use new hooks.
	* fold-const.c (operand_equal_for_comparison_p, build_range_check,
	all_ones_mask_p, unextend, fold): Use new hooks.
	* langhooks.h (struct lang_hooks_for_types): New hooks.
	* tree.h (signed_or_unsigned_type, signed_type,
	unsigned_type): Remove.
ada:
	* gigi.h (unsigned_type, signed_type, signed_or_unsigned_type):
	Rename.
	* misc.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
	LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
	* trans.c (tree_transform, convert_with_check): Update.
	* utils.c (unsigned_type, signed_type, signed_or_unsigned_type):
	Rename.
cp:
	* cp-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
	LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
	* decl.c (grokdeclarator): Update.
	* mangle.c (write_integer_cst): Update.
	* typeck.c (build_binary_op): Update.
f:
	* com.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
	LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
	(unsigned_type, signed_type, signed_or_unsigned_type): Rename.
java:
	* expr.c (build_java_binop): Update.
	* java-tree.h (java_signed_type, java_unsigned_type,
	java_signed_or_unsigned_type): Update.
	* lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
	LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
	* parse.y (patch_binop): Update.
	* typeck.c (signed_or_unsigned_type, unsigned_type,
	signed_type): Update.
objc:
	* objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
	LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.

From-SVN: r51684
2002-04-01 08:46:10 +00:00
Neil Booth
48a7a23514 c-common.c (c_unsafe_for_reeval): Rename.
* c-common.c (c_unsafe_for_reeval): Rename.
	* c-common.h (c_unsafe_for_reeval): Rename.
	* c-decl.c (finish_incomplete_decl): Rename.
	(c_init_decl_processing): Don't set langhook.
	* c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
	LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
	* c-objc-common.c (c_objc_common_init): Don't set langhook.
	* c-tree.h (finish_incomplete_decl): Rename.
	* langhooks-def.h (lhd_unsafe_for_reeval): New.
	(LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
	(LANG_HOOKS_INITIALIZER): Update.
	* langhooks.c (lhd_unsafe_For_reeval): New.
	* langhooks.h (struct langhooks): New hooks.
	* toplev.c (incomplete_decl_finalize_hook): Remove.
	(wrapup_global_declarations): Update.
	* tree.c (lang_unsafe_for_reeval): Remove.
	(unsafe_for_reeval): Update.
	* tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook):
	Remove.
ada:
	* gigi.h (finish_incomplete_decl): Rename.
	* misc.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL): Redefine.
	* utils.c (gnat_init_decl_processing): Don't set hook.
	(finish_incomplete_decl): Rename.
cp:
	* cp-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
	* lex.c (cxx_init): Don't set hook.
objc:
	* objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
	LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.

From-SVN: r51673
2002-03-31 22:40:57 +00:00
Neil Booth
b0c4822985 Makefile.in (convert.o, [...]): Update.
* Makefile.in (convert.o, calls.o, expmed.o): Update.
	* attribs.c (handle_mode_attribute, handle_vector_size_attribute):
	Use new hooks.
	* builtin-types.def (BT_PTRMODE): Update.
	* c-common.c (type_for_size): Rename c_common_type_for_size.
	(type_for_mode): Similarly.
	(shorten_compare, pointer_int_sum, c_common_nodes_and_builtins):
	Use new hook.
	* c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New.
	* c-decl.c (finish_enum, build_enumerator): Use new hooks.
	* c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
	Redefine.
	* c-typeck.c (common_type, comptypes, default_conversion):
	Use new hooks.
	* calls.c: Include langhooks.h.
	(emit_library_call_value_1): Use new hooks.  Avoid redundant
	calls.
	* convert.c: Include langhooks.h
	(convert_to_pointer, convert_to_integer): Use new hooks.
	* except.c (init_eh): Similarly.
	* expmed.c: Include langhooks.h.
	(expand_mult_add): Use new hooks.
	* expr.c (store_expr, store_constructor, expand_expr, do_jump,
	try_casesi): Similarly.
	* fold-const.c (optimize_bit_field_compare, make_range,
	decode_field_reference, fold_truthop, fold): Similarly.
	* function.c (assign_stack_local_1, assign_stack_temp_for_type,
	put_var_into_stack): Similarly.
	* langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE,
	LANG_HOOKS_TYPE_FOR_SIZE): New.
	(LANG_HOOKS_TYPES_INITIALIZER): Update.
	* langhooks.h (lang_hooks_for_types): New hooks.
	* stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks.
	* tree.c (get_unwidened, get_narrower): Similarly.
	* tree.h (type_for_mode, type_for_size): Remove.
	* varasm.c (force_const_mem): Use new hooks.
ada:
	* gigi.h (type_for_size, type_for_mode): Rename.
	* misc.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
	Redefine.
	* trans.c (tree_transform): Update.
	* utils.c (gnat_init_decl_processing, init_gigi_decls,
	builtin_function, float_type_for_size, signed_or_unsigned_type,
	build_vms_descriptor, unchecked_convert): Update.
	(type_for_mode, type_for_size): Rename.
	* utils2.c (nonbinary_modular_operation): Update.
cp:
	* cp-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
	Redefine.
	* cvt.c (cp_convert_to_pointer, type_promotes_to): Use new hooks.
	* decl.c (finish_enum): Similarly.
	* error.c (dump_type): Similarly.
	* lex.c (cxx_init): Similarly.
	* mangle.c (write_builtin_type): Similarly.
	* typeck.c (comptypes): Similarly.
f:
	* com.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
	Redefine.
	(type_for_mode, type_for_size): Rename.
	(signed_or_unsigned_type, signed_type, truthvalue_conversion,
	unsigned_type):	Use new hooks.
java:
	* Make-lang.in (builtins.o): Update.
	* boehm.c (get_boehm_type_descriptor): Update.
	* builtins.c: Include langhooks.h.
	* decl.c (java_init_decl_processing): Update.
	* java-tree.h (java_type_for_mode, java_type_for_size): New.
	* lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
	Redefine.
	* typeck.c (type_for_mode, type_for_size): Update.
objc:
	* objc-act.c (handle_impent): Update.
	* objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
	Redefine.

From-SVN: r51571
2002-03-29 21:46:27 +00:00
Neil Booth
7ffb4fd2da Makefile.in (attribs.o): Update.
* Makefile.in (attribs.o): Update.
	* attribs.c: Include langhooks.h.
	(decl_attributes): Use langhook.
	* c-decl.c (insert_default_attributes): Rename.
	* c-tree.h (c_insert_default_attributes): New.
	* langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New.
	(LANG_HOOKS_INITIALIZER): Update.
	* langhooks.h (struct lang_hooks): New hook.
	* tree.h (insert_default_attributes): Remove.
ada:
	* misc.c (insert_default_attributes): Remove.
cp:
	* cp-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
	* cp-tree.h (cxx_insert_default_attributes): New.
	* decl.c (insert_default_attributes): Rename.
objc:
	* objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.

From-SVN: r51488
2002-03-27 23:16:17 +00:00
Neil Booth
c9d892a83f c-common.c (c_expand_expr): Fix prototype.
* c-common.c (c_expand_expr): Fix prototype.
	* c-common.h (c_expand_expr): Always declare, update.
	* c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
	* c-objc-common.c (c_objc_common_init): No global hook.
	* expr.c (expand_expr): Use langhook.
	* expr.h (enum expand_modifier): Conditionally declare.
	* langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New.
	(LANG_HOOKS_INITIALIZER): Update.
	* langhooks.c (lhd_expand_expr): New.
	* langhooks.h (struct lang_hooks): New hook.
	* toplev.c (lang_expand_expr_t, lang_expand_expr): Delete.
	(lang_independent_init): Don't default hook.
ada:
	* misc.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
	(gnat_init): Don't set hook.
	(gnat_expand_expr): Fix prototype.
cp:
	* cp-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
	* cp-tree.h (init_cplus_expand): Remove.
	(cxx_expand_expr): New.
	* expr.c (cplus_expand_expr): Rename cxx_expand_expr,
	fix prototype.
	(init_cplus_expand): Remove.
	* lex.c (cxx_init): Don't call init_cplus_expand.
java:
	* expr.c (java_lang_expand_expr): Rename java_expand_expr,
	fix prototype.
	* java-tree.h (java_lang_expand_expr): Similarly.
	* lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
	(java_init): Don't set hook.
objc:
	* objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.

From-SVN: r51462
2002-03-27 18:28:06 +00:00
Neil Booth
4f0ade925d Makefile.in (ggc-common.o): Update.
* Makefile.in (ggc-common.o): Update.
	* c-decl.c (lang_mark_tree): Rename c_mark_tree.
	* c-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
	* c-tree.h (c_mark_tree): New.
	* ggc-common.c: Include langhooks.h.
	(gcc_mark_trees): Use new langhook.
	* ggc-callbacks.c: Delete file.
	* ggc.h (lang_mark_tree): Remove.
	* langhooks-def.h (LANG_HOOKS_MARK_TREE): New.
	(LANG_HOOKS_INITIALIZER): Update.
	* langhooks.h (struct lang_hooks): New hook.
ada:
	* misc.c (LANG_HOOKS_MARK_TREE): Redefine.
	(lang_mark_tree): Make static, rename.
cp:
	* cp-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
	* cp-tree.h (cxx_mark_tree): New.
	* decl.c (lang_mark_tree): Rename cxx_mark_tree.
f:
	* com.c (LANG_HOOKS_MARK_TREE): Redefine.
	(lang_mark_tree): Rename ffe_mark_tree, make static.
java:
	* decl.c (lang_mark_tree): Rename java_mark_tree.
	* java-tree.h (java_mark_tree): New.
	* java-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
objc:
	* objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine.

From-SVN: r51369
2002-03-26 07:16:01 +00:00
Neil Booth
7afff7cfb0 Makefile.in: Update.
* Makefile.in: Update.
	* c-common.c: Include langhooks.h.
	(inline_forbidden_p): Use new hook.
	* diagnostic.c: Include langhooks.h.
	(format_with_decl, announce_function,
	default_print_error_function): Use new hook.
	* dwarf2out.c (dwarf2_name): Use new hook.
	* function.c: Include langhooks.h.
	(init_function_start): Use new hook.
	* langhooks-def.h (lhd_decl_printable_name): New.
	(LANGHOOKS_DECL_PRINTABLE_NAME): New.
	(LANGHOOKS_INITIALIZER): Update.
	* langhooks.c (lhd_decl_printable_name): New.
	* langhooks.h (struct lang_hooks): New hook.
	* toplev.c (decl_name, decl_printable_name): Remove.
	(open_dump_file): Use new hook.
	(process_options): Remove old hook.
	* tree.h (decl_printable_name): Remove.
ada:
	* misc.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
	(gnat_init): Remove old hook.
cp:
	* cp-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
	* cp-tree.h (lang_printable_name): Rename.
	* error.c (lang_decl_name): Use new hook.
	* lex.c (cxx_init): Remove old hook.
	* pt.c (tsubst_expr): Use new hook.
	* tree.c (lang_printable_name): Rename.
f:
	* com.c (lang_printable_name): Rename.
	(LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
	(ffe_init): Don't use old hook.
java:
	* decl.c (start_java_method): Use new hook.
	* lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
	(java_init): Remove old hook.
objc:
	* objc-act.c (objc_init): Remove old hook.
	(objc_printable_name): Export.
	* objc-act.h (objc_printable_name): New.
	* objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.

From-SVN: r51066
2002-03-20 07:58:41 +00:00
Jakub Jelinek
f735a15348 re PR c/5656 (ICE in emit_move_insn, at expr.c:2748, regression from gcc 3.0)
PR c/5656
	* langhooks.h (struct lang_hooks_for_tree_inlining): Add
	convert_parm_for_inlining.
	* c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
	Define.
	* langhooks-def.h: Likewise.
	* objc/objc-lang.c: Likewise.
	* langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
	function.
	* tree-inline.c (initialize_inlined_parameters):
	Call convert_parm_for_inlining lang hook if needed.
	* c-typeck.c (c_convert_parm_for_inlining): New function.
	* c-tree.h (c_convert_parm_for_inlining): Add prototype.

	* gcc.c-torture/compile/20020318-1.c: New test.

From-SVN: r51025
2002-03-19 09:47:14 +01:00
Neil Booth
52dabb6c60 c-common.h (yyparse, [...]): New.
* c-common.h (yyparse, c_common_parse_file): New.
	* c-lang.c: Include c-common.h.
	(LANG_HOOKS_PARSE_FILE): Redefine.
	* c-lex.c: Include c-common.h.
	(yyparse): Rename c_common_parse_file.  Call yyparse.
	* c-parse.in (yyparse): Remove macro.
	* c-tree.h (yyparse_1): Remove.
	* langhooks-def.h (LANG_HOOKS_PARSE_FILE): New.
	(LANG_HOOKS_INITIALIZER): Update.
	* langhooks.h (struct lang_hoooks): New hook parse_file.
	* toplev.c (compile_file): Use parse_file hook.
	* tree.h (yyparse): Remove.
ada:
	* misc.c (LANG_HOOKS_PARSE_FILE): Redefine.
	(yyparse): Rename gnat_parse_file.
cp:
	* cp-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
	* parse.y (yyparse): Remove macro.
f:
	* com.c (LANG_HOOKS_PARSE_FILE): Redefine.
	* com.h (ffe_parse_file): New.
	* parse.c (NAME_OF_STDIN): Remove.
	(yyparse): Rename ffe_parse_file.
java:
	* java-tree.h (java_parse_file): New.
	* jcf-parse.c (yyparse): Rename java_parse_file.
	* lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
objc:
	* objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.

From-SVN: r50926
2002-03-17 20:41:46 +00:00
Kaveh R. Ghazi
2f9834e805 c-common.c (c_tree_code_type, [...]): Delete.
* c-common.c (c_tree_code_type, c_tree_code_length,
	c_tree_code_name, add_c_tree_codes): Delete.
	* c-common.h (add_c_tree_codes): Delete.
	* c-lang.c (tree_code_type, tree_code_length, tree_code_name):
	Define.
	* c-objc-common.c (c_objc_common_init): Don't call
	add_c_tree_codes, instead set lang_unsafe_for_reeval.
	* objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
	objc_tree_code_name, add_objc_tree_codes): Delete.
	(objc_init): Don't call add_objc_tree_codes.
	* objc/objc-lang.c (tree_code_type, tree_code_length,
	tree_code_name): Define.
	* toplev.c (lang_independent_init): Don't set
	tree_code_length[IDENTIFIER_NODE].
	* tree.c (tree_code_type, tree_code_length, tree_code_name):
	Delete definitions, moved to language front-ends.
	* tree.def (IDENTIFIER_NODE): Hardwire the length.
	* tree.h (tree_code_type, tree_code_length, tree_code_name):
	Const-ify.
	(tree_code_length): Change type to unsigned char.

ada:
	* misc.c (gnat_tree_code_type, gnat_tree_code_length,
	gnat_tree_code_name): Delete.
	(tree_code_type, tree_code_length, tree_code_name): Define.
	(gnat_init): Don't try to copy into the various tree_code
	arrays.

ch:
	* decl.c (chill_tree_code_type, chill_tree_code_length,
	chill_tree_code_name): Delete.
	(tree_code_type, tree_code_length, tree_code_name): Define.
	(init_decl_processing): Don't try to copy into the various
	tree_code arrays.

cp:
	* cp-lang.c (tree_code_type, tree_code_length, tree_code_name):
	Define.
	* decl.c (duplicate_decls): Use TREE_CODE_LENGTH, not
	tree_code_length.
	* lex.c (cplus_tree_code_type, cplus_tree_code_length,
	cplus_tree_code_name): Delete.
	(cxx_init): Don't call add_c_tree_codes, instead set
	lang_unsafe_for_reeval.  Don't try to copy into the various
	tree_code arrays.

f:
	* com.c (tree_code_type, tree_code_length, tree_code_name):
	Define.

java:
	* lang.c (java_tree_code_type, java_tree_code_length,
	tree_code_name): Delete.
	(tree_code_type, tree_code_length, tree_code_name): Define.
	(java_init): Don't try to copy into the various tree_code
	arrays.

From-SVN: r50705
2002-03-13 01:42:43 +00:00
Neil Booth
63e1b1c4b0 Makefile.in (integrate.o): Update.
* Makefile.in (integrate.o): Update.
	* c-decl.c (copy_lang_decl): Rename.
	* c-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
	* integrate.c: Include langhooks.h.
	(copy_decl_for_inlining): Update to use langhook.
	* langhooks-def.h (lhd_do_nothing_t,
	LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): New.
	(LANG_HOOKS_INITIALIZER): Update.
	* langhooks.c (lhd_do_nothing_t): New.
	* langhooks.h (struct lang_hooks): Add dup_lang_specific_decl.
	* tree.h (copy_lang_decl): Remove.
ada:
	* misc.c (copy_lang_decl): Remove.
cp:
	* class.c (build_clone): Update.
	* cp-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
	* cp-tree.h (cxx_dup_lang_specific_decl): New.
	* lex.c (copy_lang_decl): Rename cxx_dup_lang_specific_decl.
	(copy_decl): Update.
	* method.c (make_thunk): Update.
f:
	* com.c (copy_lang_decl): Delete.
java:
	* decl.c (copy_lang_decl): Rename java_dup_lang_specific_decl.
	* java-tree.h (java_dup_lang_specific_decl): New.
	* lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
objc:
	* objc-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.

From-SVN: r50122
2002-02-28 07:39:44 +00:00
Joseph Myers
db3acfa547 re PR c/4787 (Different anonymous variables declared but only one allocated when the initialization is the same)
* c-common.def (COMPOUND_LITERAL_EXPR): New.
	* c-common.c (c_expand_expr): Handle COMPOUND_LITERAL_EXPR.
	(c_staticp): New function.
	* c-common.h (COMPOUND_LITERAL_EXPR_DECL): New.
	(c_staticp): Declare.
	* c-typeck.c (default_function_array_conversion, build_unary_op):
	Don't handle CONSTRUCTOR specially.
	(lvalue_p, mark_addressable): Handle COMPOUND_LITERAL_EXPR.
	* c-decl.c (build_compound_literal): New function.
	* c-tree.h (build_compound_literal): Declare.
	* c-parse.in (primary): Use build_compound_literal.
	* c-lang.c (LANG_HOOKS_STATICP): Define.
	* objc/objc-lang.c (LANG_HOOKS_STATICP): Likewise.
	* doc/c-tree.texi: Document COMPOUND_LITERAL_EXPR.
	* doc/extend.texi: Update documentation of compound literals.
	Fixes PR c/4787.

testsuite:
	* gcc.c-torture/execute/20000722-1.x,
	gcc.c-torture/execute/20010123-1.x: Remove.
	* gcc.c-torture/compile/init-3.c: Don't use a compound literal.
	* gcc.dg/c90-complit-1.c, gcc.dg/c99-complit-1.c,
	gcc.dg/c99-complit-2.c: New tests.

From-SVN: r47629
2001-12-04 22:55:40 +00:00
Ziemowit Laski
4e089a757d Make-lang.in: Update copyright.
* objc/Make-lang.in: Update copyright.
        (OBJC_OBJS): Add objc-lang.o.
        (objc-lang.o): New rule.
        * objc/config-lang.in: Fix file description and update
        copyright.
        * objc/objc-act.c: Do not include langhooks.h and
        langhooks-def.h
        (lang_hooks): Move (along with LANG_HOOKS...) to objc-lang.c.
        (objc_post_options): Move to objc-lang.c.
        (objc_init_options): Move to objc-lang.c.
        (objc_init): Make non-static.
        (HASHFUNCTION): Remove macro.
        (hash_func): New function.
        (hash_enter): Replace HASHFUNCTION with hash_func.
        (hash_lookup): Replace HASHFUNCTION with hash_func.
        (maybe_objc_tree_codes): New function.
        (init_objc): Move ObjC tree code initialization to
        maybe_objc_tree_codes().
        * objc/objc-act.h (GCC_OBJC_ACT_H): New include guard.
        (objc_init): New public prototype.
        (objc_decode_option): New public prototype.
        (maybe_add_objc_tree_codes): New public prototype.
        * objc/objc-lang.c: New file.
        (lang_hooks): Moved from objc-act.c.
        (objc_post_options): Moved from objc-act.c.
        (objc_init_options): Moved from objc-act.c.

From-SVN: r47575
2001-12-04 00:25:20 +00:00