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
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
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
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
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
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
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
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
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
Neil Booth
a078edf813
hashtable.c (calc_hash): Fix HASHSTEP definition.
...
* hashtable.c (calc_hash): Fix HASHSTEP definition.
* stringpool.c (make_identifier): No statistics here anymore.
* objc-act.c (steup_string_decl): Remove redundant check.
From-SVN: r42337
2001-05-20 08:13:32 +00:00
Neil Booth
2a967f3d3a
Makefile.in (OBJS, [...]): Update.
...
* Makefile.in (OBJS, LIBCPP_OBJS, LIBCPP_DEPS,
cpplib.o, cpphash.o, fix-header): Update.
(hashtable.o): New target.
* c-common.h: Include cpplib.h. Define C_RID_CODE and
struct c_common_identifier here.
* c-lang.c (c_init_options): Update. Call set_identifier_size.
* c-lex.c (c_lex): Update.
* c-pragma.h: Update.
* c-tree.h (struct lang_identifier): Contain c_common_identifier.
Delete rid_code.
(C_RID_CODE): Delete.
* cpphash.c: Rewrite to use hashtable.c.
* cpphash.h: Update include guards.
(struct cpp_reader): Remove hashtab.
hash_ob and buffer_ob are no longer pointers. Add hash_table
and our_hashtable.
(HASHSTEP, _cpp_init_hashtable, _cpp_lookup_with_hash): Delete.
(_cpp_cleanup_hashtable): Rename _cpp_destroy_hashtable.
(_cpp_cleanup_stacks): Rename _cpp_init_directives.
* cppinit.c (cpp_create_reader): Update.
* cpplex.c (cpp_ideq, parse_identifier, cpp_output_token): Update.
(cpp_interpret_charconst): Eliminate warning.
* cpplib.c (do_pragma, do_endif, push_conditional,
cpp_push_buffer, cpp_pop_buffer): Update.
(_cpp_init_stacks): Rename cpp_init_directives.
(_cpp_cleanup_stacks): Remove.
* cpplib.h: Update include guards. Include tree-core.h and c-rid.h.
(cpp_hashnode, cpp_token, NODE_LEN, NODE_NAME,
cpp_forall_identifiers, cpp_create_reader): Update.
(C_RID_CODE, cpp_make_node): New.
(c_common_identifier): New identifier node for C front ends.
* cppmain.c (main): Update.
* fix-header.c (read_scan_file): Update.
* flags.h (id_clash_len): Make unsigned.
* ggc.h (ggc_mark_nonnull_tree): New.
* hashtable.c: New.
* hashtable.h: New.
* stringpool.c: Update comments and copyright. Update to use
hashtable.c.
* toplev.c (approx_sqrt): Move to hashtable.c.
(id_clash_len): Make unsigned.
* toplev.h (ident_hash): New.
* tree.c (gcc_obstack_init): Move to hashtable.c.
* tree.h: Include hashtable.h.
(IDENTIFIER_POINTER, IDENTIFIER_LENGTH): Update.
(GCC_IDENT_TO_HT_IDENT, HT_IDENT_TO_GCC_IDENT): New.
(struct tree_identifier): Update.
(make_identifier): New.
cp:
* cp-tree.h (struct lang_identifier, C_RID_YYCODE): Update.
(C_RID_CODE): Remove.
* lex.c (cxx_init_options): Call set_identifier_size. Update.
(init_parse): Don't do it here.
objc:
* objc-act.c (objc_init_options): Call set_identifier_size. Update.
From-SVN: r42334
2001-05-20 06:26:45 +00:00
Neil Booth
4c521bad98
c-common.h (RID_FIRST_PQ): New.
...
* c-common.h (RID_FIRST_PQ): New.
* c-parse.in (objc_pq_context): New.
(objc parser): Set objc_pq_context rather than calling
remember_protocol_qualifiers and forget_protocol_qualifiers.
Don't call save_and_forget_protocol_qualifiers.
(yylexname): Handle objc protocol qualifiers here.
* stringpool.c (struct str_header): Replace with sp_hashnode.
(SP_EMPTY, SP_LEN, SP_TREE, SP_STR, SP_VALID): New.
(alloc_string): Rename alloc_ident. Use the SP_ accessors.
Allocate an IDENTIFIER_NODE for each identifier.
(FORALL_STRINGS, set_identifier): Delete.
(FORALL_IDS, expand_string_table, stringpool_statistics): Update.
(ggc_alloc_string): Use an obstack.
(get_identifier, maybe_get_identifier, mark_string_hash): Update.
* tree.h: Update comments.
(set_identifier): Delete.
* objc/objc-act.c (N_PQ, saved_pq, saved_not_pq,
save_and_forget_protocol_qualifiers, forget_protocol_qualifiers,
remember_protocol_qualifiers): Delete.
From-SVN: r42132
2001-05-16 06:22:15 +00:00
Geoffrey Keating
c53c4afc0a
objc-act.c (handle_class_ref): Use rest_of_decl_compilation so that CHOOSE_SECTION gets used.
...
* objc/objc-act.c (handle_class_ref): Use rest_of_decl_compilation
so that CHOOSE_SECTION gets used.
From-SVN: r42114
2001-05-15 19:54:53 +00:00
Stan Shebs
fa3405045b
objc-act.c (STRING_OBJECT_CLASS_NAME): Default to NSConstantString for NeXT-style runtimes.
...
* objc/objc-act.c (STRING_OBJECT_CLASS_NAME): Default to
NSConstantString for NeXT-style runtimes.
(STRING_OBJECT_GLOBAL_NAME): New macro.
(enum objc_tree_index): Add values OCTI_CNST_STR_GLOB_ID and
OCTI_STRING_CLASS_DECL.
(constant_string_global_id): New macro.
(string_class_decl): Ditto.
(setup_string_decl): New function.
(build_objc_string_object): Use it to build a NeXT runtime
compatible string initializer.
From-SVN: r41776
2001-05-02 21:51:54 +00:00
Stan Shebs
d54d2a054a
objc-act.c (build_module_descriptor): Clear DECL_CONTEXT of UOBJC_MODULES_decl.
...
* objc/objc-act.c (build_module_descriptor): Clear DECL_CONTEXT
of UOBJC_MODULES_decl.
(generate_strings): Clear DECL_CONTEXT of new decl nodes.
(generate_descriptor_table): Ditto.
(generate_protocols): Ditto.
(generate_protocol_list): Ditto.
(generate_classref_translation_entry): Ditto.
From-SVN: r41736
2001-05-01 20:45:55 +00:00
Kaveh R. Ghazi
6496a589df
bitmap.c: Change NULL_PTR to NULL or "(rtx*)0".
...
* bitmap.c: Change NULL_PTR to NULL or "(rtx*)0".
* c-common.c: Likewise.
* c-decl.c: Likewise.
* combine.c: Likewise.
* rs6000.c: Likewise.
* except.c: Likewise.
* explow.c: Likewise.
* expr.c: Likewise.
* fold-const.c: Likewise.
* function.c: Likewise.
* gcc.c: Likewise.
* gcse.c: Likewise.
* integrate.c: Likewise.
* loop.c: Likewise.
* objc/objc-act.c: Likewise.
* recog.c: Likewise.
* reg-stack.c: Likewise.
* reload.c: Likewise.
* reload1.c: Likewise.
* simplify-rtx.c: Likewise.
* stmt.c: Likewise.
* varasm.c: Likewise.
From-SVN: r41722
2001-05-01 12:11:35 +00:00
Stan Shebs
28df0b5ae3
objc-act.c (handle_class_ref): Rewrite to flush target specific code and use new macro...
...
* objc/objc-act.c (handle_class_ref): Rewrite to flush target
specific code and use new macro ASM_DECLARE_UNRESOLVED_REFERENCE.
* config/darwin.h (ASM_DECLARE_UNRESOLVED_REFERENCE): Define.
* tm.texi (ASM_DECLARE_UNRESOLVED_REFERENCE): Document.
From-SVN: r41666
2001-04-29 00:12:51 +00:00
Stan Shebs
4bd34c3985
objc-act.c: Remove all code ifdefed with the never-used macro OBJC_INT_SELECTORS.
...
* objc/objc-act.c: Remove all code ifdefed with the never-used
macro OBJC_INT_SELECTORS.
* config/d30v/d30v.h: Remove commented-out ref to OBJC_INT_SELECTORS.
* tm.texi: Remove doc for OBJC_INT_SELECTORS.
From-SVN: r41317
2001-04-13 01:42:39 +00:00