Commit Graph

603 Commits

Author SHA1 Message Date
Neil Booth
dfd48d76f7 c-decl.c, [...]: Revert bitfield patch.
* c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield
	patch.
	* gcc.dg/bitfld-1.c: Update.
	* gcc.dg/bitfld-2.c: Update.
	* gcc.c-torture/execute/bitfld-1.x: New.

From-SVN: r49420
2002-02-02 00:14:41 +00:00
Jason Merrill
b88c0704cf Makefile.in (c-parse.c): Handle .output file.
* Makefile.in (c-parse.c): Handle .output file.
        * objc/Make-lang.in (objc-parse.c): Likewise.
        * cp/Make-lang.in (parse.c): Handle .output file.

From-SVN: r49393
2002-02-01 06:48:46 -05:00
Neil Booth
8469e54e14 re PR c/3325 (cast of bit-field to same type gets discarded)
PR c/3325
	* c-decl.c (enum_decl_context): Remove BITFIELD.
	(grokdeclarator): Take bitfield width as an input.
	Ensure bitfields are given the correct type.  Perform
	bitfield width validation with build_bitfield_integer_type
	rather than waiting for finish_struct.
	(grok_typename, grok_typename_in_parm_context, start_decl,
	push_parmdecl, grokfield, start_function): Update calls to
	grokdeclarator.
	(build_bitfield_integer_type): New function.
	(finish_struct): Move bitfield validation to grokdeclarator
	and build_bitfield_integer_type.
	* tree.c (build_nonstandard_integer_type): New function.
	* tree.h (build_nonstandard_integer_type): New prototype.
objc:
	* objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge.
testsuite:
	* gcc.c-torture/compile/20000224-1.c: Update.
	* gcc.c-torture/execute/bitfld-1.c: New tests.
	* gcc.dg/bitfld-1.c, bitfld-2.c: Diagnostic tests.
	* gcc.dg/uninit-A.c: Update.

From-SVN: r49321
2002-01-29 17:19:58 +00:00
Jakub Jelinek
ffdeea47b9 re PR other/1502 (Nonexistent -W options not diagnosed)
PR other/1502:
	* cppinit.c (cpp_handle_option): Add ignore argument, if it is zero,
	don't ignore unrecognized -W* options.
	(cpp_handle_options): Pass 1 as last argument to cpp_handle_option.
	* cpplib.h (cpp_handle_option): Adjust prototype.
	* c-decl.c (c_decode_options): Pass 0 as last argument to
	cpp_handle_option.

	PR c/2896:
	* gcc.c (cpp_unique_options): Split from cpp_options.
	(cpp_options): Source cpp_unique_options.
	(default_compilers): Use cpp_unique_options instead of cpp_options
	when used together with cc1_options.
	(static_specs): Add cpp_unique_options.
	* objc/lang-specs.h: Use cpp_unique_options instead of cpp_options
	when used together with cc1_options.

	* decl2.c (cxx_decode_option): Pass 0 as last argument to
	cpp_handle_option.
	* lang-specs.h: Use cpp_unique_options instead of cpp_options
	when used together with cc1_options.

From-SVN: r49315
2002-01-29 13:09:37 +01:00
Nicola Pero
c18736ac11 Remove spurious warnings of the like '__objc_class_ref_NSObject defined but
not used'

From-SVN: r48648
2002-01-08 18:03:11 +00:00
Jakub Jelinek
58ad89b1a5 objc-act.c (handle_impent): Use assemble_variable to emit __objc_class_name_*.
* objc/objc-act.c (handle_impent): Use assemble_variable to emit
	__objc_class_name_*.

From-SVN: r48584
2002-01-06 21:21:03 +01:00
Richard Henderson
d1094b40dd objc-act.c (hack_method_prototype): Clear current_function_decl after abusing it.
* objc/objc-act.c (hack_method_prototype): Clear current_function_decl
        after abusing it.

From-SVN: r48486
2002-01-02 15:22:52 -08:00
Stan Shebs
1bf0567179 objc-act.c (STRING_OBJECT_CLASS_NAME): Remove.
* objc/objc-act.c (STRING_OBJECT_CLASS_NAME): Remove.
        (default_constant_string_class_name): New global.
        (objc_init): Set it.
        (synth_module_prologue): Use it.

From-SVN: r48366
2001-12-29 16:16:51 +00:00
Stan Shebs
ad074d60dd * objc/objc-act.c: Apply various cosmetic and formatting changes.
From-SVN: r48365
2001-12-29 14:56:36 +00:00
Stan Shebs
51a56a7d47 objc-act.c (build_module_descriptor): Make sure the init function is not deferred.
* objc/objc-act.c (build_module_descriptor): Make sure the init
	function is not deferred.
	(build_dispatch_table_initializer): Compute the method encoding if
	not already done.

From-SVN: r48356
2001-12-28 23:22:05 +00:00
Joseph Myers
38be19f603 configure.in (all_diff_excludes, [...]): Remove.
* configure.in (all_diff_excludes, diff_excludes): Remove.
	* configure: Regenerate.
	* Makefile.in (LANG_DIFF_EXCLUDES): Remove.
	* objc/config-lang.in (diff_excludes): Remove.

ada:
	* config-lang.in (diff_excludes): Remove.

ch:
	* config-lang.in (diff_excludes): Remove.

cp:
	* config-lang.in (diff_excludes): Remove.

f:
	* config-lang.in (diff_excludes): Remove.

java:
	* config-lang.in (diff_excludes): Remove.

From-SVN: r48189
2001-12-20 00:20:47 +00:00
Neil Booth
3b27886e3f Makefile.in: Update dependencies.
* Makefile.in: Update dependencies.
	* c-lang.c: Remove unnecessary includes.
	(deferred_fns, start_cdtor, finish_cdtor, defer_fn): Move to
	c-objc-common.c.
	(finish_file): Move body to c_common_finish_file.
	* c-objc-common.c: Include varray.h and ggc.h.
	(deferred_fns, start_cdtor, finish_cdtor, defer_fn,
	expand_deferred_fns, c_objc_common_finish_file): Moved from c-lang.c.
	(c_objc_common_init): Initialize deferred function array.
	* c-tree.h (c_objc_common_finish_file,
	static_ctors, static_dtors): New.
objc:
	* Make-lang.in: Update dependencies.
	* objc/objc-act.c: Don't include varray.h.
	(defer_fn, deferred_fns): Move to c-objc-common.c.
	(objc_init): Similarly for initialization of it.
	(finish_file): Move some to c-objc-common.c, use
	c_objc_common_finish_file.

From-SVN: r48134
2001-12-17 22:43:55 +00:00
Nicola Pero
fc9cfd2354 Fixed compilation of bitfields of enumerations in args and ivars
From-SVN: r47928
2001-12-12 10:41:48 +00:00
Richard Henderson
c66c59d182 objc-act.c (build_string_class_template): New.
* objc/objc-act.c (build_string_class_template): New.
        (build_objc_string_object): Call it.

From-SVN: r47908
2001-12-11 17:40:58 -08:00
Stan Shebs
4c59403143 objc-act.c (finish_message_expr): Fix misplaced parens in a test of class names.
* objc/objc-act.c (finish_message_expr): Fix misplaced parens in a
        test of class names.

        * objc/compile: New test directory.
        * objc/compile/compile.exp: New expect script.
        * objc/compile/20011211-1.m: New compile test.

From-SVN: r47886
2001-12-11 18:24:17 +00:00
Richard Henderson
ff1c8a1a18 objc-act.c (build_constructor): Cast initializer values to the proper field types.
* objc/objc-act.c (build_constructor): Cast initializer values
        to the proper field types.

From-SVN: r47884
2001-12-11 10:07:01 -08: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
Kaveh R. Ghazi
710af8993d cfgrtl.c (purge_all_dead_edges): Initialize variable.
* cfgrtl.c (purge_all_dead_edges): Initialize variable.
	* dwarf2out.c (is_cxx): Prototype.
	* local-alloc.c (block_alloc): Avoid 'unsigned>=0 is always true'
	warning.
	* objc/objc-act.c (defer_fn): Avoid signed/unsigned warning.

From-SVN: r47528
2001-12-02 13:43:10 +00:00
Neil Booth
2e1b463b4d * objc-act.c: Partially reverse mistaken commit.
From-SVN: r47519
2001-12-02 00:10:14 +00:00
Neil Booth
1f978f5f7e c-decl.c (duplicate_decls, [...]): Remove leading capital from diagnostics.
* c-decl.c (duplicate_decls, push_parm_decl): Remove leading
	capital from diagnostics.
	* c-lex.c (cb_file_change): Similarly.
	* c-parse.in : Similarly.
	* cfgrtl.c (verify_flow_info): Similarly.
	* collect2.c: Similarly.
	* cppfiles.c (find_include_file): Similarly.
	* cppinit.c (cpp_handle_option): Similarly.
	* cpplex.c (cpp_spell_token): Similarly.
	* cppmain.c (do_preprocessing): Similarly.
	* gcc.c (translate_options, process_command, do_spec1,
	main, pfatal_execute): Similarly.
	* genattr.c (main): Similarly.
	* genattrtab.c (check_attr_test, operate_exp, simplify_test_exp,
	write_test_expr, main): Similarly.
	* gencodes.c (main): Similarly.
	* genconfig.c (main): Similarly.
	* genconstants.c (main): Similarly.
	* genemit.c (main): Similarly.
	* genextract.c (main): Similarly.
	* genflags.c (main): Similarly.
	* genopinit.c (main): Similarly.
	* genoutput.c (process_template, main): Similarly.
	* genpeep.c (main): Similarly.
	* genrecog.c (main): Similarly.
	* gensupport.c (is_predicable, identify_predicable_attribute,
	alter_predicate_for_insn, init_md_reader_args, main): Similarly.
	* ggc-page.c (alloc_anon): Similarly.
	* mips-tfile.c (add_string, add_procedure, add_file, read_line,
	parse_begin, parse_bend, parse_def, parse_end, parse_file,
	parse_stabs_common, parse_stabs, write_varray, write_object,
	read_seek, copy_object, main, error): Similarly.
	* profile.c (compute_branch_probabilities): Similarly.
	* reg-stack.c (check_asm_stack_operands): Similarly.
	* reload.c (find_reloads): Similarly.
	* reload1.c (spill_failure, failed_reload): Similarly.
	* rtl-error.c (_fatal_insn_not_found): Similarly.
	* toplev.c (read_integral_parameter, crash_signal,
	decode_f_option, set_target_switch, parse_options_and_default_flags)
	: Similarly.
	* tradcif.y (parse_number, yylex): Similarly.
	* tradcpp.c (main, fancy_abort): Similarly.
	* tree.c (tree_check_failed): Similarly.
	* varray.c (varray_check_failed): Similarly.
	* xcoffout.c (xcoff_output_standard_types): Similarly.
cp:
	* call.c (build_java_interface_fn_ref): Similarly.
	* except.c (is_admissible_throw_operand): Similarly.
	* init.c (build_java_class_ref): Similarly.
	* xref.c (open_xref_file): Similarly.
objc:
	* objc-act.c (get_object_ref, lookup_and_install_protocols,
	build_objc_string_object, objc_declare_alias, build_ivar_chain,
	finish_message_expr, build_protocol_expr, is_public,
	start_class): Similarly.
testsuite:
	* objc.dg/alias.m: Update.
	* objc.dg/class-1.m: Update.
	* objc.dg/const-str-1.m: Update.
	* objc.dg/fwd-proto-1.m: Update.
	* objc.dg/id-1.m: Update.
	* objc.dg/super-class-1.m: Update.

From-SVN: r47518
2001-12-02 00:04:36 +00:00
Joseph Myers
d3945f0a4e configure.in (target_list): Add generated-manpages.
* configure.in (target_list): Add generated-manpages.
	* configure: Regenerate.
	* Makefile.in (generated-manpages): Depend on
	lang.generated-manpages.
	* objc/Make-lang.in (objc.generated-manpages): New dummy target.

ada:
	* Make-lang.in (ada.generated-manpages): New dummy target.

ch:
	* Make-lang.in (CHILL.generated-manpages): New dummy target.

cp:
	* Make-lang.in (c++.generated-manpages): New dummy target.

f:
	* Make-lang.in (f77.generated-manpages): New target.
	($(srcdir)/f/g77.1): Don't check $(GENERATED_MANPAGES).  Allow
	manpage generation to fail.
	(f77.info): Don't depend on $(srcdir)/f/g77.1.
	(f77.install-man): Depend on $(GENERATED_MANPAGES) rather than
	directly on $(srcdir)/g77.1.

java:
	* Make-lang.in (java.generated-manpages): New dummy target.

From-SVN: r47442
2001-11-29 16:50:19 +00:00
Neil Booth
0abc6a6a4f cpphash.c (_cpp_init_hashtable): Update.
* cpphash.c (_cpp_init_hashtable): Update.
	* cpphash.h (struct spec_nodes): Remove n_L.
	* cpplex.c (_cpp_lex_direct): Check for prefix L separately.

	* Makefile.in: Update, and add c-objc-common.o dependencies.
	* c-lang.c: Remove unnecessary includes.
	(c_init): Move bulk of code to c_objc_common_init, and call it.
	(c_tree_printer, c_missing_noreturn_ok_p, c_disregard_inline_limits,
	inline_forbidden_p, c_cannot_inline_tree_fn): Move to
	c-objc-common.c.
	* c-objc-common.c: New.  Mostly pulled from c-lang.c.
	* c-tree.h (c_disregard_inline_limits, c_cannot_inline_fn,
	c_objc_common_init, c_missing_noreturn_ok_p): New.
	* toplev.c: Update comment.
	* doc/passes.texi: Update.
	* objc/ojbc-act.c (LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
	LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
	LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P): Override.
	(objc_init): Update to use c_objc_common_init.

From-SVN: r47388
2001-11-27 22:31:34 +00:00
Neil Booth
4d6baafa31 cppfiles.c (stack_include_file): Don't optimize zero-length files.
* cppfiles.c (stack_include_file): Don't optimize zero-length
	files.
	(read_include_file): NUL-terminate read files.
	* cpplex.c (handle_newline, skip_escaped_newlines,
	get_effective_char, skip_whitespace, parse_identifier,
	parse_identifier_slow, parse_number, parse_string,
	_cpp_lex_direct): Optimize for the fact that buffers are guaranteed
	NUL-terminated.
	* cpplib.c (destringize_and_run, cpp_define, handle_assertion):
	Be sure buffers are NUL terminated.
	* cppmacro.c (warn_of_redefinition): Kill compile warning.

	* c-common.c: Include tree-inline.h.
	(c_language): Move separate definitions here.
	(c_common_init_options, c_common_post_options): New.
	(c_common_lang_init): Rename c_common_init.
	* c-common.h (c_common_lang_init): Similarly.
	(c_common_init_options, c_common_post_options): New.
	* c-lang.c (c_post_options): Move body to c_common_post_options.
	(c_init_options): Use c_common_init_options.
	(c_init): Update.
	* langhooks.def: Rearrange.
	* langhooks.h: Rearrange, and improve comments.
	* toplev.c (do_compile): New function.
	(toplev_main): Use it.
	(lang_independent_f_options, parse_options_and_default_flags,
	process_options): Remove trailing periods.
	* Makefile.in: Update.
cp:	* decl2.c (c_language): Move to c-common.c.
	* lex.c (cxx_post_options, cxx_init_options): Use c-common.c
	functions.
	(cxx_init): Update.
objc:	* objc-act.c (objc_post_options, objc_init_options): Use c-common.c
	functions.
	(ojbc_init): Update.

From-SVN: r47362
2001-11-26 23:44:54 +00:00
Neil Booth
22703ccc3f Makefile.in (c-parse.o, c-common.o): Update dependencies.
* Makefile.in (c-parse.o, c-common.o): Update dependencies.
	* c-common.c: Include diagnostic.h.
	(c_common_finish): New.
	* c-common.h (c_common_finish): New.
	* c-lang.c (LANG_HOOKS_FINISH): Override.
	* c-parse.in: Don't include diagnostic.h.
	(finish_parse): Remove.
	* langhooks.h: Update comments.
	* toplev.c (lang_dependent_init): New prototype.
	(finalize): New.
	(compile_file): Split cleanup code out to finalize.
	(lang_dependent_init): Stop if lang_hooks.init fails.
	(toplev_main): Update.
	* tree.h (finish_parse): Remove.

ada:	* misc.c (gnat_decode_option, gnat_init_options): Make definitions
	static too.
	(gnat_init): Don't return NULL.
	(finish_parse): Remove.
cp:	* lex.c (cxx_finish): Call c_common_finish.
	(finish_parse): Remove.
f:	* com.c (finish_parse): Remove.
	(ffe_finish): Move body of finish_parse.
java:	* lang.c (finish_parse): Rename to java_finish.
	(LANG_HOOKS_FINISH, java_finish): New.
objc:	* objc-act.c (LANG_HOOKS_FINISH): Override.

From-SVN: r47141
2001-11-18 11:04:53 +00:00
Neil Booth
f5e99456f1 c-common.c: Include c-lex.h.
* c-common.c: Include c-lex.h.
	(c_common_lang_init): Change prototype.  Call init_c_lex and
	init_pragma from here.
	* c-common.h (c_common_lang_init): Change prototype.
	* c-decl.c (init_decl_processing): Rename.  Call c_parse_init.
	* c-lang.c (c_init): Change prototype.  Update.
	(c_init_options): Update.
	* c-lex.c (cpp_filename): Remove.
	(init_c_lex): Update.  Read the main file, and get the original
	file name.
	(yyparse): Finish the command line options.
	* c-parse.in (c_parse_init): Call init_reswords here.
	(init_parse): Remove.
	* c-tree.h (c_init_decl_processing): New.
	* cpphash.c (_cpp_init_hashtable): After initializing the hash
	table, populate it.
	* cppinit.c (read_original_filename, cpp_finish_options): New.
	(cpp_create_reader): New prototype. Defer hash table initialization.
	(cpp_start_read): Rename cpp_read_main_file.  Initialize the
	hash table.  Get the original filename.
	* cpplib.h (cpp_create_reader): Update.
	(cpp_start_read): Remove.
	(cpp_read_main_file, cpp_finish_options): New.
	* cppmain.c (main, do_preprocessing): Update.
	* langhooks.h (struct langhooks): Update init prototype.
	* toplev.c (general_init, parse_options_and_default_flags,
	process_options, lang_indpendent_init, lang_dependent_init,
	init_asm_output): New; perform the bulk of initialization.
	(compile_file): Move most of initialization to above functions.
	(debug_hooks): Initialize statically.
	(set_Wunused): Relocate.
	(toplev_main): Move most of initialization to other init functions.
	Have a clear logic flow.
	* tree.h (init_parse, init_decl_processing): Remove.
ada:
	* misc.c (gnat_init): Change prototype.  Include the
	functionality of the old init_parse and init_decl_processing.
	(gnat_init_decl_processing): New prototype.
	(init_parse): Remove.
	* utils.c (init_decl_processing): Rename gnat_init_decl_processing.
cp:	* cp-tree.h (init_reswords, cxx_init_decl_processing): New.
	(cxx_init): Update prototype.
	* decl.c (init_decl_processing): Rename.  Move null node init
	to its creation time.
	* lex.c (cxx_init_options): Update.
	(cxx_init): Combine with old init_parse; also call
	cxx_init_decl_processing.
f:	* com.c (ffecom_init_decl_processing): Renamed from
	init_decl_processing.
	(init_parse): Move contents to ffe_init.
	(ffe_init): Update prototype.
java:	* decl.c (init_decl_processing): Rename java_init_decl_processing.
	* java-tree.h: New prototype.
	* lang.c (java_init): Update prototype.  Combine with old init_parse.
objc:	* objc-act.c (objc_init): Update prototype, combine with old
	init_parse.
	(objc_init_options): Update.

From-SVN: r47046
2001-11-15 10:01:10 +00:00
Alexandre Oliva
8b0e9a7297 Makefile.in (c-lang.o): Depend on $(VARRAY_H).
* Makefile.in (c-lang.o): Depend on $(VARRAY_H).
* c-decl.c (c_expand_body): Take argument can_defer_p.  Use it
to decide whether to defer a function.
(finish_function): Adjust.
(c_expand_deferred_function): New function.
* c-lang.c (deferred_fns): New variable.
(c_init): Initialize it, and mark it as a root.
(defer_fn): New function.
(finish_file): Expand all deferred functions.
* c-tree.h (defer_fn): Declare.
(c_expand_deferred_function): Likewise.
* objc/Make-lang.in (objc-act.o): Depend on $(VARRAY_H).
* objc-act.c (deferred_fns): New variable.
(objc_init): Initialize it, and mark it as a root.
(defer_fn): New function.
(finish_file): Expand all deferred functions.

From-SVN: r46933
2001-11-12 00:02:36 +00:00
Neil Booth
5d69f816bc Makefile.in: Update.
* Makefile.in: Update.
	* c-decl.c (print_lang_decl, print_lang_type): Remove.
	(print_lang_identifier): Rename c_print_identifier.
	* c-lang.c (LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): New.
	(print_lang_statistics, lang_print_xnode): Remove.
	* c-parse.in (set_yydebug): Rename c_set_yydebug.
	* c-tree.h (c_set_yydebug, c_print_identifier): New.
	* langhooks-def.h (lhd_print_tree_nothing, lhd_set_yydebug): New.
	LANG_HOOKS_PRINT_STATISTICS, LANG_HOOKS_PRINT_XNODE,
	LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE,
	LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): New.
	(LANG_HOOKS_INITIALIZER): Update.
	* langhooks.h (struct lang_hooks): New members.
	(lang_print_tree_hook): New.
	* langhooks.c (lhd_print_tree_nothing, lhd_set_yydebug): New.
	* print-tree.c: Include langhooks.h.
	(print_node): Update.
	* toplev.c (decode_d_option): Update.
	* tree.c: Include langhooks.h.
	(dump_tree_statistics): Update.
	* tree.h (print_lang_statistics, print_lang_decl, print_lang_type,
	print_lang_identifier, set_yydebug, lang_print_xnode): Remove.
ada:
	* misc.c (gnat_print_decl, gnat_print_type): Renamed.
	(LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE): Override.
	(print_lang_statistics, lang_print_xnode, print_lang_identifier,
	set_yydebug): Remove.
cp:
	* cp-lang.c (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE,
	LANG_HOOKS_PRINT_STATISTICS, LANG_HOOKS_PRINT_XNODE,
	LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): Override.
	* cp-tree.h (print_class_statistics): Remove.
	(cxx_print_statistics, cxx_print_xnode, cxx_print_decl, cxx_print_type,
	cxx_print_identifier, cxx_set_yydebug): New.
	* lex.c (set_yydebug): Rename c_set_yydebug.
	* ptree.c (print_lang_decl, print_lang_type, print_lang_identifier,
	lang_print_xnode): Rename.
	* tree.c (print_lang_statistics): Rename.
f:
	* com.c (ffe_print_identifier): Rename.
	(LANG_HOOKS_PRINT_IDENTIFIER): Override.
	(lang_print_xnode, print_lang_decl, print_lang_statistics,
	print_lang_type, set_yydebug): Remove.
java:
	* java-tree.h (java_set_yydebug): New.
	* jcf-parse.c (set_yydebug): Rename java_set_yydebug.
	* lang.c (LANG_HOOKS_SET_YYDEBUG): Override.
	(print_lang_decl, print_lang_type, print_lang_identifier,
	print_lang_statistics, lang_print_xnode): Remove.
objc:
	* objc-act.c (LANG_HOOKS_PRINT_IDENTIFIER,
	LANG_HOOKS_SET_YYDEBUG): Override.
	(lang_print_xnode, print_lang_statistics): Remove.

From-SVN: r46907
2001-11-09 23:30:44 +00:00
Neil Booth
3ac88239fc c-lang.c (LANG_HOOKS_NAME): New.
* c-lang.c (LANG_HOOKS_NAME): New.
	(lang_hooks): Constify.
	(c_init_options): Update.
	(lang_identify): Remove.
	* c-parse.in (language_string): Remove.
	* dbxout.c: Include langhooks.h.
	(dbxout_symbol_location): Update.
	* dwarf2out.c: Include langhooks.h.
	(gen_compile_unit_die): Update.
	* dwarfout.c: Include langhooks.h.
	(prototyped_attribute, output_compile_unit_die): Update.
	* langhooks-def.h (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): New.
	(LANG_HOOKS_INITIALIZER): Update.
	* langhooks.h (struct lang_hooks): New members.  Constify.
	* stringpool.c: Don't include toplev.h.
	(set_identifier_size): Remove.
	* toplev.c (toplev_main): Initialize identifier size.
	(print_version): Update.
	* tree.h (language_string, init_lex, lang_identify,
	set_identifier_size): Remove.
	* Makefile.in: Update dependencies.
	* config/darwin.c: Include langhooks.h.
	(func_name_maybe_scoped): Update.
	* config/darwin.h (ASM_END_FILE): Update.
	* config/nextstep.h (ASM_END_FILE): Update.
	* config/nextstep21.h (ASM_END_FILE): Update.
	* config/i386/sun386.h (ASM_END_FILE): Update.
	* config/rs6000/rs6000.c (ASM_END_FILE): Include langhooks.h.
	(rs6000_output_function_epilogue): Update.
ada:
	* misc.c (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): Override.
	(struct lang_hooks): Constify.
	(language_string, lang_identify): Remove.
	* utils.c (init_decl_processing): Update.
cp:
	* cp-lang.c (LANG_HOOKS_NAME): Override.
	(struct lang_hooks): Constify.
	* lex.c (cxx_init_options): Update.
	(lang_identify): Remove.
	* parse.y (language_string): Remove.
f:
	* com.c (language_string, lang_identify): Remove.
	(struct lang_hooks): Constify.
	(LANG_HOOKS_NAME): Override.
	(init_parse): Update.
java:
	* jcf-parse.c (init_lex): Remove.
	* lang.c (language_string, lang_identify): Remove.
	(struct lang_hooks): Constify.
	(LANG_HOOKS_NAME): Override.
	(init_parse): Update.
objc:
	* objc-act.c (LANG_HOOKS_NAME): Override.
	(struct lang_hooks): Constify.
	(objc_init_options): Update.
	(lang_identify): Remove.

From-SVN: r46874
2001-11-09 07:14:20 +00:00
Neil Booth
d23c55c28c Clean up langhooks
* alias.c:: Include langhooks.h.
	* emit-rtl.c: Similarly.
	* toplev.c: Similarly.
	* tree-inline.c: Similarly.
	* langhooks-def.h: New, the old langhooks.h.  Give the default
	hooks a common prefix.
	* langhooks.h: Contents extracted from toplev.h.
	* toplev.h: Move langhook stuff to langhooks.h.
	* langhooks.c: Give default hooks a common prefix.

	* c-lang.c: Include langhooks-def.h.
	* ada/misc.c: Similarly.
	* cp/cp-lang.c: Similarly.
	* f/com.c: Similarly.
	* java/lang.c: Similarly.
	* objc/objc-act.c: Similarly.

	* Makefile.in: Update.
	* ada/Makefile.in: Similarly.
	* cp/Make-lang.in: Similarly.
	* f/Make-lang.in: Similarly.
	* java/Make-lang.in: Similarly.
	* objc/Make-lang.in: Similarly.

From-SVN: r46813
2001-11-06 21:12:14 +00:00
Zack Weinberg
5b7874aa2e Makefile.in (INTL_TARGETS, POSUB): Delete all references.
* Makefile.in (INTL_TARGETS, POSUB): Delete all references.
	(INTL_SUBDIRS): Just intl.
	(.SUFFIXES): Add .gmo .po .pox.
	(native): Also depend on build-@POSUB@.
	(intl.all, intl.install): Depend on config.h and things it includes.
	(po-generated): New target; depend on c-parse.c and tradcif.c.
	(install-normal): Also depend on install-@POSUB@.
	(XGETTEXT, GMSGFMT, MSGMERGE, PACKAGE, CATALOGS): New variables.
	(build-, install-, build-po, update-po, install-po,
	.po.gmo, .po.pox, $(PACKAGE).pot, po/$(PACKAGE).pot): New rules.

	* aclocal.m4: Prefix each entry in CATALOGS with "po/"
	* configure.in: Don't munge XGETTEXT.  Don't generate
	po/Makefile.in.
	* configure: Regenerate.

	* exgettext: Delete.
	* config/m68k/m68k.h: Add doc strings for -msky and -mnosky.
	* cp/Make-lang.in, java/Make-lang.in, objc/Make-lang.in: Replace
	$(INTL_TARGETS) with po-generated.

po:
	* EXCLUDES: New file.
	* exgettext: New helper script; completely rewritten.
	* Makefile.in.in, POTFILES.in: Delete.

From-SVN: r46680
2001-10-31 17:40:07 +00:00
Nicola Pero
5286a9ceff (GNU runtime only) statically type `self' in a class method context to be
the class the method belongs to

From-SVN: r46612
2001-10-29 20:51:04 +00:00
Neil Booth
77b1a9217b langhooks.c (lang_hook_default_do_nothing, [...]): New defaults.
* langhooks.c (lang_hook_default_do_nothing,
	lang_hook_default_decode_option): New defaults.
	* langhooks.h: Make hooks unconditional and non-NULL.
	* toplev.c (compile_file, toplev_main): Update.
	* toplev.h: Update comments.
	* objc/objc-act.c (lang_hooks): Update to new paradigm.

From-SVN: r46396
2001-10-21 21:03:48 +00:00
Ziemowit Laski
7e21622e0e objc-act.c (finish_objc): Correct precondition for emitting symtab declarations.
2001-10-12  Ziemowit Laski  <zlaski@apple.com>

        * objc/objc-act.c (finish_objc): Correct precondition for emitting
        symtab declarations.

From-SVN: r46232
2001-10-12 16:01:16 +00:00
Ziemowit Laski
8607f1bc47 c-parse.in (objc_inherit_code, [...]): Make static.
2001-10-03  Ziemowit Laski  <zlaski@apple.com>

        * c-parse.in (objc_inherit_code, objc_pq_context,
        objc_public_flag): Make static.
        (objc_interface_context, objc_implementation_context,
        objc_method_context, objc_ivar_chain, objc_ivar_context): Move to
        global tree array in objc/objc-act.[ch].
        (methoddef): Remove unnecessary code.

        * objc/objc-act.c: (hashed_attribute, hashed_entry, imp_entry):
        Hoist struct definitions to objc-act.h.
        (nst_method_hash_list, cls_method_hash_list, imp_list, imp_count,
        cat_count): Place declaration in objc-act.h.
        (objc_tree_index): Move enumeration to objc-act.h.
        (objc_global_trees): Place declaration and macro accessors in
        objc-act.h.
        (implementation_context): Remove duplicate; use
        objc_implementation_context instead:
        (method_context): Remove duplicate; use objc_method_context
        instead.
        (objc_ellipsis_node, objc_method_prototype_template,
        implemented_classes, function_type): Move global vars to
        objc_global_trees.
        (init_objc): Use LAST_BASE_TREE_CODE instead of LAST_CODE.
        (build_message_expr): Move actual construction of ObjC message
        send nodes to finish_message_expr.
        (finish_message_expr): New routine, contains code formerly in
        build_message_expr.
        * objc/objc-act.h (finish_message_expr): New prototype.
        (objc_ivar_chain, objc_method_context, objc_ellipsis_node): Remove
        declarations; these vars are now part of objc_global_trees.
        (objc_tree_index, objc_global_trees): Move definitions from
        objc-act.c.
        * objc/objc-tree.def: Update copyright info.

From-SVN: r46000
2001-10-03 22:05:57 +00:00
Kaveh R. Ghazi
83182544db c-parse.in (yyerror): Const-ification and/or static-ization.
* c-parse.in (yyerror): Const-ification and/or static-ization.
	* c-typeck.c (push_member_name): Likewise.
	* collect2.c (main): Likewise.
	* dbxout.c (dbxout_parms): Likewise.
	* diagnostic.c (format_with_decl): Likewise.
	* dwarf2out.c (output_ranges): Likewise.
	* dwarfout.c (fundamental_type_code): Likewise.
	* except.c (dw2_output_call_site_table): Likewise.
	* gcc.c (do_spec_1): Likewise.
	* genopinit.c (optabs): Likewise.
	* objc/objc-act.c (synth_id_with_class_suffix, start_class,
	gen_declaration_1, handle_impent): Likewise.
	* protoize.c (default_include, in_system_include_dir, abspath):
	Likewise.
	* sched-vis.c (visualize_stall_cycles): Likewise.
	* sdbout.c (plain_type_1, sdbout_end_function,
	sdbout_end_epilogue): Likewise.
	* varasm.c (decode_reg_name): Likewise.

	* 1750a.c (mod_regno_adjust): Likewise.
	* alpha.c (alpha_write_one_linkage,
	unicosmk_output_default_externs): Likewise.
	* arm.c (arm_condition_codes): Likewise.
	* arm.h (arm_condition_codes): Likewise.
	* avr.c (output_movsisf, encode_section_info): Likewise.
	* darwin.h (GEN_BINDER_NAME_FOR_STUB, GEN_SYMBOL_NAME_FOR_SYMBOL):
	Likewise.
	* i386.c (hi_reg_name, qi_reg_name, qi_high_reg_name): Likewise.
	* i386.h (hi_reg_name, qi_reg_name, qi_high_reg_name): Likewise.
	* m88k.c (output_function_profiler): Likewise.
	* mips.c (mips_output_conditional_branch): Likewise.
	* ns32k.c (ns32k_out_reg_names): Likewise.
	* ns32k.h (ns32k_out_reg_names): Likewise.
	* pj.c (pj_output_rval): Likewise.
	* rs6000.c (GEN_LOCAL_LABEL_FOR_SYMBOL): Likewise.
	* sparc.c (sparc_flat_function_prologue,
	sparc_flat_function_epilogue): Likewise.

cp:
	* decl.c (warn_extern_redeclared_static, cp_make_fname_decl):
	Const-ification.
	* pt.c (tsubst_decl): Likewise.

f:
	* bad.c (ffebad_finish): Const-ification and/or static-ization.
	* intrin.c (ffeintrin_cmp_name_): Likewise.
	* stc.c (ffestc_R904): Likewise.

java:
	* expr.c (expand_invoke): Const-ification.
	* parse.y (patch_method_invocation): Likewise.

From-SVN: r45581
2001-09-13 14:37:29 +00:00
Ziemowit Laski
89fc36051e objc-act.c (build_message_expr): If a class method cannot be found...
2001-09-05  Ziemowit Laski  <zlaski@apple.com>

        * objc/objc-act.c (build_message_expr): If a class method cannot
        be found, do not issue a warning if a corresponding instance
        method exists in the root class.

2001-09-05  Ziemowit Laski  <zlaski@apple.com>

        * objc.dg/method-2.m: New.

From-SVN: r45428
2001-09-06 00:26:34 +00:00
Kaveh R. Ghazi
1c0cc57e79 except.c (TYPE_HASH): Delete.
* except.c (TYPE_HASH): Delete.

	* objc/objc-act.c (HASHFUNCTION): Cast to size_t, not
	HOST_WIDE_INT.

	* tree.c (TYPE_HASH): Delete.

	* tree.h (TYPE_HASH): Define.

ch:
	* tree.c (TYPE_HASH): Moved to ../tree.h.

cp:
	* decl.c: Cast argument to size_t, not HOST_WIDE_INT, in calls to
	GNU_xref_start_scope and GNU_xref_end_scope.

	* tree.c (TYPE_HASH): Moved to ../tree.h.

From-SVN: r45004
2001-08-18 18:11:18 +00:00
Richard Henderson
2cc07db4b0 Move constructor/destructor handling into target hooks.
From-SVN: r44747
2001-08-09 15:33:35 -07:00
Richard Henderson
47907859fd varasm.c (assemble_constructor): Take a symbol_ref and a priority instead of a bare string.
* varasm.c (assemble_constructor): Take a symbol_ref and a
        priority instead of a bare string.  Move priority handling
        here from cp/decl2.c.
        * output.h: Update decls.

        * c-decl.c (c_expand_body): Update calls to assemble_constructor
        and assemble_destructor.
        * profile.c (output_func_start_profiler): Likewise.
        * objc/objc-act.c (finish_objc): Likewise.
        (build_module_descriptor): Return the symbol not the symbol name.

        * ch/grant.c (chill_finish_compile): Pass a symbol_ref and priority
        to assemble_constructor.

        * cp/decl2.c (finish_objects): Pass a symbol_ref and priority to
        assemble_{constructor,destructor}.  Remove priority handling.

        * java/class.c (emit_register_classes): Pass a symbol_ref and priority
        to assemble_constructor.

From-SVN: r44678
2001-08-06 17:13:35 -07:00
Neil Booth
ef6e958a86 Makefile.in (CPPLIB_H): New, so that dependencies on cpplib.h are also on line-map.h.
* Makefile.in (CPPLIB_H): New, so that dependencies on cpplib.h
	are also on line-map.h.
	* cppfiles.c (stack_include_file): Update.
	* cpphash.h (struct cpp_buffer): New member return_at_eof.
	(_cpp_pop_buffer): New.
	* cppinit.c (cpp_destroy, cpp_finish): Update.
	(do_includes): Mark each buffer to return at EOF.
	* cpplex.c (_cpp_lex_token): Pop buffers at EOF.  Continue or
	return as requested.
	* cpplib.c (run_directive, do_line, cpp_push_buffer): Update.
	(cpp_pop_buffer): Rename _cpp_pop_buffer.  Stop skipping.
	* cpplib.h (cpp_pop_buffer): Remove.
	(cpp_scan_buffer_nooutput): Rename cpp_scan_nooutput.
	* cppmacro.c (cpp_scan_buffer_nooutput): Similarly.  No need to pop
	buffers.
	* cppmain.c (scan_buffer): Rename scan_translation_unit.  No need
	to pop buffers.
	(do_preprocessing): Update.
	* fix-header.c (read_scan_file): Update.  No need to pop buffers.
	* c-parse.in (_yylex): Similarly.
	* scan-decls.c (scan_decls): Similarly.
	* line-map.h: Update comments.

	* cp/spew.c (read_token): No need to pop buffers.

	* objc/Make-lang.in (objc-act.o): Update dependencies.

From-SVN: r44634
2001-08-04 12:01:59 +00:00
Ziemowit Laski
f2e6e5307b c-parse.in (OBJC_NEED_RAW_IDENTIFIER): Define macro and flag for contextualizing Objective-C class name lookup by the...
2001-08-01  Ziemowit Laski  <zlaski@apple.com>

        * c-parse.in (OBJC_NEED_RAW_IDENTIFIER): Define macro and flag for
	contextualizing Objective-C class name lookup by the lexer.
	(typespec_reserved_nonattr): Disable ObjC class name lookup after
	seeing a TYPESPEC.
	(protocoldef): Add support for forward @protocol declarations.
	(yylexname): Suppress ObjC class name lookup in certain contexts;
	re-enable after lookup is complete.
	(_yylex): Re-enable ObjC class name lookup when certain
	punctuation marks are seen.

	* objc/objc-act.c (check_protocol_recursively): New function used
	for finding circular dependencies in protocols.
	(objc_declare_protocols): New function for handling forward
	@protocol declarations.
	(receiver_is_class_object): Detect the case when 'self' is used
	inside of a class method.
	(build_message_expr): Issue a warning if class method is desired
	but instance method is found instead.
	(conforms_to_protocol): Streamline.
	(objc_comptypes): Detect the fact that 'Bar<Foo> foo' conforms to
	protocol Foo, even if 'Bar foo' does not.
	(check_protocols): Streamline.
	(start_protocol): Add checks for circular and duplicate protocol
	definitions.
	(encode_aggregate_within): For typedefs of structs, encode the
	underlying struct.
	* objc/objc-act.h (PROTOCOL_DEFINED): New tree accessor.
	(objc_declare_protocols): New prototype.

From-SVN: r44536
2001-08-01 08:10:00 +00:00
Neil Booth
9099cc4f79 Make-lang.in (objc-act.o): Depend on debug.h.
* objc/Make-lang.in (objc-act.o): Depend on debug.h.
	* objc/objc-act.c: Include debug.h.
	(synth_module_prologue): Save and restore debug hooks too.

From-SVN: r44278
2001-07-23 21:11:42 +00:00
Joseph Myers
f7a4cec096 c-common.c (decl_attributes): Only take a single attributes parameter.
* c-common.c (decl_attributes): Only take a single attributes
	parameter.
	* c-common.h (decl_attributes): Update prototype.
	* c-decl.c (start_decl, start_function): Only take a single
	attributes parameter.  Update calls to decl_attributes.
	(finish_struct, finish_enum): Update calls to decl_attributes.
	(push_parm_decl): Expect unified list of attributes.  Update call
	to decl_attributes.
	* c-parse.in (fndef, initdcl, notype_initdcl, nested_function,
	notype_nested_function, component_declarator,
	component_notype_declarator, label): Update calls to
	decl_attributes.
	(absdcl_maybe_attribute, parm, firstparm, myparm): Unify attribute
	lists that are passed to push_parm_decl.
	* c-tree.h (start_function, start_decl): Update prototypes.
	* config/sh/sh-protos.h, config/sh/sh.c
	(sh_pragma_insert_attributes): Only take a single attributes
	parameter.
	* config/sh/sh.h (PRAGMA_INSERT_ATTRIBUTES): Likewise.
	* doc/tm.texi (INSERT_ATTRIBUTES): Update.
	* objc/objc-act.c (define_decl, generate_objc_symtab_decl,
	build_module_descriptor, generate_static_references,
	generate_strings, build_selector_translation_table,
	generate_descriptor_table, generate_protocols,
	generate_ivars_list, generate_dispatch_table,
	generate_protocol_list, generate_category,
	generate_shared_structures, really_start_method, add_objc_decls,
	generate_classref_translation_entry): Update calls to start_decl
	and start_function.
	(build_tmp_function_decl, start_method_def): Unify attribute lists
	that are passed to push_parm_decl.

cp:
	* decl.c (grokdeclarator), decl2.c (cplus_decl_attributes): Update
	calls to decl_attributes.

testsuite:
	* gcc.c-torture/compile/20010701-1.c,
	g++.old-deja/g++.ext/attrib6.C: New tests.

From-SVN: r43850
2001-07-08 20:58:19 +01:00
Stan Shebs
f60b945b39 objc-act.c (handle_impent): Rewrite to be more portable and to use ASM_DECLARE_CLASS_REFERENCE.
* objc/objc-act.c (handle_impent): Rewrite to be more portable
        and to use ASM_DECLARE_CLASS_REFERENCE.
        * config/darwin.h (ASM_DECLARE_CLASS_REFERENCE): Rename from
        undocumented DECLARE_CLASS_REFERENCE, add file argument.
        * doc/tm.texi (ASM_DECLARE_CLASS_REFERENCE): Document.

From-SVN: r43622
2001-06-28 01:34:25 +00:00
Stan Shebs
3393c3a6e3 * objc/objc-act.c (hash_init): Use xcalloc.
From-SVN: r43498
2001-06-22 02:38:22 +00:00
Stan Shebs
f5e6aae050 objc-act.c (hash_init): Assume xmalloc always succeeds, also use memset to clear the hash tables.
* objc/objc-act.c (hash_init): Assume xmalloc always succeeds,
	also use memset to clear the hash tables.
	(hash_enter): Assume xmalloc always succeeds.
	(hash_add_attr): Ditto.
	(continue_class): Ditto.

From-SVN: r43472
2001-06-20 13:51:19 +00:00
Stan Shebs
9b46c344b1 * objc/objc.gperf: Remove, no longer used.
From-SVN: r42683
2001-05-28 23:56:18 +00:00
Stan Shebs
81d87bcc58 objc-act.c: Add/fix various comments.
* objc/objc-act.c: Add/fix various comments.
	(init_selector): Remove, no longer used.
	(build_msg_pool_reference): Ditto.
	(objc_debug): Ditto.

From-SVN: r42666
2001-05-28 01:01:10 +00:00
Zack Weinberg
a63719408d toplev.c (debug_args, [...]): Mark descriptions for translation.
* toplev.c (debug_args, f_options, W_options): Mark
	descriptions for translation.
	(display_help): Translate descriptions on output.

	* cp/lang-options.h, f/lang-options.h, java/lang-options.h,
	objc/lang-options.h: Mark descriptions for translation.

From-SVN: r42618
2001-05-26 05:28:26 +00:00