Commit Graph

80 Commits

Author SHA1 Message Date
Kaveh R. Ghazi
58f9752a2a c-common.c (vector_types_convertible_p, [...]): Constify.
* c-common.c (vector_types_convertible_p,
	decl_with_nonnull_addr_p, c_promoting_integer_type_p,
	self_promoting_args_p): Constify.
	* c-common.h (has_c_linkage, decl_with_nonnull_addr_p,
	c_promoting_integer_type_p, self_promoting_args_p,
	anon_aggr_type_p, vector_types_convertible_p): Likewise.
	* c-decl.c (anon_aggr_type_p): Likewise.
	* * c-dump.c (dump_stmt): Likewise.
	* c-objc-common.c (has_c_linkage): Likewise.
	* c-tree.h (same_translation_unit_p): Likewise.
	* c-typeck.c (null_pointer_constant_p,
	tagged_types_tu_compatible_p, function_types_compatible_p,
	type_lists_compatible_p, lvalue_or_else, lvalue_p,
	comptypes_internal, struct tagged_tu_seen_cache,
	same_translation_unit_p, alloc_tagged_tu_seen_cache,
	c_size_in_bytes): Likewise.
	* ggc-common.c (compare_ptr_data, hash_descriptor, eq_descriptor,
	hash_ptr, eq_ptr): Likewise.
	* langhooks-def.h (lhd_decl_ok_for_sibcall,
	LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE): Likewise.
	* langhooks.c (lhd_decl_ok_for_sibcall): Likewise.
	* langhooks.h (ok_for_sibcall, omp_privatize_by_reference):
	Likewise.
	* optabs.c (optab_for_tree_code): Likewise.
	* optabs.h (optab_for_tree_code): Likewise.
	* rtl.h (simplify_rtx): Likewise.
	* simplify-rtx.c (simplify_rtx): Likewise.
	* tree-dump.c (queue, queue_and_dump_index, queue_and_dump_type,
	dump_flag, dump_node): Likewise.
	* tree-dump.h (struct dump_info, dump_stmt, queue_and_dump_index,
	queue_and_dump_type, dump_flag): Likewise.
	* tree-flow.h (vect_can_force_dr_alignment_p): Likewise.
	* tree-pass.h (dump_node): Likewise.
	* tree-vectorizer.c (vect_can_force_dr_alignment_p,
	supportable_narrowing_operation): Likewise.
	* tree-vectorizer.h (vect_can_force_dr_alignment_p,
	supportable_narrowing_operation): Likewise.
	* tree-vrp.c (needs_overflow_infinity, supports_overflow_infinity,
	is_negative_overflow_infinity, is_positive_overflow_infinity,
	is_overflow_infinity, vrp_val_is_max, vrp_val_is_min,
	nonnull_arg_p, get_value_range, vrp_operand_equal_p,
	update_value_range, add_equivalence, ssa_name_nonnegative_p,
	ssa_name_nonzero_p, fp_predicate): Likewise.
	* tree.c (auto_var_in_fn_p, empty_body_p): Likewise.
	* tree.h (empty_body_p, auto_var_in_fn_p, ssa_name_nonzero_p,
	ssa_name_nonnegative_p): Likewise.

cp:
	* call.c (sufficient_parms_p): Constify.
	* class.c (same_signature_p): Likewise.
	* cp-gimplify.c (is_invisiref_parm,
	cxx_omp_privatize_by_reference): Likewise.
	* cp-objcp-common.c (has_c_linkage): Likewise.
	* cp-tree.h (NON_THUNK_FUNCTION_CHECK, THUNK_FUNCTION_CHECK,
	sufficient_parms_p, same_signature_p, copy_fn_p, move_fn_p,
	grok_ctor_properties, nothrow_libfn_p, skip_artificial_parms_for,
	num_artificial_parms_for, comp_template_parms,
	template_parameter_pack_p, any_dependent_template_arguments_p,
	any_type_dependent_arguments_p, any_value_dependent_elements_p,
	repo_export_class_p, cxx_omp_privatize_by_reference, pod_type_p,
	zero_init_p, member_p, cp_lvalue_kind,
	builtin_valid_in_constant_expr_p, decl_anon_ns_mem_p,
	varargs_function_p, is_dummy_object, special_function_kind,
	string_conv_p, type_unknown_p, comp_except_specs, compparms,
	comp_cv_qualification, is_bitfield_expr_with_lowered_type,
	unlowered_expr_type, ptr_reasonably_similar, cp_type_readonly,
	cp_has_mutable_p, at_least_as_qualified_p,
	invalid_nonstatic_memfn_p, lvalue_or_else, lvalue_p): Likewise.
	* decl.c (copy_fn_p, move_fn_p, grok_ctor_properties): Likewise.
	* except.c (nothrow_libfn_p): Likewise.
	* method.c (skip_artificial_parms_for, num_artificial_parms_for):
	Likewise.
	* pt.c (comp_template_parms, template_parameter_pack_p,
	any_type_dependent_arguments_p, any_value_dependent_elements_p,
	any_dependent_template_arguments_p): Likewise.
	* repo.c (repo_export_class_p): Likewise.
	* semantics.c (anon_aggr_type_p): Likewise.
	* tree.c (lvalue_p_1, real_lvalue_p, lvalue_p,
	builtin_valid_in_constant_expr_p, decl_anon_ns_mem_p,
	varargs_function_p, member_p, is_dummy_object, pod_type_p,
	zero_init_p, special_function_p): Likewise.
	* typeck.c (comp_array_types, type_unknown_p, comp_except_specs,
	comp_array_types, at_least_as_qualified_p, comp_cv_qualification,
	compparms, invalid_nonstatic_memfn_p,
	is_bitfield_expr_with_lowered_type, unlowered_expr_type,
	string_conv_p, ptr_reasonably_similar, cp_type_readonly,
	cp_has_mutable_p, lvalue_or_else): Likewise.

fortran:
	* trans-openmp.c (gfc_omp_privatize_by_reference): Constify.
	* trans.h (gfc_omp_privatize_by_reference): Likewise.

java:
	* lang.c (java_decl_ok_for_sibcall): Likewise.

From-SVN: r127799
2007-08-25 15:10:40 +00:00
Richard Guenther
18177c7e9b Makefile.in (tree-inline.o): Add $(TARGET_H) and $(INTEGRATE_H) dependencies.
2007-08-24  Richard Guenther  <rguenther@suse.de>

	* Makefile.in (tree-inline.o): Add $(TARGET_H) and $(INTEGRATE_H)
	dependencies.
	* c-objc-common.c (c_cannot_inline_tree_fn): Remove.
	* langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Likewise.
	* tree-inline.c (inlinable_function_p): Fold in common parts of
	the cannot_inline_tree_fn langhook.
	* langhooks-def.h (lhd_tree_inlining_cannot_inline_tree_fn): Remove.
	(LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN): Likewise.
	(LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
	cannot_inline_tree_fn langhook.
	* langhooks.h (struct lang_hooks_for_tree_inlining): Remove
	cannot_inline_tree_fn member.

	cp/
	* tree.c (cp_cannot_inline_tree_fn): Remove.
	* cp-tree.h (cp_cannot_inline_tree_fn): Likewise.
	* cp-objcp-common.h (LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN):
	Remove define.

From-SVN: r127763
2007-08-24 09:44:04 +00:00
Richard Guenther
1d51f40667 c-objc-common.c (c_disregard_inline_limits): Remove.
2007-08-20  Richard Guenther  <rguenther@suse.de>

	* c-objc-common.c (c_disregard_inline_limits): Remove.
	* c-objc-common.h (c_disregard_inline_limits): Likewise.
	* cgraphunit.c (cgraph_process_new_functions): Call
	disregard_inline_limits_p.
	(cgraph_preserve_function_body_p): Likewise.
	* ipa-inline.c (compute_inline_parameters): Likewise.
	* langhooks-def.h (lhd_tree_inlining_disregard_inline_limits):
	Remove.
	(LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS): Remove.
	(LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
	disregard_inline_limits langhook.
	* langhooks.c (lhd_tree_inlining_disregard_inline_limits):
	Remove.
	* langhooks.h (lang_hooks_for_tree_inlining): Remove
	disregard_inline_limits langhook.
	* tree-inline.c (disregard_inline_limits_p): New function.
	* tree-inline.h (disregard_inline_limits_p): Declare.

From-SVN: r127644
2007-08-20 11:37:08 +00:00
Kaveh R. Ghazi
ac7d7749c0 c-common.c (const_strip_array_types): New.
* c-common.c (const_strip_array_types): New.
	* c-common.h (lang_missing_noreturn_ok_p): Delete.
	(const_strip_array_types): New.
	* c-objc-common.c (c_disregard_inline_limits,
	c_warn_unused_global_decl): Constify.
	* c-tree.h (c_disregard_inline_limits, c_warn_unused_global_decl,
	c_vla_type_p, c_incomplete_type_error): Likewise.
	* c-typeck.c (c_incomplete_type_error, c_vla_type_p): Likewise.
	* hooks.c (hook_bool_const_tree_false): New.
	* hooks.h (hook_bool_const_tree_false): Likewise.
	* langhooks-def.h (lhd_warn_unused_global_decl,
	lhd_incomplete_type_error, lhd_expr_size,
	lhd_tree_inlining_disregard_inline_limits,
	lhd_tree_inlining_auto_var_in_fn_p, lhd_tree_dump_type_quals,
	LANG_HOOKS_GENERIC_TYPE_P, LANG_HOOKS_TYPE_MAX_SIZE): Constify.
	* langhooks.c (lhd_warn_unused_global_decl,
	lhd_incomplete_type_error,
	lhd_tree_inlining_disregard_inline_limits,
	lhd_tree_inlining_auto_var_in_fn_p, lhd_tree_dump_type_quals,
	lhd_expr_size): Likewise.
	* langhooks.h (lang_hooks_for_tree_inlining,
	lang_hooks_for_tree_dump, lang_hooks_for_types,
	lang_hooks_for_decls, lang_hooks): Likewise.
	* pointer-set.c (pointer_set_t, pointer_set_create,
	pointer_set_contains, insert_aux, pointer_set_insert,
	pointer_set_traverse, pointer_map_t, pointer_map_create,
	pointer_map_contains, pointer_map_insert, pointer_map_traverse):
	Likewise.
	* pointer-set.h (pointer_set_contains, pointer_set_insert,
	pointer_set_traverse, pointer_map_contains, pointer_map_insert,
	pointer_map_traverse): Likewise.
	* predict.c (assert_is_empty): Likewise.
	* tree-affine.c (free_name_expansion): Likewise.
	* tree-cfg.c (edge_to_cases_cleanup): Likewise.
	* tree.c (size_in_bytes, max_int_size_in_bytes): Likewise.
	* tree.h (size_in_bytes, max_int_size_in_bytes): Likewise.
	
ada:
	* misc.c (gnat_type_max_size): Constify.

cp:
	* cp-objcp-common.c (cxx_warn_unused_global_decl, cp_expr_size):
	Constify.
	* cp-tree.h (local_variable_p, nonstatic_local_decl_p,
	class_tmpl_impl_spec_p, cp_auto_var_in_fn_p, cp_type_quals,
	cxx_incomplete_type_diagnostic, cxx_incomplete_type_error,
	cxx_warn_unused_global_decl, cp_expr_size): Likewise.
	* decl.c (local_variable_p, nonstatic_local_decl_p): Likewise.
	* tree.c (class_tmpl_impl_spec_p, cp_auto_var_in_fn_p): Likewise.
	* typeck.c (cp_type_quals): Likewise.
	* typeck2.c (cxx_incomplete_type_diagnostic,
	cxx_incomplete_type_error): Likewise.

From-SVN: r127560
2007-08-16 14:31:21 +00:00
Nathan Froyd
50926624ca re PR middle-end/25446 (-fpic/-fPIC failure in gcc.dg/vect/vect-ifcvt-9.c)
PR middle-end/25446
	* c-objc-common.c (c_cannot_inline_tree_fn): Check for an
	always_inline attribute on the function decl.

From-SVN: r127163
2007-08-02 14:42:53 +00:00
Nick Clifton
9dcd6f09a3 Change copyright header to refer to version 3 of the GNU General Public License and to point readers at the COPYING3 file and the FSF's license web page.
From-SVN: r126948
2007-07-26 08:37:01 +00:00
Ben Elliston
d9ad786245 * c-objc-common.c (c_types_compatible_p): Fix indentation.
From-SVN: r126285
2007-07-04 08:32:33 +10:00
Manuel López-Ibáñez
dc90f45b24 re PR c/26494 (-pedantic-errors can be overridden by -W*)
2007-02-15  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c/26494
	* doc/invoke.texi (Warning Options): Remove
	-Werror-implicit-function-declaration.
	(Wimplicit-function-declaration): Update description.
	* opts.c (common_handle_option): Move handling of -Werror=* to...
	(enable_warning_as_error): ...here.
	* opts.h (enable_warning_as_error): Declare.
	* c-decl.c (implicit_decl_warning): Unless
	-Wno-implicit-function-declaration is given, emit a pedwarn if
	-std=c99 or emit a warning if -Wimplicit-function-declaration.
	* c.opt (Wimplicit-function-declaration): Replace
	mesg_implicit_function_declaration with
	warn_implicit_function_declaration.
	* c-opts.c (c_common_handle_option):
	-Werror-implicit-function-declaration is exactly equal as
	-Werror=implicit-function-declaration.
	(set_Wimplicit): Replace mesg_implicit_function_declaration with
	warn_implicit_function_declaration.
	(c_common_post_options): -Wimplict-function-declaration is enabled
	by default by -std=c99, otherwise is disabled by default.
	* c-objc-common.c (c_objc_common_init): Remove flawed logic.
testsuite/
	* gcc.dg/Wimplicit-function-declaration-c89.c: New.
	* gcc.dg/Wimplicit-function-declaration-c89-default.c: New.
	* gcc.dg/Wimplicit-function-declaration-c89-pedantic.c: New.
	* gcc.dg/Wimplicit-function-declaration-c99.c: New.
	* gcc.dg/Wimplicit-function-declaration-c99-pedantic.c: New.
	* gcc.dg/Werror-implicit-function-declaration.c: New.

From-SVN: r122017
2007-02-15 22:31:17 +00:00
Mike Stump
c22cacf346 Whitespace fixups
From-SVN: r113893
2006-05-18 22:16:23 +00:00
Mike Stump
52ffd86eb6 Fix up vla, vm and [*] sematics.
PR c/18740
	PR c/7948
	PR c/25802
	* c-tree.h (struct c_arg_info): Add had_vla_unspec.
	(c_vla_unspec_p): Add.
	(c_vla_type_p): Add.
	* c-decl.c (struct c_scope): Add had_vla_unspec.
	(build_array_declarator): Add support for [*].
	(grokdeclarator): Likewise.
	(grokparms): Likewise.
	(get_parm_info): Likewise.
	* c-objc-common.c (c_vla_unspec_p): Likewise.
	* c-objc-common.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Likewise.
	* c-parser.c (c_parser_typeof_specifier): Evaluate arguments to
	typeof when argument is a variably modified type not inside sizeof or alignof.
	(c_parser_direct_declarator_inner): Propagate errors.
	(c_parser_sizeof_expression): Add support for [*].
	* c-typeck.c (c_vla_type_p): Add.
	(composite_type): Add support for vla compositing.
	(comptypes_internal): Add support for vla compatibility.
	(c_expr_sizeof_expr): Evaluate vla arguments.
	* tree.c (variably_modified_type_p): Update comment for [*].

testsuite:
	* gcc.dg/c90-arraydecl-1.c: Update for vla, vm [*] fixups.
	* gcc.dg/vla-4.c: Add.
	* gcc.dg/vla-5.c: Add.
	* gcc.dg/vla-6.c: Add.

From-SVN: r113888
2006-05-18 18:22:12 +00:00
DJ Delorie
d2fcbf6f86 c-objc-common.c (c_cannot_inline_tree_fn): Add warning control to warning calls.
* c-objc-common.c (c_cannot_inline_tree_fn): Add warning control
to warning calls.
* tree-inline.c (inlinable_function_p): Likewise.

From-SVN: r102289
2005-07-22 14:09:37 -04:00
Joseph Myers
dee158440e toplev.c (default_tree_printer): Handle setting location with '+' flag.
2005-07-02  Zack Weinberg  <zack@codesourcery.com>
            Joseph S. Myers  <joseph@codesourcery.com>

	* toplev.c (default_tree_printer): Handle setting location with
	'+' flag.
	* c-objc.common.c (c_tree_printer): Likewise.
	* c-format.c (gcc_diag_flag_specs): Add '+'.
	(gcc_cdiag_char_table): Allow '+' flag for tree formats.
	(format_types_orig): Allow '+' flag for gcc_diag and gcc_cdiag
	formats.
	* c-common.c, c-decl.c, c-objc-common.c, c-pragma.c,
	config/arm/pe.c, config/i386/winnt.c, config/ia64/ia64.c,
	config/mcore/mcore.c, config/sh/symbian.c, config/sol2.c,
	config/v850/v850.c, function.c, stor-layout.c, toplev.c,
	tree-inline.c, tree-optimize.c, tree.c, varasm.c: Use '+' flag
	instead of %J or %H.  Use 'q' flag for quoting.  Avoid '.' at end
	of diagnostics.  Use %q+D not %s for a decl.  Do not pass excess
	format arguments where %J is used without %D.

cp:
	* error.c (location_of): Add comment.
	(locate_error, cp_error_at, cp_warning_at, cp_pedwarn_at): Remove.
	* cp-tree.h (cp_error_at, cp_warning_at, cp_pedwarn_at): Remove.
	* call.c, class.c, decl.c, decl2.c, friend.c, init.c,
	name-lookup.c, parser.c, pt.c, search.c, semantics.c, typeck.c,
	typeck2.c: Use '+' flag instead of %J, cp_error_at, cp_warning_at
	or cp_pedwarn_at.  Mark up some diagnostic strings with N_.

java:
	* class.c, decl.c, expr.c: Use '+' flag instead of %J.  Use 'q'
	flag for quoting.

objc:
	* objc-act.c: Use '+' flag instead of %J.  Use 'q' flag for
	quoting.

testsuite:
	* gcc.dg/format/gcc_diag-1.c: Update.

From-SVN: r101532
2005-07-02 11:55:32 +01:00
Zack Weinberg
39ce81c9c5 pretty-print.h (PP_NL_ARGMAX): New.
gcc:
	* pretty-print.h (PP_NL_ARGMAX): New.
	(text_info): Add locus.
	(struct chunk_info): New.
	(output_buffer): Add formatted_obstack, chunk_obstack, and
	cur_chunk_array. Change obstack to a pointer.
	(pp_wrapping_mode_t, pp_wrapping_mode, pp_set_verbatim_wrapping): New.
	(struct pretty_print_info): Replace ideal_maximum_length and
	prefixing_rule with wrapping.
	(pp_line_cutoff, pp_prefixing_rule): Update to match.
	Update prototypes and wrapper macros throughout.
	* pretty-print.c (pp_formatted_text_data, pp_append_r)
	(pp_base_clear_output_area, pp_construct, pp_base_formatted_text)
	(pp_base_last_position_in_text, pp_base_newline, pp_base_character):
	Update for changes to pp structure.
	(pp_base_prepare_to_format, pp_base_format_text): Delete.
	(pp_base_format, pp_base_output_formatted_text): New functions.
	(pp_base_format_verbatim): Use pp_set_verbatim_wrapping.
	(pp_verbatim): Clear text.locus.
	(pp_printf): Likewise.  Use pp_format and pp_output_formatted_text.
	* c-objc-common.c (c_tree_printer): Update function signature.
	* diagnostic.c (diagnostic_initialize): Update for changes to
	pp structure.
	(diagnostic_report_diagnostic): Call pp_format and then
	pp_output_formatted_text.
	(verbatim): Clear text.locus.
	* diagnostic.h (diagnostic_prefixing_rule, diagnostic_line_cutoff):
	Update for changes to pp structure.

	* c-lang.c: No need to include c-pretty-print.h.
	* Makefile.in: Remove bogus line containing only a tab.
	(c-lang.o): Update dependencies.
	* toplev.c (announce_function): Don't use verbatim.
	(default_tree_printer): Update signature.

	* objc/objc-lang.c: No need to include c-pretty-print.h.
	* objc/Make-lang.in: Update dependencies.

gcc/cp:
	* cp-lang.c: No need to include cxx-pretty-print.h.
	* error.c (cp_printer): Update signature.  No need to process
	flags.
	(print_instantiation_partial_context): Output last newline
	with pp_base_newline.
	* Make-lang.in: Update dependencies.

gcc/objcp:
	* objcp-lang.c: No need to include cxx-pretty-print.h.
	* Make-lang.in: Update dependencies.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>

From-SVN: r101481
2005-06-30 23:09:06 +00:00
Kelley Cook
366ccddb2b Update FSF address.
From-SVN: r101317
2005-06-25 02:02:01 +00:00
Daniel Berlin
f991abd12d c-objc-common.c (c_tree_printer): Check flag before hashtable.
2005-05-30  Daniel Berlin  <dberlin@dberlin.org>

	* c-objc-common.c (c_tree_printer): Check flag before hashtable.
	Use DECL_DEBUG_EXPR and SET_DECL_DEBUG_EXPR.
	* dwarf2out.c (dwarf2out_var_location): Ditto.
	* toplev.c (default_tree_printer): Ditto.
	* tree-outof-ssa.c (create_temp): Ditto.
	* tree-sra.c (instantiate_element): Ditto.
	* var-tracking.c (track_expr_p): Ditto.
	* tree.c (struct tree_map): New structure.
	(debug_expr_for_decl): New.
	(tree_map_eq): New function.
	(tree_map_hash): Ditto.
	(tree_map_marked_p): Ditto.
	(print_debug_expr_statistics): Ditto.
	(decl_debug_expr_lookup): Ditto.
	(decl_debug_expr_insert): Ditto.
	(dump_tree_statistics): Dump debug_expr hashtable stats.
	* tree.h (DECL_DEBUG_EXPR): Change
	(SET_DECL_DEBUG_EXPR): Add.

From-SVN: r100417
2005-06-01 00:39:49 +00:00
Ian Lance Taylor
934790cc67 c-common.def (EXPR_STMT): Remove, moved to C++ frontend.
./	* c-common.def (EXPR_STMT): Remove, moved to C++ frontend.
	* c-common.h (EXPR_STMT_EXPR): Don't define.
	(c_common_stmt_codes): Don't define.
	* c-dump.c (c_dump_tree): Remove EXPR_STMT case.
	* c-gimplify.c (gimplify_expr_stmt): Remove.
	(c_gimplify_expr): Remove EXPR_STMT case.
	* c-objc-common.c (c_objc_common_init): Remove stmt_codes and call
	to INIT_STATEMENT_CODES.
	* c-pretty-print.c (pp_c_statement): Just call dump_generic_node.
cp/
	* cp-tree.def: Add EXPR_STMT.
	* cp-tree.h (cp_stmt_codes): Add EXPR_STMT.
	(EXPR_STMT_EXPR): Define.
	* cp-gimplify.c: Include "flags.h".
	(gimplify_expr_stmt): New static function.
	(cp_gimplify_expr): Handle EXPR_STMT.
	* cxx-pretty-print.c (pp_cxx_statement): Use pp_cxx_expression
	rather than pp_expression.
	(pp_cxx_statement): Handle EXPR_STMT.
	* dump.c (cp_dump_tree): Handle EXPR_STMT.
	* lex.c (cxx_init): Don't use c_common_stmt_codes in stmt_codes
	initializer.

From-SVN: r98731
2005-04-25 19:03:41 +00:00
DJ Delorie
d4ee4d2525 diagnostic.c (warning): Accept parameter to classify warning option.
* diagnostic.c (warning): Accept parameter to classify warning option.
(warning0): New, for when a pointer to an error() like function is needed.
* errors.c (warning): Likewise.
* errors.h (warning, warning0): Adjust prototypes.
* toplev.h (warning, warning0): Likewise.

* attribs.c, builtins.c, c-common.c, c-decl.c, c-format.c,
c-gimplify.c, c-lex.c, c-objc-common.c, c-opts.c, c-parser.c,
c-pragma.c, c-typeck.c, calls.c, cgraph.c, coverage.c, emit-rtl.c,
fold-const.c, fortran/trans-decl.c, function.c, gcse.c,
genautomata.c, haifa-sched.c, opts.c, passes.c, regclass.c,
reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
tree-dump.c, tree-inline.c, tree-mudflap.c, tree-optimize.c,
tree-ssa.c, tree.c, varasm.c: Adjust warning() callers.

* config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
config/avr/avr.c, config/bfin/bfin.c, config/c4x/c4x-c.c,
config/c4x/c4x.c, config/cris/cris.c, config/darwin-c.c,
config/darwin.c, config/darwin.h, config/h8300/h8300.c,
config/i386/cygming.h, config/i386/djgpp.h, config/i386/i386.c,
config/i386/winnt.c, config/ia64/ia64-c.c, config/ia64/ia64.c,
config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c,
config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.c,
config/mmix/mmix.c, config/ns32k/ns32k.c, config/pa/pa-hpux11.h,
config/pa/pa.c, config/rs6000/aix43.h, config/rs6000/aix51.h,
config/rs6000/aix52.h, config/rs6000/darwin.h,
config/rs6000/rs6000-c.c, config/rs6000/rs6000.c,
config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
config/sh/symbian.c, config/sol2-c.c, config/sol2.c,
config/stormy16/stormy16.c, config/v850/v850-c.c,
config/v850/v850.c, config/xtensa/xtensa.c: Adjust warning()
callers.

* ada/misc.c: Adjust warning() callers.

* cp/call.c, cp/class.c, cp/cvt.c, cp/decl.c, cp/decl2.c,
cp/except.c, cp/friend.c, cp/init.c, cp/lex.c, cp/mangle.c,
cp/method.c, cp/name-lookup.c, cp/parser.c, cp/repo.c, cp/rtti.c,
cp/tree.c, cp/typeck.c, cp/typeck2.c: Adjust warning() callers.

* fortran/trans-decl.c: Adjust warning() callers.

* java/class.c, java/decl.c, java/expr.c, java/jcf-io.c,
java/jcf-parse.c, java/jv-scan.c, java/parse.y: Adjust warning()
callers.

* objc/objc-act.c: Adjust warning() callers.

* treelang/parse.y: Adjust warning() callers.

From-SVN: r98633
2005-04-23 17:29:07 -04:00
Joseph Myers
8549882418 c-common.c (c_common_truthvalue_conversion): Adjust comment.
* c-common.c (c_common_truthvalue_conversion): Adjust comment.
	Call c_common_truthvalue_conversion rather than
	lang_hooks.truthvalue_conversion.
	* c-convert.c (convert): Call c_objc_common_truthvalue_conversion.
	* c-objc-common.c (c_objc_common_truthvalue_conversion): Move to
	c-typeck.c.
	* c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Change to
	c_common_truthvalue_conversion.
	* c-parser.c (c_parser_paren_condition, c_parser_for_statement,
	c_parser_conditional_expression, c_parser_binary_expression): Call
	c_objc_common_truthvalue_conversion.
	* c-typeck.c (build_unary_op): Call
	c_objc_common_truthvalue_conversion.
	(build_conditional_expr): Do not call
	lang_hooks.truthvalue_conversion.
	(build_binary_op): Call c_common_truthvalue_conversion.
	(c_objc_common_truthvalue_conversion): Moved from
	c-objc-common.c.  Call default_function_array_conversion instead
	of default_conversion.

objc:
	* objc-act.c (next_sjlj_build_enter_and_setjmp,
	next_sjlj_build_catch_list, next_sjlj_build_try_catch_finally):
	Call c_common_truthvalue_conversion.

From-SVN: r96917
2005-03-23 01:35:06 +00:00
Kazu Hirata
f93089d26f c-common.def, [...]: Update copyright.
* c-common.def, c-dump.c, c-gimplify.c, c-objc-common.c,
	cfgexpand.c, dbxout.c, function.h, opts.c, tree-flow-inline.h,
	tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-tailcall.c,
	config/avr/avr.md, config/cris/aout.h, config/cris/cris.h,
	config/mips/iris6.h, config/sh/sh.c: Update copyright.

From-SVN: r94328
2005-01-27 18:22:35 +00:00
Richard Henderson
dad2a933ba re PR c++/14329 ([4.1 only] badly formatted warnings for SRA replacements used uninitialized)
PR tree-opt/14329
        * tree.h (struct tree_decl): Add debug_expr_is_from.
        (DECL_DEBUG_EXPR_IS_FROM): New.
        (DECL_DEBUG_EXPR): Rename from DECL_DEBUG_ALIAS_OF.
        * dwarf2out.c (dwarf2out_var_location): Update to match.
        * tree-outof-ssa.c (create_temp): Likewise.
        * var-tracking.c (track_expr_p): Likewise.
        * tree-sra.c (instantiate_element): Set DECL_DEBUG_EXPR.
        * c-objc-common.c (c_tree_printer) <'D'>: Handle DECL_DEBUG_EXPR.
        * toplev.c (default_tree_printer): Likewise.

From-SVN: r94317
2005-01-27 01:28:45 -08:00
Richard Henderson
4744afba0f re PR middle-end/16417 (crappy code (gcc.c-torture/compile/20020210-1.c) in arguments causes ICE)
PR middle-end/16417
        * c-decl.c (store_parm_decls): Clarify get_pending_sizes insertion
        comment.
        * c-objc-common.c (c_cannot_inline_tree_fn): Remove pending sizes
        checks.
        * c-tree.h (struct lang_decl): Remove pending_sizes.
        * function.c: Include tree-gimple.h
        (assign_parm_setup_reg): Remove callee-copies code.
        (gimplify_parm_type, gimplify_parameters): New functions.
        (expand_pending_sizes): Remove.
        (expand_function_start): Don't call it.
        * gimplify.c (gimplify_expr): Examine DECL_VALUE_EXPR for PARM_DECL.
        (gimplify_body): Add do_parms argument.  Use gimplify_parameters.
        (gimplify_function_tree): Setup cfun.  Update gimplify_body call.
        * tree-gimple.h (gimplify_body): Update decl.
        * tree-inline.c (initialize_inlined_parameters): Update gimplify_body
        call.
        * tree.h (gimplify_parameters): Declare.
        * Makefile.in (function.o): Depend on TREE_GIMPLE_H.

From-SVN: r92373
2004-12-18 20:42:14 -08:00
Ziemowit Laski
65958285a0 c-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Remove.
[gcc/ChangeLog]
2004-11-02  Ziemowit Laski  <zlaski@apple.com>

	* c-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Remove.
	(c_types_compatible_p): Move function definition...
	* c-objc-common.c (c_types_compatible_p): ...here.
	* c-objc-common.h (LANG_HOOKS_TYPES_COMPATIBLE_P): Moved here from
	c-lang.c.

[gcc/cp/ChangeLog]
2004-11-02  Ziemowit Laski  <zlaski@apple.com>

	* cp-lang.c (cxx_types_compatible_p): Remove prototype and definition.
	(LANG_HOOKS_TYPES_COMPATIBLE_P): Move to cp-objcp-common.h.
	* cp-objcp-common.c (cxx_types_compatible_p): Moved definition here
	from cp-lang.c.
	* cp-objcp-common.h (cxx_types_compatible_p): Moved prototype here
	from cp-lang.c.
	(LANG_HOOKS_TYPES_COMPATIBLE_P): Moved here from cp-lang.c.

From-SVN: r89997
2004-11-02 20:29:21 +00:00
Joseph Myers
3f75a25471 c-aux-info.c, [...]: Follow code formatting conventions.
* c-aux-info.c, c-common.c, c-common.h, c-cppbuiltin.c, c-decl.c,
	c-format.c, c-incpath.c, c-lex.c, c-objc-common.c, c-opts.c,
	c-parse.in, c-pch.c, c-ppoutput.c, c-pragma.c, c-typeck.c: Follow
	code formatting conventions.

From-SVN: r88462
2004-10-03 21:53:05 +01:00
Joseph Myers
7848dfcac1 c-objc-common.c (c_tree_printer): Correct description of %E.
* c-objc-common.c (c_tree_printer): Correct description of %E.
	Don't fall through after printing an expression.

testsuite:
	* gcc.dg/20040920-1.c: Update expected message text.

From-SVN: r88431
2004-10-02 20:15:45 +01:00
Daniel Berlin
f0c721ad7c c-typeck.c (build_function_call): Give name of object we are attempting to call in error message.
2004-09-21  Daniel Berlin <dberlin@dberlin.org>

	* c-typeck.c (build_function_call): Give name of object
	we are attempting to call in error message.
	* c-objc-common.c (c_tree_printer): Call pp_expression,
	not return false, for 'E' case.

From-SVN: r87809
2004-09-21 15:42:44 +00:00
Joseph Myers
bda6743181 c-common.c, [...]: Use %q, %< and %> for quoting in diagnostics.
* c-common.c, c-decl.c, c-lex.c, c-objc-common.c, c-opts.c,
	c-parse.in, c-pragma.c, c-typeck.c: Use %q, %< and %> for quoting
	in diagnostics.  Use %' for English apostrophes.
	* c-tree.h (ATTRIBUTE_GCC_CDIAG): Define.
	(pedwarn_c90, pedwarn_c99): Use it.
	* c-decl.c (lookup_label): Quote label name in diagnostic.
	* c-parse.in (yyprint): Use ' instead of ` for left quote.
	* c-typeck.c (warn_for_assignment): Likewise.

testsuite:
	* g++.dg/warn/Wswitch-1.C, g++.dg/warn/Wswitch-2.C,
	gcc.dg/Wswitch-2.c, gcc.dg/Wswitch-enum.c, gcc.dg/Wswitch.c,
	gcc.dg/declspec-9.c, gcc.dg/declspec-10.c, gcc.dg/declspec-11.c,
	gcc.dg/m-un-2.c, gcc.dg/noreturn-1.c, gcc.dg/wtr-conversion-1.c:
	Update expected messages.

From-SVN: r87413
2004-09-13 00:53:29 +01:00
Nathan Sidwell
366de0ce7d c-aux-info.c (gen_type): Use gcc_assert or gcc_unreachable.
* c-aux-info.c (gen_type): Use gcc_assert or gcc_unreachable.
	* c-common.c (c_type_hash, c_common_nodes_and_builtins,
	c_expand_expr, boolean_increment, nonnull_check_p,
	check_function_arguments_recurse, fold_offsetof_1): Likewise.
	* c-cppbuiltin.c (define__GNUC__, builtin_define_stdint_macros,
	builtin_define_type_max): Likewise.
	* c-decl.c (bind, pop_scope, merge_decls, pushdecl_top_level,
	implicit_decl_warning, builtin_function, build_compound_literal,
	complete_array_type, grokdeclarator, get_parm_info,
	start_function, store_parm_decls_oldstyle,
	c_write_global_declarations): Likewise.
	* c-format.c (get_constant, decode_format_attr,
	maybe_read_dollar_number, get_flag_spec, check_format_arg,
	check_format_types, format_type_warning,
	find_char_info_specifier_index, init_dynamic_asm_fprintf_info,
	init_dynamic_diag_info, handle_format_attribute): Likewise.
	* c-gimplify.c (push_context, pop_context, finish_bc_block):
	* c-lex.c (c_lex_with_flags, lex_string): Likewise.
	* c-objc-common.c (c_tree_printer): Likewise.
	* c-pch.c (pch_init): Likewise.
	* c-pragma.c (maybe_apply_pragma_weak): Likewise.
	* c-pretty-print.c (pp_c_tree_decl_identifier): Likewise.
	* c-typeck.c (c_incomplete_type_error, composite_type,
	common_pointer_type, common_type, same_translation_unit_p,
	tagged_types_tu_compatible_p, finish_init, pop_init_level,
	set_designator, set_nonincremental_init_from_string,
	process_init_element, c_finish_if_stmt): Likewise.
	* caller-save.c (init_caller_save, save_call_clobbered_regs,
	insert_restore, insert_save, insert_one_insn): Likewise.
	* calls.c (emit_call_1, compute_argument_block_size,
	precompute_arguments, expand_call, emit_library_call_value_1,
	store_one_arg): Likewise.

From-SVN: r87140
2004-09-07 10:19:00 +00:00
Ziemowit Laski
9a4d6480b8 Makefile.in (C_PRETTY_PRINT_H): Add c-pretty-print.h.
[gcc/ChangeLog]
2004-08-15  Ziemowit Laski  <zlaski@apple.com>

       * Makefile.in (C_PRETTY_PRINT_H): Add c-pretty-print.h.
       (c-lang.o): Depend on c-objc-common.h.
       (c-objc-common.o): Depend on $(C_PRETTY_PRINT_H) and
       c-objc-common.h; remove duplicate $(C_TREE_H) dependency.
       * c-lang.c: Include c-objc-common.h.
       (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
       LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
       LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
       LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
       LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
       LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
       LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
       LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
       LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
       LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
       LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
       LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
       LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
       LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
       LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
       LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
       LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
       LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
       LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
       LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
       LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
       LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
       LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
       LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
       Move to c-objc-common.h.
       * c-objc-common.c: Include c-objc-common.h.
       * c-objc-common.h: New file.

[gcc/objc/ChangeLog]
2004-08-15  Ziemowit Laski  <zlaski@apple.com>

       * Make-lang.in (objc/objc-lang.o): Depend on $(C_PRETTY_PRINT_H),
       $(DIAGNOSTIC_H), c-objc-common.h and gtype-objc.h, but not on toplev.h.
       (objc/objc-parse.o): Do not depend on gtype-objc.h.
       * objc-act.c: Do not include gtype-objc.h.
       (finish_file): Rename to objc_finish_file().
       * objc-act.h (finish_file): Update copyright notice; remove prototype.
       * objc-lang.c: Update copyright notice; include diagnostic.h,
       c-objc-common.h, c-pretty-print.h and gtype-objc.h; do not include
       toplev.h.
       (finish_file): New hook routine.
       (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
       LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
       LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
       LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
       LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
       LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
       LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
       LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
       LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
       LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
       LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
       LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
       LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
       LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
       LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
       LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
       LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
       LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
       LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
       LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
       LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
       LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
       LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
       LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
       Move to c-objc-common.h.

From-SVN: r86037
2004-08-15 21:47:32 +00:00
Bernardo Innocenti
5d038c4cb1 bitmap.c: Use type-safe memory allocation macros from libiberty.
* bitmap.c: Use type-safe memory allocation macros from libiberty.
	* c-common.c: Likewise.
	* c-decl.c: Likewise.
	* c-lang.c: Likewise.
	* c-lex.c: Likewise.
	* c-opts.c: Likewise.
	* c-parse.in: Likewise.
	* c-typeck.c: Likewise.
	* genconditions.c: Likewise.
	* gengtype-lex.l: Likewise.
	* gengtype-yacc.y: Likewise.
	* gengtype.c: Likewise.
	* genmodes.c: Likewise.
	* gensupport.c: Likewise.
	* read-rtl.c: Likewise.
	* read-rtl.c (read_constants): Use INSERT instead of TRUE in call to
	htab_find_slot().

From-SVN: r85163
2004-07-25 22:43:23 +02:00
Zack Weinberg
36c1b0def4 c-decl.c (static_ctors, [...]): Make static.
* c-decl.c (static_ctors, static_dtors): Make static.
	(pop_file_scope): Call c_common_write_pch and
	cgraph_finalize_compilation_unit here.
	(build_cdtor): Moved here from c-objc-common.c; simplify.
	(c_write_global_declarations_1): Clarify comment.
	(c_write_global_declarations): Close the external scope before
	doing anything else.  Call build_cdtor, cgraph_optimize, and
	mudflap_finish_file here.
	* c-lang.c (finish_file): Don't call c_objc_common_finish_file.
	Clarify comment.
	* c-objc-common.c: No need to include cgraph.h.
	(build_cdtor): Moved to c-decl.c.
	(c_objc_common_finish_file): Delete.
	* c-tree.h: Update to match.
	* objc/objc-act.c (finish_file): Don't call c_objc_common_finish_file.
	(generate_static_references): Set TREE_USED before calling finish_decl.
	Eliminate unnecessary dummy declaration.  Call rest_of_decl_compilation
	on the static_instances_decl.

From-SVN: r84307
2004-07-08 19:50:17 +00:00
Joseph Myers
ede1a38729 re PR c/1027 (slightly misleading printf format warning)
PR c/1027
	* c-lang.c (c_initialize_diagnostics): Move from here ...
	* c-objc-common.c: ... to here.  Include "c-pretty-print.h".
	(c_tree_printer): Use pretty-printer to format %T.
	* c-pretty-print.c (pp_c_specifier_qualifier_list): Include space
	before '*' if not C++.
	(pp_c_direct_abstract_declarator): Don't try to print array upper
	bound for flexible array members.
	* c-tree.h: Include "diagnostic.h".
	(c_initialize_diagnostics): Declare.
	* objc/objc-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Define.
	* c-format.c (format_type_warning): New function.  Improve
	diagnostics for incorrect format argument types.
	(check_format_types): Use it.  Add two parameters.  Use the
	TYPE_MAIN_VARIANT of wanted_type.
	(check_format_info_main): Pass new parameters to
	check_format_types.
	(struct format_wanted_type): Update comment.

testsuite:
	* gcc.dg/Wswitch-enum.c, gcc.dg/Wswitch.c,
	gcc.dg/format/branch-1.c, gcc.dg/format/diag-1.c,
	gcc.dg/format/multattr-3.c, gcc.dg/format/xopen-1.c: Update
	expected warning text.
	* gcc.dg/format/diag-2.c: New test.

From-SVN: r83965
2004-07-01 09:52:33 +01:00
Richard Henderson
c9b9aa64e9 cgraph.h (cgraph_build_static_cdtor): Declare.
* cgraph.h (cgraph_build_static_cdtor): Declare.
        * cgraphunit.c (cgraph_build_static_cdtor): New.
        * c-objc-common.c (build_cdtor): Use it.
        * coverage.c (create_coverage): Likewise.
        * libfuncs.h (LTI_gcov_init, gcov_init_libfunc): Remove.
        * optabs.c (init_optabs): Don't set gcov_init_libfunc.
java/
        * class.c (registerClass_libfunc): Remove.
        (init_class_processing): Don't set it.
        (emit_register_classes): Take list_p parameter.  Fill it in
        with _Jv_RegisterClass calls.
        * decl.c (java_init_decl_processing): Don't call
        init_resource_processing.
        * jcf-parse.c (java_emit_static_constructor): New.
        (java_parse_file): Call it.
        * resource.c (registerResource_libfunc): Remove.
        (init_resource_processing): Remove.
        (write_resource_constructor): Take list_p parameter.  Fill it in
        with _Jv_RegisterResource calls.
        * java-tree.h: Update prototypes.

From-SVN: r83958
2004-07-01 00:51:12 -07:00
Zack Weinberg
84b8b0e04d c-common.h (has_c_linkage): New interface.
* c-common.h (has_c_linkage): New interface.
	* c-cppbuiltin.c: Include target.h.
	(c_cpp_builtins): Define __PRAGMA_REDEFINE_EXTNAME and
	__PRAGMA_EXTERN_PREFIX when appropriate.
	* c-pragma.c: Include target.h.
	Document clarified semantics of symbol-renaming #pragmas.
	(handle_pragma_redefine_extname, handle_pragma_extern_prefix)
	(maybe_apply_renaming_pragma): Rewrite according to clarified
	semantics.  Always recognize, but do not necessarily execute.
	(init_pragma): Unconditionally register symbol-renaming pragmas.
	* system.h: Poison HANDLE_PRAGMA_REDEFINE_EXTNAME
	and HANDLE_PRAGMA_EXTERN_PREFIX.
	* target.h (struct gcc_target): Add handle_pragma_redefine_extname
	and handle_pragma_extern_prefix flags.
	* target-def.h: Add defaults for TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME
	and TARGET_HANDLE_PRAGMA_EXTERN_PREFIX.
	* Makefile.in (c-pragma.o, c-cppbuiltin.o): Update dependencies.
	* config/sol2.h: Define TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME,
	not HANDLE_PRAGMA_REDEFINE_EXTNAME.
	(TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_REDEFINE_EXTNAME.
	(TRANSFER_FROM_TRAMPOLINE): Prototype mprotect.
	* config/alpha/osf.h: Define TARGET_HANDLE_PRAGMA_EXTERN_PREFIX,
	not HANDLE_PRAGMA_EXTERN_PREFIX.
	(TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_EXTERN_PREFIX.
	* doc/extend.texi (Solaris Pragmas, Tru64 Pragmas): Combine
	into one section "Symbol-Renaming Pragmas"; clarify; document
	adjusted semantics.

	* builtins.c (expand_builtin): Do not issue error for a builtin
	with no special case code and no DECL_ASSEMBLER_NAME; just do the
	library call.
	* c-decl.c (builtin_function): Don't call make_decl_rtl.
	* c-objc-common.c (has_c_linkage): Stub implementation.
	* cgraphunit.c (cgraph_expand_function)
	(cgraph_remove_unreachable_nodes): Don't clear DECL_ARGUMENTS.

cp:
	* cp-lang.c (has_c_linkage): Implement.

	* cp-tree.h (set_mangled_name_for_decl): Don't prototype.
	* decl.c (duplicate_decls): Use COPY_DECL_RTL.
	(builtin_function_1): Don't call make_decl_rtl.
	(build_cp_library_fn): Don't call set_mangled_name_for_decl.
	(grokvardecl): Don't call mangle_decl.
	* except.c (nothrow_libfn_p): Look at DECL_NAME, not
	DECL_ASSEMBLER_NAME.
	* method.c (set_mangled_name_for_decl): Delete.
	* name-lookup.c (pushdecl): When a local extern shadows a
	file-scope declaration of the same object, give both DECLs the
	same DECL_UID.
	* typeck.c (cxx_mark_addressable): Don't set TREE_ADDRESSABLE
	on DECL_ASSEMBLER_NAME.

testsuite:
	* g++.dg/expr/enum1.C, g++.dg/opt/const3.C: Declare abort with
	extern "C".
	* g++.dg/other/pragma-re-1.C: Add comments.

From-SVN: r83405
2004-06-20 08:34:54 +00:00
Richard Henderson
325c369115 c-common.c (lang_gimplify_stmt): Remove next_p argument.
* c-common.c (lang_gimplify_stmt): Remove next_p argument.
	(if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then,
	c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt,
	c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c.
	(finish_fname_decls, fname_decl): Use statement_lists.
	(c_expand_expr_stmt): Don't set last_expr_type.
	(c_type_hash): Fix indentation.
	(c_safe_from_p): Don't follow TREE_CHAIN.
	(c_tree_chain_matters_p): Remove.
	* c-common.def (SCOPE_STMT): Remove.
	(CLEANUP_STMT): Redefine to contain its own body.
	* c-common.h (struct stmt_tree_s): Remove x_last_stmt,
	x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack.
	Add x_cur_stmt_list.
	(last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove.
	(cur_stmt_list): New.
	(STATEMENT_LIST_STMT_EXPR): New.
	(SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P,
	SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove.
	(CLEANUP_BODY): New.
	(CLEANUP_DECL): Move to operand 2.
	(c_common_stmt_codes): Remove SCOPE_STMT.
	(COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove.
	* c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove.
	(c_push_function_context, c_pop_function_context): Don't save it.
	(finish_decl): Set TREE_USED on the decl for a cleanup.
	Use push_cleanup.
	(store_parm_decls): Use statement lists.
	(finish_function): Remove compstmt rule workaround.  Use statement
	lists.  Call finish_fname_decls after finalizing the body.
	(c_begin_compound_stmt): Move to c-typeck.c.
	* c-dump.c (c_dump_tree): Remove SCOPE_STMT.
	* c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New.
	(c_genericize): Invoke them.
	(c_gimplify_stmt): Don't look through TREE_CHAIN.  Kill SCOPE_STMT.
	(c_build_bind_expr): Export.
	(gimplify_block, gimplify_cleanup): Remove.
	(gimplify_condition): Use gimplify_stmt.
	(gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack.
	(gimplify_if_stmt): Remove recursion hack.
	(c_gimplify_expr): Remove STMT_EXPR handling.
	(stmt_expr_last_stmt, gimplify_stmt_expr): Remove.
	(is_last_stmt_of_scope): Remove.
	* c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
	* c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt,
	c_end_compound_stmt.
	* c-objc-common.c (build_cdtor): Likewise.
	* c-parse.in (primary): Use c_finish_stmt_expr.
	(push_scope, pop_scope): Remove.
	(c99_block_start, compstmt_start): Use c_begin_compound_stmt.
	(c99_block_end, compstmt): Use c_end_compound_stmt.
	(c99_block_lineno_labeled_stmt): Likewise.
	(compstmt_primary_start): Use c_begin_stmt_expr.
	(simple_if, select_or_iter_stmt): Update calls to stmt builders.
	(do_stmt_start): Fill in body directly.
	(lineno_stmt): Avoid setting lineno on constants.
	* c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST.
	Remove SCOPE_STMT.
	* c-semantics.c (begin_stmt_tree): Remove.
	(push_stmt_list, re_push_stmt_list, pop_stmt_list): New.
	(add_stmt): Use statement lists.
	(add_scope_stmt, finish_stmt_tree): Remove.
	(push_cleanup): New.
	* c-tree.h: Move some decls from c-common.h.
	* c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists.
	(do_case, c_finish_case): Likewise.
	(c_finish_then): Take body for then as argument.
	(c_finish_else): Similarly.
	(c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
	c_finish_for_stmt_incr, c_finish_for_stmt): New.
	(c_begin_stmt_expr, c_finish_stmt_expr): New.
	(c_begin_compound_stmt): Do scope management.
	(c_end_compound_stmt): New.
	* fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR.
	* gimplify.c (voidify_wrapper_expr): Accept temporary argument.
	Look through exception handling constructs.
	(gimplify_bind_expr): Accept temporary argument.
	(gimplify_target_expr): Special case BIND_EXPR bodies.
	(gimplify_expr): Handle fallback == fb_none like a statement.
	* langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill.
	* langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove.
	* langhooks.h (tree_chain_matters_p): Remove.
	* stub-objc.c (objc_clear_super_receiver): New.
	* tree-gimple.h (voidify_wrapper_expr): Update decl.
	(append_to_statement_list, append_to_statement_list_force): Move
	to tree-iterator.h.
	* tree-inline.c (expand_call_inline): Update call.
	(clone_body): Use statement lists.
	(walk_tree): Don't check tree_chain_matters_p.
	(copy_tree_r): Likewise.
	* tree-iterator.c (alloc_stmt_list): Clear lang bits.
	(tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly.
	* tree-iterator.h (append_to_statement_list,
	append_to_statement_list_force): Moved from tree-gimple.h.
	* tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump.
	* objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt.
	(objc_enter_block): Likewise.
	(objc_exit_block): Use c_end_compound_stmt.
	(objc_build_try_enter_fragment): Add #error and comment for
	rewriting for OBJCPLUS.
	(objc_build_extract_fragment, objc_build_try_epilogue,
	objc_build_catch_stmt, objc_build_finally_prologue,
	objc_build_finally_epilogue): Update for C statement builders.
	* objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P):
	Remove.
cp/
	* call.c (initialize_reference): Don't build CLEANUP_STMT here.
	* cp-gimplify.c (cp_gimplify_stmt): Remove next_p argument.
	(genericize_try_block): Use gimplify_stmt.
	(genericize_catch_block, genericize_eh_spec_block): Likewise.
	(cp_gimplify_init_expr): Remove STMT_EXPR special case.
	(gimplify_must_not_throw_expr): Update voidify_wrapper_expr call.
	* cp-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
	(cp_tree_chain_matters_p): Remove.
	* cp-tree.h (COMPOUND_STMT_TRY_BLOCK): New.
	(COMPOUND_STMT_BODY_BLOCK): New.
	(STATEMENT_LIST_NO_SCOPE, STATEMENT_LIST_TRY_BLOCK): New.
	(EXPR_STMT_STMT_EXPR_RESULT): New.
	(building_stmt_tree): Check cur_stmt_list.
	(tf_stmt_expr_cmpd, tf_stmt_expr_body): Remove.
	(BCS_NO_SCOPE, BCS_TRY_BLOCK, BCS_FN_BODY): New.
	* decl.c (poplevel): Use pop_stmt_list for minding cleanups.
	(cp_finish_decl): Use push_cleanup.
	(start_function, finish_function): Use statement lists.
	(finish_stmt): Do nothing.
	* except.c (begin_eh_spec_block): Use statement lists.
	(check_handlers_1, check_handlers): Likewise.
	* init.c (construct_virtual_base): Don't add extra compound stmts.
	(build_vec_init): Likewise.
	* name-lookup.c (maybe_push_cleanup_level): Use statement lists.
	* name-lookup.h (struct cp_binding_level): Add statement_list.
	* parser.c (cp_parser_statement): Take the STMT_EXPR node, not a bool.
	(cp_parser_labeled_statement, cp_parser_expression_statement,
	cp_parser_statement_seq_opt): Likewise.
	(cp_parser_compound_statement): Likewise.  Take bool for try block.
	(cp_parser_selection_statement): Tidy if processing.
	(cp_parser_already_scoped_statement): Rewrite to do what it says.
	* pt.c (tsubst_copy): Move STMT_EXPR to tsubst_expr.
	(tsubst_expr): Rewrite STMT_EXPR processing.  Handle STATEMENT_LIST.
	Mind COMPOUND_STMT_TRY_BLOCK, EXPR_STMT_STMT_EXPR_RESULT.
	* semantics.c (do_poplevel, do_pushlevel): Use statement lists.
	(finish_cond): New, rewritten from FINISH_COND.
	(simplify_loop_decl_cond): New.
	(finish_expr_stmt): Avoid nested EXPR_STMTs.
	(begin_if_stmt, finish_if_stmt_cond, finish_then_clause,
	begin_else_clause, finish_else_clause, finish_if_stmt,
	begin_while_stmt, finish_while_stmt_cond, finish_while_stmt,
	begin_do_stmt, finish_do_body, begin_for_stmt, finish_for_init_stmt,
	finish_for_cond, finish_for_stmt, begin_switch_stmt,
	finish_switch_cond, finish_switch_stmt, begin_try_block,
	finish_try_block, finish_cleanup_try_block, finish_function_try_block,
	finish_handler_sequence, finish_function_handler_sequence,
	begin_handler, finish_handler_parms, finish_handler,
	begin_stmt_expr, finish_stmt_expr_expr, finish_stmt_expr): Rewrite
	using statement lists.
	(begin_compound_stmt): Replace has_no_scope argument with flags.
	Update all callers.  Use statement lists.
	(finish_compound_stmt): Likewise.
	(finish_decl_cleanup, finish_eh_cleanup): Use push_cleanup.
	(current_scope_stmt_stack): Remove.
	(simplify_aggr_init_expr): Don't muck with TREE_CHAIN.
	* typeck2.c (split_nonconstant_init_1, split_nonconstant_init):
	Rewrite with statement lists.
testsuite/
	* g++.dg/ext/stmtexpr1.C: XFAIL.
	* gcc.dg/20030612-1.c: XFAIL.

From-SVN: r83221
2004-06-15 18:21:38 -07:00
Jason Merrill
cd3ce9b44c Gimplify VA_ARG_EXPR into simpler forms.
* target.h: Add gimplify_va_arg_expr hook.
        * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
        * fold-const.c (build_fold_addr_expr)
        (build_fold_addr_expr_with_type): Move from gimplify.c.
        * tree.h: Declare them.
        * gimplify.c (gimplify_and_add): New fn.
        (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
        (gimplify_array_ref_to_plus, gimplify_modify_expr)
        (gimplify_expr): Use build_fold_*.
        (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
        don't know how to gimplify it.
        * builtins.c (std_gimplify_va_arg_expr): New fn.
        (dummy_object): New static fn.
        (gimplify_va_arg_expr): New fn.
        (stabilize_va_list): Use build_fold_*.
        * tree-gimple.h: Declare new fns.
        * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
        (ix86_gimplify_va_arg): New fn.
        * config/i386/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
        (ia64_gimplify_va_arg): New fn.
        * config/i386/rs6000.c (rs6000_gimplify_va_arg): New fn.
        (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
        * config/i386/sparc.c (sparc_gimplify_va_arg): New fn.
        * alias.c (get_varargs_alias_set): Just return 0 for now.

        * c-objc-common.c (c_tree_printer): Improve handling of %T.

From-SVN: r82838
2004-06-09 11:32:44 -04:00
Jerry Quinn
785287145e Makefile.in (EXPR_H): Add insn-config.h...
2004-06-01  Jerry Quinn  <jlquinn@optonline.net>

	* Makefile.in (EXPR_H): Add insn-config.h, function.h,
	$(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
	(ALIAS_H, EMIT_RTL_H): New.
	(cselib.o): Replace EXPR_H with EMIT_RTL_H.
	(cfgcleanup.o): Add EMIT_RTL_H.
	(alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
	* alias.c: Replace expr.h with emit-rtl.h and alias.h.
	* attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
	* cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
	* expr.h: Add include guard.  Include function.h, rtl.h, flags.h,
	tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
	(get_varargs_alias_set, get_frame_alias_set, record_base_value,
	record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
	(set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
	set_mem_size): Move to emit-rtl.h.
	* emit-rtl.h: New.
	* alias.h: New.

From-SVN: r82568
2004-06-02 02:09:45 +00:00
Diego Novillo
6de9cd9a88 Merge tree-ssa-20020619-branch into mainline.
From-SVN: r81764
2004-05-13 02:41:07 -04:00
Zack Weinberg
f75fbaf754 PR 12267, 12391, 12560, 13129, 14114, 14113
* c-tree.h: Forward declare struct c_binding.  Declare
	c_override_bindings_to_false.  Update prototypes.
	(struct lang_identifier): Update comments.  Change fields to be
	struct c_binding *.
	(IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
	(IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
	(KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
	(C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
	* c-common.h: Update prototypes.
	* c-decl.c (struct c_scope): Update commentary.  Remove names,
	names_last, parms, parms_last, tags, and shadowed fields.  Add
	bindings and depth fields.
	(scope_freelist): Move to more appropriate location.
	(c_print_identifier): Update for changes to struct lang_identifier.
	(objc_mark_locals_volatile): Update for new bindings structures.
	(global_bindings_p): Honor c_override_global_bindings_to_false.
	(pushlevel): Rename to push_scope; take no arguments; use the
	scope_freelist; initialize scope->depth and check for overflow.
	(poplevel): Rename to pop_scope; totally rewritten for new bindings
	structures.
	(diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
	C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
	Improve some commentary.  Adjust handling of forward parm decls.
	(merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
	Preserve C_DECL_IN_EXTERNAL_SCOPE.
	(warn_if_shadowing): Correct indentation.  Improve diagnostics.
	(pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
	decls.  Rewrite for new bindings structures.  Improve commentary.
	Eliminate the copy_node call.
	(implicit_decl_warning): Use the "diag" idiom (as seen in
	locate_old_decl) to reduce code duplication; call locate_old_decl
	if appropriate.  Relocate to remove need for forward declaration.
	(implicitly_declare): Adjust for new bindings structures.  Kludge
	around Objective-C not-really-builtin functions.
	(undeclared_variable): Improve diagnostics.  If current_function_decl
	is nonnull but current_function_scope is null, use current_scope.
	Use bind.
	(lookup_tag): Adjust for new bindings structures.  Kludge around
	Objective-C's tag declarations that wind up in the external scope.
	(lookup_name): Adjust for new bindings structures.  Kludge around
	c-common.c's pseudo-typedefs that wind up in the external scope.
	(lookup_name_current_level): Rename lookup_name_in_scope; take a
	second argument indicating the scope to examine; rewrite for
	new bindings structures.
	(c_init_decl_processing): Adjust for renamed functions.  Do not
	initialize current_file_decl, first_builtin_decl, last_builtin_decl.
	First scope pushed is the external scope, not the global scope.
	(builtin_function): Use bind, not pushdecl.  Adjust other bits
	for new data structures.  Keep track of builtins that should be
	made visible automatically.
	(start_decl): Adjust diagnostics.  Remove unnecessary call to
	expand_decl.
	(grokparms): Return 0 if arg_types is error_mark_node.
	(get_parm_info): Rename "void_at_end" argument to "ellipsis", with
	reversed sense.  Rewrite for new bindings structures.  Do not
	leave any decls in the scope, to prevent pop_scope from doing
	contradictory things with them.
	(finish_struct, finish_enum): Remove redundant diagnostics.
	(build_enumerator): Don't cascade diagnostics for error_mark_node.
	Mark location where -pedantic changes the meaning of the program.
	(store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
	parameter decls into the function's scope structure using bind.
	Warn here about function definitions in the wrong style.
	Adjust diagnostics.
	(store_parm_decls): Correct the determination of whether a
	function was defined with a prototype.
	(c_write_global_declarations): Operate on all file decls and on
	the external scope.  Split body of the loop to...
	(c_write_global_declarations_1): ... this new function, to avoid
	code duplication.
	(truly_local_externals, first_builtin_decl, last_builtin_decl)
	(make_scope, pop_scope, in_parm_level_p, set_block)
	(any_external_decl, record_external_decl, bind_label, getdecls)
	(link_hash_hash, link_hash_eq, merge_translation_unit_decls)
	(c_reset_state): Delete.
	(visible_builtins, c_override_global_bindings_to_false)
	(c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
	(I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
	(external_scope, binding_freelist, bind, free_binding_and_advance)
	(push_file_scope, pop_file_scope): New.
	(pushtag, pushdecl_top_level, lookup_label, declare_label)
	(define_label, c_make_fname_decl, finish_decl)
	(mark_forward_parm_decls, build_compound_literal)
	(grokdeclarator, start_function, check_for_loop_decls)
	(identifier_global_value, record_builtin_type): Minor adjustments
	for new bindings structures.  Improve diagnostics and commentary.
	* c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
	pushlevel/poplevel respectively.
	(c_objc_common_finish_file): Don't call merge_translation_unit_decls.
	* c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
	Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
	correct loop over multiple translation units; call fatal_error if
	requested to compile more than one file at once.  (This disables
	IMA temporarily - an up-front error being preferable to a crash.)
	* c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
	(all actions): Adjust calls to pushlevel/poplevel.
	(parsing_iso_function_signature): Delete.
	(extdef_1): Fold into extdef.
	(old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
	warn here about function definitions in the wrong style.
	(after_tyle_declarator, parm_declarator_starttypename)
	(parm_declarator_nostarttypename, notype_declarator): Remove
	commented-out productions.
	(parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
	an empty TREE_LIST node.  Adjust calls to get_parm_info.
	(parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
	to suppress -Wold-style-definition after this error.
	(c_parse_file): Don't clear the binding stack or call
	finish_fname_decls here.  Correct comment.
	* c-typeck.c (same_translation_unit_p): Export.
	(common_type): Use c_override_global_bindings_to_false, not
	pushlevel/poplevel/declare_parm_level.
	* c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
	LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
	and LANG_HOOKS_GETDECLS with do-nothing stubs.
	* objc/objc-lang.c: Likewise.
	* objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
	get_parm_info.
	(OBJC_VOID_AT_END): Delete; replace all uses
	with void_list_node.
	(generate_forward_declaration_to_string_table): Delete.
	* objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.

	* coverage.c (create_coverage): Don't pushdecl anything.
	* langhooks.c (lhd_clear_binding_stack): Call
	lang_hooks.decls.poplevel, not poplevel.
	* tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
	circular list rather than going into an infinite loop.

cp:
	* cp-lang.c (c_reset_state): Delete.
	(push_file_scope, pop_file_scope): New stubs.
	* parser.c (c_parse_file): Call sorry() here if called more than once.

testsuite:
	* gcc.dg/Wold-style-definition-1.c, gcc.dg/builtins-30.c
	* gcc.dg/unused-4.c, gcc.dg/noncompile/label-1.c
	* gcc.dg/noncompile/label-lineno-1.c, objc.dg/naming-1.m:
	Adjust error regexps.
	* gcc.dg/Wshadow-2.c, gcc.dg/noncompile/incomplete-3.c
	* gcc.dg/noncompile/undeclared-1.c: New test cases.
	* gcc.dg/decl-5.c, gcc.dg/redecl-1.c: Remove XFAIL.
	* gcc.dg/local1.c: Add explanatory comment.

From-SVN: r79883
2004-03-23 23:47:53 +00:00
Kazu Hirata
5fd9b17875 alias.c, [...]: Replace calls via (*targetm.foo) () with targetm.foo ().
* alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
	c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
	cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
	haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
	sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
	vmsdbgout.c: Replace calls via (*targetm.foo) () with
	targetm.foo ().

From-SVN: r79729
2004-03-20 04:52:59 +00:00
Roger Sayle
ae2bcd98fa alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) () with lang_hooks.foo ().
* alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
	with lang_hooks.foo ().
	* builtins.c (expand_builtin_va_arg): Likewise.
	* c-common.c (fname_as_string, c_common_truthvalue_conversion,
	c_common_type_for_mode, c_common_nodes_and_builtins,
	handle_mode_attribute, handle_vector_size_attribute): Likewise.
	* c-convert.c (convert): Likewise.
	* c-format.c (check_format_types): Likewise.
	* c-objc-common.c (c_tree_printer): Likewise.
	* c-typeck.c (build_unary_op, build_conditional_expr,
	build_binary_op): Likewise.
	* calls.c (try_to_integrate, expand_call,
	emit_library_call_value_1): Likewise.
	* cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
	Likewise.
	* cgraphunit.c (record_call_1, cgraph_analyze_function,
	cgraph_expand_function): Likewise.
	* convert.c (convert_to_pointer, convert_to_integer): Likewise.
	* coverage.c (build_fn_info_type, build_ctr_info_type,
	build_gcov_info, create_coverage): Likewise.
	* dbxout.c (dbxout_init): Likewise.
	* diagnostic.c (diagnostic_report_current_function): Likewise.
	* dojump.c (do_jump): Likewise.
	* dwarf2out.c (dwarf2_name): Likewise.
	* except.c (init_eh): Likewise.
	* explow.c (expr_size, int_expr_size): Likewise.
	* expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
	Likewise.
	* expr.c (store_expr, store_constructor, safe_from_p,
	expand_expr_real, do_store_flag, try_casesi): Likewise.
	* function.c (push_function_context_to, pop_function_context_from,
	free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
	put_var_into_stack, allocate_struct_function, current_function_name):
	Likewise.
	* integrate.c (copy_decl_for_inlining, expand_inline_function):
	Likewise.
	* langhooks.c (lhd_clear_binding_stack, write_global_declarations,
	lhd_print_error_function): Likewise.
	* opts.c (handle_option, decode_options): Likewise.
	* passes.c (open_dump_file): Likewise.
	* print-tree.c (print_node): Likewise.
	* stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
	expand_decl_cleanup, emit_case_nodes): Likewise.
	* stor-layout.c (variable_size): Likewise.
	* toplev.c (announce_function, wrapup_global_declarations,
	check_global_declarations, compile_file, default_tree_printer,
	process_options, lang_dependent_init, finalize): Likewise.
	* tree-dump.c (dequeue_and_dump): Likewise.
	* tree-inline.c (remap_decl, remap_block, copy_body_r,
	initialize_inlined_parameters, declare_return_variable,
	inlinable_function_p, expand_call_inline, optimize_inline_calls,
	walk_tree, copy_tree_r): Likewise.
	* tree-optimize.c (tree_rest_of_compilation): Likewise.
	* tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
	unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
	variably_modified_type_p, dump_tree_statistics): Likewise.
	* varasm.c (assemble_variable, compare_constant, copy_constant,
	force_const_mem, compute_reloc_for_constant, output_constant,
	output_addressed_constants, initializer_constant_valid_p): Likewise.

From-SVN: r79481
2004-03-14 22:26:14 +00:00
Zack Weinberg
21d13d8372 debug.h (struct gcc_debug_hooks): Add type_decl field.
* debug.h (struct gcc_debug_hooks): Add type_decl field.
	(debug_nothing_tree_int): Prototype.
	(dwarf_debug_hooks): Delete, unused.
	* debug.c (do_nothing_debug_hooks): Update.
	(debug_nothing_tree_int): New function.
	* langhooks.h (struct lang_hooks_for_decls):
	Remove builtin_type_decls field.
	* langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
	(LANG_HOOKS_DECLS): Update.
	* toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
	Use debug_hooks->type_decl.
	* dbxout.c (preinit_symbols): New static.
	(dbx_debug_hooks, xcoff_debug_hooks): Update.
	(dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
	lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
	for symbols to output.
	(dbxout_type_decl): New function.
	(dbxout_symbol): If called before dbxout_init has run, queue
	the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
	to TYPE_DECLs before emitting them.
	* xcoffout.c (assign_type_number): Delete.
	(xcoff_type_numbers): New static table.
	(xcoff_assign_fundamental_type_number): New function.
	* xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
	DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
	* sdbout.c: Include varray.h.
	(deferred_global_decls): New static.
	(sdb_debug_hooks): Update.
	(sdbout_global_decl): If we can't emit something right now,
	remember it in deferred_global_decls.
	(sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
	(sdbout_init): Initialize deferred_global_decls.
	* Makefile.in: Update dependencies of sdbout.o.
	* dwarf2out.c (dwarf2out_type_decl): New function.
	(dwarf2_debug_hooks): Update.
	* vmsdbgout.c (vmsdbg_debug_hooks): Update.
	* c-decl.c (getdecls): Just return 0.
	(check_for_loop_decls): Don't use getdecls.
	(record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
	* c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
cp:
	* cp-lang.c: Don't define LANG_HOOKS_BUILTIN_TYPE_DECLS.
	* cp-tree.h: Don't declare cxx_builtin_type_decls.
	* decl.c (builtin_type_decls, cxx_builtin_type_decls): Delete.
	(record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.

From-SVN: r77730
2004-02-12 21:42:28 +00:00
Kazu Hirata
56ae04afa2 c-objc-common.c (): Fix a typo in a warning.
* c-objc-common.c (): Fix a typo in a warning.
	* cse.c (preferrable): Change to preferable. Update all of its
	callers.
	* genautomata.c (ainsn): Change
	first_ainsn_with_given_equialence_num to
	first_ainsn_with_given_equivalence_num.  Update all of its
	references.

From-SVN: r77497
2004-02-08 19:45:46 +00:00
Paolo Bonzini
e57e265ba6 re PR c/11658 (Wrong error message)
2004-02-03  Paolo Bonzini  <bonzini@gnu.org>

	PR c/11658
	PR c/13994
	* Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
	on langhooks.h.
	* objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
	* c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
	Include langhooks.h.  Replace c_common_truthvalue_conversion
	with the truthvalue_conversion language hook throughout.
	(expr_no_commas): Call default_conversion before save_expr
	for the first term of the production 'x ? : y'.
	* c-common.c (c_common_truthvalue_conversion): Remove
	obsolete block.  Invoke recursively the hook instead
	of this function.
	* c-convert.c (convert): handle ERROR_MARK_NODE.
	* c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
	returned by the truthvalue_conversion language hook.
	* c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
	c_objc_common_truthvalue_conversion.
	* c-objc-common.c (c_objc_common_truthvalue_conversion):
	New function.
	* c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
	* objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
	c_objc_common_truthvalue_conversion.

From-SVN: r77168
2004-02-03 11:22:41 +00:00
Jan Hubicka
b684a3df8e re PR rtl-optimization/13473 (cc1 segfault w/-march=pentium4)
PR opt/13473
	* recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
	ASM input operands

	PR opt/12617
	* toplev.c (dump_file_index): Reorder ce3 and bbro.
	(dump_file): Likewise.
	(rest_of_compilation): Likewise.

	PR debug/13367
	* cgraph.c (cgraph_function_possibly_inlined):  Even with
	flag_really_no_inline we inline always_inline functions.
	* cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
	for non-always_inline functions when there is flag_really_no_inline.
	(cgraph_decide_inlining): Limit work done when not inlining.
	(cgraph_decide_inlining_incrementally): Likewise.
	(cgraph_optimize_function): Check whether something got inlined.
	* c-objc-common.c (c_disregard_inline_limits): Do not always inline
	extern inline functions when not inlining.

	* opts.c (decode_options):  Disable crossjumping at -O1
	* invoke.texi (-O1): Document change.

	* gcc.dg/debug/20031231-1.c: New.
	* gcc.c-torture/compile/20040101-1.c: New.
	* gcc.dg/dwarf-die-[1-7].c: New.

From-SVN: r75303
2004-01-01 13:59:02 +00:00
Richard Henderson
c157f85cd5 c-objc-common.c (c_tree_printer): Handle types correctly.
* c-objc-common.c (c_tree_printer): Handle types correctly.
        Factor code a bit.

From-SVN: r73121
2003-10-30 23:14:43 -08:00
Richard Henderson
ddd2d57e72 c-format.c (gcc_diag_char_table): Add %J.
* c-format.c (gcc_diag_char_table): Add %J.
        (gcc_cdiag_char_table, gcc_cxxdiag_char_table): Likewise.
        (check_format_types): Fix wanted_type name lookup.
        (init_dynamic_diag_info): Setup %J.
        * diagnostic.c (text_specifies_location): Implement %J.
        * c-common.c, c-decl.c, c-objc-common.c, c-pragma.c, calls.c,
        dwarfout.c, expr.c, function.c, stmt.c, stor-layout.c, toplev.c,
        tree-inline.c, tree-optimize.c, varasm.c, config/arm/pe.c,
        config/i386/winnt.c, config/ia64/ia64.c, config/mcore/mcore.c,
        config/v850/v850.c, objc/objc-act.c: Use %J in diagnostics.

        * tree-inline.c: Include intl.h
        (inline_forbidden_p_1): Fix i18n of inline_forbidden_reason.
        * Makefile.in (tree-inline.o): Update.
cp/
        * decl.c, decl2.c, pt.c: Use %J in diagnostics.
java/
        * check-init.c, class.c, decl.c, expr.c: Use %J in diagnostics.
testsuite/
        * gcc.dg/format/gcc_diag-1.c: Add tests for %J.

From-SVN: r71619
2003-09-20 22:07:20 -07:00
Jan Hubicka
f08545a8f2 c-objc-common.c (c_cannot_inline_tree_fn): Warn on why function is not inlinable; do not check the body.
* c-objc-common.c (c_cannot_inline_tree_fn): Warn
	on why function is not inlinable; do not check
	the body.
	(inline_forbidden_p): Move to...
	* tree-inline.c (inline_forbidden_p_1): ... here; Add warnings;
	deal with alloca, longjmp.
	(inline_forbidden_p): New static function.
	(find_alloca_call_1, find_alloca_call, find_builtin_longjmp_call_1,
	find_builtin_longjmp_call): Kill.

From-SVN: r71283
2003-09-10 23:45:05 +00:00
Jan Hubicka
4a46cbfb11 Makefile.in (c-objc-common.o): Kill gt-c-objc-common.h dependency.
* Makefile.in (c-objc-common.o): Kill gt-c-objc-common.h dependency.
	* c-decl.c (finish_function):  Kill arguments, always use cgraph path.
	* c-objc-common.c: Kill include of gt-c-objc-common.h
	(expand_deferred_fns, deffer_fn): Kill function.
	(deferred_fns): Kill variable.
	(finish_cdtor): Update finish_function call.
	(c_objc_common_finish_file): Always call cgraph code.
	* c-parse.c: Regenerate.
	* c-parse.y: Regenerate.
	* c-tree.h (finish_function): Update prototype.

	* objc-acct.c (build_module_descriptor, finish_method_def):
	Update call of finish_function.

	* cgraphunit.c (cgraph_default_inline_p, cgraph_analyze_function): Add
	forward prototype.
	(cgraph_finalize_function): In non-unit-at-a-time mode analyze the
	function and assemble it if needed.
	(cgraph_finalize_compilation_unit): Do nothing in non-unit-at-a-time
	mode.
	(cgraph_optimize): Likewise.
	(cgraph_expand_function): In non-unit-at-a-time mode keep function body
	even when it has no inline callees.
	* c-parse.in: Update calls to finish_function.

From-SVN: r71028
2003-09-03 14:57:29 +00:00
Richard Henderson
4985cde3ef tree-optimize.c: New file.
gcc/
        * tree-optimize.c: New file.
        * Makefile.in (OBJS-archive): Add tree-optimize.o.
        (tree-optimize.o): New.
        * c-decl.c (store_parm_decls): Use allocate_struct_function.
        (finish_function): Don't free_after_parsing or free_after_compilation.
        (set_save_expr_context): Move to tree-optimize.c.
        (c_expand_body_1): Use tree_rest_of_compilation.
        * c-lang.c (LANG_HOOKS_RTL_EXPAND_STMT): New.
        * objc/objc-lang.c (LANG_HOOKS_RTL_EXPAND_STMT): New.
        * c-objc-common.c (expand_deferred_fns): Don't emit unused inlines;
        iterate until closure.
        * langhooks-def.h (LANG_HOOKS_RTL_EXPAND_START,
        LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END): New.
        (LANG_HOOKS_RTL_EXPAND_INITIALIZER): New.
        * langhooks.h (struct lang_hooks_for_rtl_expansion): New.
        * toplev.h (tree_rest_of_compilation): Declare it.

gcc/cp/
        * cp-lang.c (LANG_HOOKS_RTL_EXPAND_START): New.
        (LANG_HOOKS_RTL_EXPAND_STMT): New.
        * cp-tree.h (cxx_expand_function_start): Declare.
        * decl.c (start_function): Use allocate_struct_function.
        Move stmts_are_full_exprs_p assertion from expand_body.
        Do not free_after_parsing or free_after_compilation.
        (cxx_push_function_context): Move code to set struct function
        data from genrtl_start_function.
        * optimize.c (optimize_function): Don't inc/dec function_depth.
        * semantics.c (expand_body): Use tree_rest_of_compilation.
        (cxx_expand_function_start): Rename from genrtl_start_function,
        omit bits done by tree_rest_of_compilation.
        (genrtl_finish_function): Remove.
        (clear_decl_rtl): Move to ../tree-optimize.c.

Co-Authored-By: Jason Merrill <jason@redhat.com>

From-SVN: r70933
2003-08-29 16:21:13 -07:00
Richard Henderson
4b1e44bee1 c-tree.h (C_DECL_FILE_SCOPE): Move ...
* c-tree.h (C_DECL_FILE_SCOPE): Move ...
        * tree.h (DECL_FILE_SCOPE_P): ... here, and rename.
        * c-decl.c, c-objc-common.c, c-typeck.c: Update to match.

From-SVN: r70925
2003-08-29 14:57:05 -07:00