Age | Commit message (Collapse) | Author | Files | Lines |
|
2003-12-03 Eric Christopher <echristo@redhat.com>
* c-parse.in (c_in_iteration_stmt, c_in_case_stmt): Move
from here...
* c-tree.h: to here.
From-SVN: r74253
|
|
2003-11-24 Eric Christopher <echristo@redhat.com>
PR C/13014
* c-decl.c (c_in_iteration_stmt, c_in_case_stmt): New.
(start_function): Use.
(c_push_function_context): Ditto.
(c-pop_function_context): Ditto.
(language_function): Move...
* c-tree.h: ... here. Add x_in_iteration_stmt, and
x_in_case_stmt.
* c-parse.in (do_stmt_start, select_or_iter_stmt, stmt): Use
c_in_iteration_stmt, c_in_case_stmt for parser state. Move
check for valid break or continue statment here...
* c-semantics.c (genrtl_break_stmt, genrtl_continue_stmt): From
here. Change original errors to abort.
From-SVN: r73887
|
|
* c-typeck.c (c_convert_parm_for_inlining): Add argnum, which
is the argumnt we are processing so that warnings and errors
will have that information.
* c-tree.h (c_convert_parm_for_inlining): Add argnum.
* lang-hooks-def.h
(lhd_tree_inlining_convert_parm_for_inlining): Likewse.
* langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): Likewise.
* langhooks.h (convert_parm_for_inlining): Likewise.
* tree-inline.c (initialize_inlined_parameters): Compute and
pass argnum down.
From-SVN: r73507
|
|
2003-09-24 Ziemowit Laski <zlaski@apple.com>
MERGE OF objc-improvements-branch into MAINLINE.
See 'gcc/ChangeLog' and 'gcc/testsuite/ChangeLog' for
the gory details.
From-SVN: r71748
|
|
* 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
|
|
* c-tree.h: Delete COMPARE_DIFFERENT_TU from enumeration.
* c-typeck.c (same_translation_unit_p): New function.
(comptypes): Use it instead of flags parameter to identify
structure types from different translation units.
* c-decl.c (duplicate_decls): Always call comptypes with
COMPTYPE_STRICT flags argument.
(c_reset_state): Set BLOCK_SUPERCONTEXT of the block formed
to file_scope_decl.
From-SVN: r70953
|
|
* c-tree.h (C_TYPE_INCOMPLETE_VARS): New macro.
* c-decl.c (struct c_scope): Remove "incomplete" field.
(pushdecl): Attach variables with incomplete types to
the TYPE_MAIN_VARIANT of the incomplete type in question.
(finish_struct): Look at C_TYPE_INCOMPLETE_VARS for variables
to complete, not at current_scope->incomplete. All such
variables do need completion.
From-SVN: r70952
|
|
* 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-05 Steven Bosscher <steven@gcc.gnu.org>
* tree.h (DID_INLINE_FUNC): Remove macro.
(DECL_DECLARED_INLINE_P): Move from c-tree.h and cp/cp-tree.h,
add tree check for FUNCTION_DECL.
(DECL_ESTIMATED_INSNS): Move from c-common.h and java/java-tree.h.
(struct tree_decl): Rename inlined_function_flag to
declared_inline_flag.
* c-common.h (c_lang_decl): Remove.
(DECL_ESTIMATED_INSNS): Remove.
* c-tree.h (struct lang_decl): Don't include c_lang_decl.
(DECL_DECLARED_INLINE_P): Remove.
* c-decl.c (grokdeclarator): Update comment. With -finline-functions,
do not reset DECL_DECLARED_INLINE_P. Don't use DID_INLINE_FUNC.
(finish_function): Make uninlinable a bool. Fixup call to
tree_inlinable_function_p() and fix some code style issues.
* cgraph.h (disgread_inline_limits): Fix spelling: `disregard'.
* cgraph.c (dump_cgraph): Likewise.
* cgraphunit.c (cgraph_decide_inlining): Likewise
(cgraph_finalize_compilation_unit): Likewise.
Also update call to tree_inlinable_function_p().
(cgraph_default_inline_p): Don't use DID_INLINE_FUNC. Instead
look at DECL_DECLARED_INLINE and reverse logic.
* print-tree.c (print_node): Likewise.
* toplev.c (rest_of_handle_inlining): Don't use DID_INLINE_FUNC.
* tree-inline.h (tree_inlinable_function_p): Make a bool. Update
prototype.
* tree-inline.c (inlinable_function_p): Split up in this function to
check for basic inlining inhibiting conditions, and new
limits_allow_inlining() function. Warn if inlining is impossible
because the inline candidate calls alloca or uses sjlj exceptions.
(limits_allow_inlining): this new function to check if the inlining
limits are satisfied. Throttle from currfn_max_inline_insns, not from
MAX_INLINE_INSNS_SINGLE. The latter only makes sense if
MAX_INLINE_INSNS_AUTO and MAX_INLINE_INSNS_SINGLE are equal.
Update prototypes.
(tree_inlinable_function_p): Make a bool. Update call to
inlinable_function_p
(expand_call_inline): Use limits_allow_inlining() when not in
unit-at-a-time mode to decide on inlining. Don't use DID_INLINE_FUNC,
instead see if the function was declared `inline'.
cp/
* cp-tree.h (struct lang_decl): Don't include c_lang_decl.
(DECL_DECLARED_INLINE_P): Remove.
* decl2.c (import_export_decl): Only look at DECL_DECLARED_INLINE_P
if decl is a FUNCTION_DECL. This never made sense, but now it is
required to avoid a tree check failure.
* decl.c (grokfndecl): Don't touch DID_INLINE_FUNC.
* optimize.c (maybe_clone_body): Likewise.
java/
* java-tree.h (DECL_ESTIMATED_INSNS): Remove.
From-SVN: r70174
|
|
* c-common.c (flag_noniso_default_format_attributes): Delete.
(built_in_attribute): Don't define/undefine DEF_FN_ATTR.
(c_attrs_initialized): Delete.
(c_common_nodes_and_builtins): Don't test c_attrs_initialized,
always call c_init_attributes.
(c_init_attributes): Don't define/undefine DEF_FN_ATTR. Don't
set c_attrs_initialized when done.
(c_common_insert_default_attributes): Delete.
* c-common.h (flag_noniso_default_format_attributes): Delete.
(c_coomon_insert_default_attributes): Delete prototype.
* c-opts.c (set_std_c89, set_std_c99, set_std_cxx98): Dont set
flag_noniso_default_format_attributes.
* c-decl.c (c_insert_default_attributes): Delete.
* c-tree.h (c_insert_default_attributes): Delete prototype.
* attribs.c (decl_attributes): Don't call insert_default_attributes
langhook. Update function description comment.
* langhooks.h (lang_hooks): Remove insert_default_attributes field.
* langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Delete.
* c-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Don't define.
* system.h: Poison LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES macro.
cp/
* decl.c (cxx_insert_default_attributes): Delete.
* cp-tree.h (cxx_insert_default_attributes): Don't prototype.
* cp-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Don't define.
objc/
* objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Don't define.
From-SVN: r70155
|
|
* c-decl.c (last_function_parm_vars, current_function_parm_vars):
New static variables.
(struct c_scope): Add parms and warned_forward_parm_decls
fields; remove parm_order.
(storedecls, storetags): Delete.
(poplevel): Also clear bindings on the parms chain.
(pushdecl): Handle forward declarations of parameters, and
chain PARM_DECLs on the parms list, not the names list.
(lookup_name_current_level): Check for PARM_DECLs on the parms
list too.
(push_parm_decl): Don't update parm_order.
(clear_parm_order): Rename mark_forward_parm_decls. Issue the
warning, only once per parameter list, and set TREE_ASM_WRITTEN
on the decls here. Then move the forward decls to the names list.
(grokparms): Set last_function_parm_vars.
(get_parm_info): Don't use gettags or getdecls. No need to
extract non-parms from the parms list, or reorganize the parms
list. Feed nonparms back in the TREE_TYPE of the list node
returned. Issue only one error per parameter list for "void"
appearing more than once in said parameter list. Collapse
parmlist_tags_warning into this function to avoid double scan
of tags list.
(start_function): Set current_function_parm_vars.
(store_parm_decls_newstyle): Bypass pushdecl, manipulate scope
directly. Get non-parms from current_function_parm_vars; no
need to extract them from the parms chain. Properly bind tags
in the new scope.
(store_parm_decls_oldstyle): No need to extract non-parameters
from the parms chain, nor to store them back afterward. Move
declaration to top of function, restructure code reordering
DECL_ARGUMENTS.
(store_parm_decls): No need to save and restore warn_shadow.
* c-parse.in: Don't call parmlist_tags_warning nor
clear_parm_order. Call mark_forward_parm_decls when forward
parm decls are encountered.
* c-tree.h: Prototype mark_forward_parm_decls; not
clear_parm_order or parmlist_tags_warning.
testsuite:
* gcc.dg/struct-in-proto-1.c: New test.
From-SVN: r69945
|
|
warn_declaration_after_statement.
* c-parse.in (lineno_stmt_decl_or_labels_ending_decl): Also warn
when warn_declaration_after_statement. Call pedwarn_c90, not
pedwarn. Correct message: it's "ISO C90", not "ISO C89".
* c-common.c (warn_declaration_after_statement): Define.
* c-common.h (warn_declaration_after_statement): Declare.
* c.opt (Wdeclaration-after-statement): New.
* c-errors.c (pedwarn_c90): New function.
* c-opts.c (c_common_handle_option) <case
OPT_Wdeclaration_after_statement>: New.
* c-tree.h (pedwarn_c90): Declare.
* doc/invoke.texi (Option Summary): Document
-Wdeclaration-after-statement.
(Warning Options): Ditto.
Co-Authored-By: Michael Culbertson <Michael.J.Culbertson@wheaton.edu>
From-SVN: r69899
|
|
* c-common.h (num_in_fnames): Declare.
(c_static_assembler_name): Move from here...
* c-tree.h (c_static_assembler_name): ... to here.
* c-opts.c: Don't include langhooks-def.h.
(c_static_assembler_name): Move to c-decl.c.
(num_in_fnames): Make externally visible.
* c-decl.c: Include langhooks-def.h.
(c_static_assembler_name): Move from c-opts.c.
* Makefile.in (c-decl.o): Add $(LANGHOOKS_DEF_H).
(c-opts.o): Remove $(LANGHOOKS_DEF_H).
From-SVN: r69650
|
|
(push_label_level, pop_label_level): Kill.
(struct binding_level): Rename level_chain to outer.
Add outer_function field. Change parm_flag, function_body,
keep, keep_if_subblocks to 1-bit bitfields of type bool.
(current_function_level): New variable.
(keep_next_level_flag, keep_next_if_subblocks): Change type to bool.
(keep_next_level, declare_parm_level, warn_if_shadowing):
Update to match.
(struct language_function): Kill named_labels, shadowed_labels fields.
(c_init_decl_processing, start_function, c_push__function_context)
(c_pop_function_context): No need to muck with named_labels nor
shadowed_labels.
(make_binding_level): No need to clear the structure here.
(pop_binding_level): Always operate on current_binding_level.
Update current_function_level if necessary.
(pushlevel): Don't clear named_labels. Update current_function_level
if necessary. Use "true" and "false" where appropriate.
(poplevel): Diagnose labels defined but not used, or vice
versa, and clear out label-meanings leaving scope, while
walking down the decls list, for all binding levels.
Handle LABEL_DECLs appearing in the shadowed list.
pop_binding_level takes no arguments.
(pushdecl_function_level): Use current_function_level.
(make_label, bind_label): New static functions.
(declare_label): New exported function.
(lookup_label, define_label): Rewritten for new data structure.
(shadow_label): Kill.
* c-tree.h: Prototype declare_label; don't prototype
push_label_level, pop_label_level, nor shadow_label.
* c-parse.in: Remove all calls to push_label_level and
pop_label_level. Use declare_label for __label__ decls.
* doc/extend.texi: Clarify that __label__ can be used to
declare labels with local scope in any nested block, not
just statement expressions. Cross-reference nested functions
section from local labels section.
testsuite:
* gcc.dg/noncompile/label-1.c: New comprehensive test case for
diagnostics of ill-formed constructs involving labels.
* gcc.dg/noncompile/label-lineno-1.c: Add error regexp for
the new 'previously defined here' message.
From-SVN: r69597
|
|
* c-decl.c (pushdecl_function_level): Make static, return nothing.
(kept_level_p): Fold into poplevel.
(undeclared_variable): Moved here from c-typeck.c. Export.
* c-tree.h (KEEP_YES, KEEP_NO, KEEP_MAYBE): New #defines.
(undeclared_variable): Prototype here. Don't prototype
kept_level_p nor pushdecl_function_level.
* c-parse.in: Change first argument to poplevel from
"kept_level_p()" to "KEEP_MAYBE".
* c-typeck.c (undeclared_variable): Moved to c-decl.c.
From-SVN: r69540
|
|
* c-decl.c: Fix typos in several comments. Remove all
#if 0 blocks; reindent as needed. Remove unused argument
to declare_parm_level; all callers changed.
* c-parse.in: Update calls to declare_parm_level. Avoid
issuing a double warning in some circumstances.
* c-typeck.c: Update calls to declare_parm_level.
* c-tree.h: Update prototype of declare_parm_level.
* c-pragma.c (apply_pragma_weak): Don't complain about a
redundant #pragma weak.
* objc/objc-act.c (forward_declare_categories,
build_selector_reference_decl, build_class_reference_decl,
build_objc_string_decl, synth_forward_declarations,
build_protocol_reference): Set TREE_PUBLIC on synthetic
forward decl to 0, consistent with eventual definition.
Correct comments to match.
cp:
* pt.c (get_bindings): Make definition consistent with
forward declaration.
From-SVN: r69519
|
|
if large struct))
2003-07-16 Andrew Pinski <pinskia@physics.uc.edu>
ChangeLog:
PR c/10962
* ggc.h: Add header guards.
* c-decl.c (finish_struct): Sort fields if
number greater than 15 and there are no
anonymous structs/unions.
* c-common.h: Include ggc.h.
(sorted_fields_type): New struct.
(field_decl_cmp): New prototype.
(resort_sorted_fields): New prototype.
(DECL_DECLARES_TYPE_NON_TEMPLATE_P): New macro.
* c-tree.h: (lang_type): Use pointer to sorted_fields_type
as s, removing other fields.
* c-typeck.c (lookup_field): Use s in lang_type.
These were mostly moved from cp/class.c:
* c-common.c (field_decl_cmp): New static function.
(field_decl_cmp): New function.
(resort_sorted_fields): New function.
cp/ChangeLog:
* class.c (field_decl_cmp): Remove.
(resort_field_decl_cmp): Remove.
(resort_sorted_fields): Remove.
(add_fields_to_vec): Rename to ...
(add_fields_to_record_type): this.
(finish_struct_1): Change to be using
sorted_fields_type's fields.
* cp-tree.h (lang_decl): In lang_decl_u3
change sorted_fields to be a pointer to
sorted_fields_type.
(resort_sorted_fields): Remove prototype.
* search.c (lookup_field_1): Change to be using
sorted_fields_type's fields.
From-SVN: r69470
|
|
2003-07-10 Geoffrey Keating <geoffk@apple.com>
* c-decl.c (finish_decl): Handle 'used' here...
* cgraphunit.c (cgraph_finalize_function): ... and here ...
* c-common.c: (handle_used_attribute): ... not here.
* configure.in (onstep): Support --enable-intermodule.
* Makefile.in (OBJS-common): New.
(OBJS-md): New.
(OBJS-archive): New.
(OBJS): Build from OBJS-common, OBJS-md, OBJS-archive.
(OBJS-onestep): New.
(libbackend.a): Support @onestep@.
(libbackend.o): New.
* configure: Regenerate.
* c-common.h (c_reset_state): New prototype.
(c_parse_file): New prototype.
(finish_file): Move prototype from c-tree.h.
* c-decl.c: Include <hashtab.h>.
(builtin_decls): New.
(current_file_decl): New.
(duplicate_decls): Add extra parameter. Change all callers. Don't
output duplicate common symbols.
(link_hash_hash): New.
(link_hash_eq): New.
(poplevel): Handle popping of the top level.
(warn_if_shadowing): Handle TRANSLATION_UNIT_DECL.
(pushdecl): Set DECL_CONTEXT to TRANSLATION_UNIT_DECL if appropriate.
(pushdecl_top_level): Likewise.
(redeclaration_error_message): Handle TRANSLATION_UNIT_DECL.
(c_init_decl_processing): Create TRANSLATION_UNIT_DECL.
(finish_decl): Handle TRANSLATION_UNIT_DECL.
(merge_translation_unit_decls): New.
(c_write_global_declarations): New.
(c_reset_state): New.
(implicitly_declare): Handle TRANSLATION_UNIT_DECL.
* c-lang.c (LANG_HOOKS_WRITE_GLOBALS): New.
* c-objc-common.c (c_cannot_inline_tree_fn): Handle
TRANSLATION_UNIT_DECL.
(c_objc_common_finish_file): Call merge_translation_unit_decls.
* c-opts.c (in_fnames): Rename from in_fname.
(c_common_decode_option): Handle multiple input filenames.
(c_common_post_options): Likewise.
(c_common_parse_file): Likewise; also, call c_parse_file rather than
yyparse.
* c-parse.in: Move cleanup code to c_parse_file.
(free_parser_stacks): Move contents to c_parse_file.
(c_parse_file): New.
* c-tree.h (union lang_tree_node): Chain along TYPE_NEXT_VARIANT
for integer types.
(C_DECL_FILE_SCOPE): New.
(finish_file): Move prototype to c-common.h.
(merge_translation_unit_decls): New prototype.
(comptypes): Add extra parameter to prototype.
(c_write_global_declarations): New prototype.
* c-typeck.c (tagged_types_tu_compatible_p): New.
(function_types_compatible_p): Add extra parameter, change all callers.
(type_lists_compatible_p): Likewise.
(comptypes): Likewise.
(struct tagged_tu_seen): New.
(tagged_tu_seen_base): New.
(build_unary_op): Handle TRANSLATION_UNIT_DECL.
(c_mark_addressable): Remove #if 0 code.
* calls.c (special_function_p): Handle TRANSLATION_UNIT_DECL, add
comment explaining why it shouldn't have to.
* cgraph.h (struct cgraph_node): Add chain_next and chain_prev GTY
options.
* cppinit.c (cpp_read_next_file): New.
(cpp_read_main_file): Use it.
* cpplib.c (undefine_macros): New.
(cpp_undef_all): New.
* cpplib.h (cpp_read_next_file): Prototype.
(cpp_undef_all): Prototype.
* langhooks-def.h (write_global_declarations): Remove prototype.
* toplev.h (write_global_declarations): Add prototype.
* tree.c (decl_type_context): Use switch statement, handle
TRANSLATION_UNIT_DECL.
* tree.def: Update documentation for TRANSLATION_UNIT_DECL.
(TRANSLATION_UNIT_DECL): New kind of tree.
* tree.h: Update documentation for TRANSLATION_UNIT_DECL.
* Makefile.in (c-decl.o): Add $(HASHTAB_H) to dependencies.
* doc/invoke.texi: Make attempt to document new functionality.
2003-05-19 Per Bothner <bothner@apple.com>
* gcc.c (combine_inputs): New.
(process_command): Set combine_inputs.
(do_spec_1): Handle combine_inputs.
(main): Likewise.
Index: cp/ChangeLog
2003-07-10 Geoffrey Keating <geoffk@apple.com>
* decl.c (cp_finish_decl): Handle 'used' attribute.
* cp-lang.c (c_reset_state): New dummy routine.
* cp-tree.h (finish_file): Move prototype to c-common.h.
* parser.c (c_parse_file): Rename from yyparse; don't call finish_file.
From-SVN: r69224
|
|
gcc:
* c-aux-info.c: Include toplev.h after c-tree.h.
* c-common.c: Likewise.
(GCC_DIAG_STYLE): Undef.
* c-semantics.c (GCC_DIAG_STYLE): Define.
* c-tree.h (GCC_DIAG_STYLE): Likewise.
* diagnostic.h (inform): Move prototype to toplev.h.
* jump.c: Include diagnostic.h before toplev.h.
* toplev.h (GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG): Define.
(warning, error, fatal_error, pedwarn, sorry, inform,
error_for_asm, warning_for_asm): Mark with ATTRIBUTE_GCC_CXXDIAG.
cp:
* cp-tree.h (GCC_DIAG_STYLE, ATTRIBUTE_GCC_CXXDIAG): Define.
(cp_error_at, cp_warning_at, cp_pedwarn_at): Mark with
ATTRIBUTE_GCC_CXXDIAG.
From-SVN: r68910
|
|
location_t.
* c-tree.h (define_label): Replace filename and lineno arguments
with a location_t.
* c-decl.c (poplevel): Adjust define_label call.
(pop_label_level): Likewise.
(define_label): Replace filename and lineno arguments with a
location_t.
(store_parm_decls): Use DECL_SOURCE_LOCATION.
* c-parse.in (label): Adjust define_label call.
* cp/cp-tree.h (define_label): Replace filename and lineno
arguments with a location_t.
* cp/decl.c (pop_label): Adjust define_label call.
(define_label): Replace filename and lineno arguments with a
location_t.
* cp/semantics.c (finish_label): Adjust define_label call.
* java/decl.c (poplevel): Adjust define_label call.
From-SVN: r68766
|
|
* c-tree.h (grokfield): Remove unused filename and line parameters.
* c-decl.c (grokfield): Remove unused filename and line parameters.
* c-parse.in (component_decl): Adjust field grokking rules, adjust
grokfield calls.
(component_declarator): Likewise.
(component_notype_declarator): Likewise.
* objc/objc-act.c (build_module_descriptor): Adjust grokfield
calls.
(build_protocol_template, build_method_prototype_list_template,
build_method_prototype_template, build_category_template,
build_selector_template, build_class_template,
build_super_template, build_ivar_template,
build_ivar_list_template, build_method_list_template,
build_method_template, add_instance_variable): Likewise.
From-SVN: r68560
|
|
* c-lex.c: Convert to ISO C90.
* c-objc-common.c: Likewise.
* c-opts.c: Likewise.
* c-pch.c: Likewise.
* c-ppoutput.c: Likewise.
* c-pragma.h: Likewise.
* c-pretty-print.c: Likewise.
* c-pretty-print.h: Likewise.
* c-semantics.c: Likewise.
* c-tree.h: Likewise.
* c-typeck.c: Likewise.
From-SVN: r68327
|
|
* c-tree.h: Remove declaration of poplevel.
* tree.h: Remove declaration of approx_sqrt.
* c-lex.c: Remove redundant declaration of asm_out_file.
* flags.h: Remove declaration of warn_unknown_pragma and
main_input_filename.
* rtl.h: Remove functions from fold-const.c since they're already
declared in tree.h.
* regs.h: Remove redundant declaration of reg_names.
cp:
* cp-tree.h: Remove duplicated declarations.
From-SVN: r68193
|
|
2003-04-10 Zack Weinberg <zack@codesourcery.com>
* c-decl.c (struct binding_level): Add shadowed_tags and
function_body; remove this_block, tag_transparent, and
subblocks_tag_transparent; update comments.
(clear_binding_level, lookup_tag_reverse): Kill.
(make_binding_level): Use ggc_alloc_cleared or memset.
(lookup_tag): Remove struct binding_level* parameter. All
callers changed. Just look at IDENTIFIER_TAG_VALUE, and
current_binding_level->tags if asked for thislevel_only or if
we might have to diagnose "struct foo; union foo;"
(pushlevel): Ignore argument. Do not push another binding
level on the transition from the parameters to the top level
of the function body; just tweak the flags and proceed.
(poplevel): Overhaul. Clear IDENTIFIER_TAG_VALUEs; on exiting
a function body, separate the parameter list from the
top-level local variables.
(set_block): Do nothing.
(pushtag): Set IDENTIFIER_TAG_VALUE and add an entry to
shadowed_tags if necessary.
(warn_if_shadowing): Nuke the special case for local shadowing
parameter.
(pushdecl): Do not create a shadow entry if we are replacing
an older decl in the same binding level.
(pushdecl_function_level): Tweak for new way of indicating
function scope.
(shadow_tag_warned): Use TYPE_NAME, not lookup_tag_reverse.
(start_function): Don't set subblocks_tag_transparent.
(finish_function): Fix up the binding_level stack for totally
empty functions. Otherwise, don't call poplevel.
* c-common.c (shadow_warning): MANDATORY argument is no longer
necessary. Always use plain warning.
* c-common.h: Update to match.
* cfglayout.c (scope_to_insns_initialize): Clear block when we
hit the FUNCTION_DECL.
* function.c: Do not create cyclic tree structure.
2003-04-10 Zack Weinberg <zack@codesourcery.com>
* c-tree.h (struct lang_identifier): Replace global_value,
local_value members with symbol_value, tag_value. Kill
implicit_decl and limbo_value.
(IDENTIFIER_GLOBAL_VALUE, IDENTIFIER_LOCAL_VALUE,
IDENTIFIER_LIMBO_VALUE, IDENTIFIER_IMPLICIT_DECL,
C_MISSING_PROTOTYPE_WARNED): Kill.
(IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE,
C_DECL_IMPLICIT, C_DECL_ISNT_PROTOTYPE): New.
(C_DECL_ANTICIPATED): Rename to C_DECL_INVISIBLE.
(implicit_decl_warning, lookup_name_current_level,
record_function_scope_shadow): Don't prototype.
(pushdecl_function_level): Prototype.
* c-decl.c (truly_local_externals): New variable.
(struct binding_level): Adjust commentary.
(get_function_binding_level, clear_limbo_values,
record_function_scope_shadow): Kill.
(lookup_name_current_level, implicit_decl_warning): Are now static.
(any_external_decl, record_external_decl): New static functions.
(clone_underlying type): Split out of pushdecl.
(c_print_identifier): Update to match changes to struct
lang_identifier.
(poplevel): Delete #if 0 block. Make externals invisible
instead of clearing their IDENTIFIER_SYMBOL_VALUEs. Don't
call clear_limbo_values. Refer to IDENTIFIER_SYMBOL_VALUE not
IDENTIFIER_GLOBAL_VALUE or IDENTIFIER_LOCAL_VALUE.
(duplicate-decls): For real parm decl after a forward decl,
set TREE_ASM_WRITTEN here. Allow void foo(...) followed by
foo(...) { } with only a warning. Say whether a previous
declaration was implicit.
(warn_if_shadowing): Now handles all shadowing, not just
local-over-local. Clarify comments.
(pushdecl): Rewritten. There is no longer a distinction
between global and local symbol values; they're all
IDENTIFIER_SYMBOL_VALUE. Call record_external_decl on all
DECL_EXTERNAL decls, and use any_external_decl to check
against previous externals. Kill #if 0 blocks. Don't
tolerate error_mark_node being NULL.
(pushdecl_top_level): Handle only those cases which
Objective C (the only user) needs.
(pushdecl_function_level): New function.
(implicitly_declare): Create ordinary decls with
C_DECL_IMPLICIT set. Recycle old decls, however they got
created.
(lookup_name): It's always IDENTIFIER_SYMBOL_VALUE. Return 0
for C_DECL_INVISIBLE symbols.
(lookup_name_current_level): Likewise. Use chain_member.
(c_make_fname_decl): Don't muck with DECL_CONTEXT.
Use pushdecl_function_level.
(builtin_function): Use C_DECL_INVISIBLE.
(start_function): Don't muck with IDENTIFIER_IMPLICIT_DECL.
Use C_DECL_ISNT_PROTOTYPE and C_DECL_IMPLICIT.
(store_parm_decls): It's IDENTIFIER_SYMBOL_VALUE now.
(identifier_global_value): Same. Must scan
global_binding_level in extremis.
* c-typeck.c (undeclared_variable): New static function, split
from build_external_ref.
(build_external_ref): Use DECL_CONTEXT, not
IDENTIFIER_LOCAL_VALUE, to decide whether a local hides
an instance variable. Restructure for clarity.
* objc/objc-act.c: Use identifier_global_value, not
IDENTIFIER_GLOBAL_VALUE.
cp:
* decl.c: Update all calls to shadow_warning.
testsuite:
* gcc.c-torture/execute/builtin-noret-2.c: New.
* gcc.c-torture/execute/builtin-noret-2.x: New.
XFAIL builtin-noret-2.c at -O1 and above.
* gcc.dg/redecl.c: New.
* gcc.dg/Wshadow-1.c: Update error regexps.
From-SVN: r65460
|
|
* c-tree.h (struct lang_identifier): Remove error_locus field.
(IDENTIFIER_ERROR_LOCUS): Kill.
(record_function_scope_shadow): New prototype.
* c-typeck.c (build_external_ref): Don't complain if
decl is error_mark_node. When not at file scope, bind the
decl's local value to error_mark_node to suppress further
warnings, instead of setting IDENTIFIER_ERROR_LOCUS.
* c-decl.c (get_function_binding_level): New static function.
(record_function_scope_shadow): New exported function.
(c_make_fname_decl): Use get_function_binding_level.
From-SVN: r64504
|
|
* c-common.h (c_common_init, c_common_post_options): Update.
* c-objc-common.c (c_objc_common_init): Update for new prototype.
* c-opts.c (saved_lineno): New.
(c_common_post_options, c_common_init): Update prototypes,
move call to cpp_read_main_file from latter to former.
* c-tree.h (c_ojbc_common_init): Update.
* langhooks-def.h (lhd_post_options): New.
(LANG_HOOKS_INIT, LANG_HOOKS_POST_OPTIONS): Update.
* langhooks.c (lhd_post_options): New.
* langhooks.h (struct lang_hooks): Update post_options and init hooks.
* toplev.c (no_backend): New.
(process_options): Call post_options hook and set main_input_filename
and input_filename here.
(lang_dependent_init, do_compile): post_options hook moved to
process_options.
* objc/objc-act.c (objc_init): Update prototype.
* objc/objc-act.h (objc_init): Update prototype.
ada:
* misc.c (gnat_init): Update for new prototype.
cp:
* cp-tree.h (cxx_init): Update prototype.
* lex.c (cxx_init): Similarly.
f:
* com.c (ffe_init): Update prototype; move code to ffe_post_options.
(ffe_post_options): New.
java:
* lang.c (java_init): Update prototype, move code to java_post_options.
(java_post_options): Similarly.
treelang:
* tree1.c (in_fname): Fix type.
(treelang_init): Update prototype and use of in_fname.
* treelang.h (in_fname): Fix type.
* treetree.c (tree_code_if_start, tree_code_if_else,
tree_code_if_end, tree_code_create_function_prototype,
tree_code_create_function_initial, tree_code_create_funciton_wrapup,
tree_code_create_variable, tree_code_output_expression_statement)
: Fix prototypes and use of filenames.
* treetree.h: Similarly.
From-SVN: r64001
|
|
* Makefile.in (CRTSTUFF_CFLAGS): Add -fno-unit-at-a-time
(OBJS): Add callgraph.o
(callgraph.o): New.
* c-decl.c (expand_body_1): Break out from ...
(expand_body): This one; change calling convention
(finish_function): Move some of expand_body logic here.
(c_expand_deferred_function): Update call of expand_body
(c_expand_stmt): Use c_expand_body_1.
* c-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Define.
* c-objc-commin.c (c_objc_common_finish_file): Use callgraph code.
* c-tree.h (c_expand_body): Declare.
* callgraph.c: New file.
* flags.h (flag_unit_at_a_time): Declare.
* langhooks.h (LANG_HOOKS_CALLGRAPH_LOWER_FUNCTION,
LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION,
LANG_HOOKS_CALLGRAPH_INITIALIZER): New macros.
* langhooks.h (struct lang_hooks_for_callgraph): New.
(struct lang_hooks): Add callgraph field.
* toplev.c (flag_unit_at_a_time): New.
(lang_independent_options): Add flag_unit_at_a_time.
(process_options): Disable unit-at-a-time mode for frontends not
supporting callgraph.
* tree-inline.c (typedef struct inline_data): Add "decl"
(expand_call_inline): Update callgraph.
(optimize_inline_calls): Set id.decl.
* tree.h (cgraph_finalize_function, cgraph_finalize_compilation_unit,
cgraph_create_edges, dump_cgraph, cgraph_optimize, cgraph_remove_call
cgraph_calls_p): Declare.
* invoke.texi (-funit-at-a-time): Document
From-SVN: r62789
|
|
2002-09-12 Geoffrey Keating <geoffk@apple.com>
* ggc-common.c (ggc_mark_rtx_children_1): Update for changed name
mangling.
The following changes are merged from pch-branch:
* doc/gty.texi (GTY Options): Document %a.
* gengtype.c (do_scalar_typedef): New function.
(process_gc_options): Handle `length' option.
(set_gc_used_type): A pointer to an array of structures doesn't
qualify as a pointer to a structure.
(output_escaped_param): Add `%a' escape.
(write_gc_structure_fields): Allow 'desc' on array of unions.
(main): Define `uint8', `jword' and `JCF_u2' as scalars; use
do_scalar_typedef.
* gengtype.c (enum rtx_code): Make global.
(rtx_format): Make global.
(rtx_next): New.
(gen_rtx_next): New.
(write_rtx_next): New.
(adjust_field_rtx_def): Skip fields marked by chain_next.
(open_base_files): Delete redundant prototype.
(write_enum_defn): New.
(output_mangled_typename): Correct abort call.
(write_gc_marker_routine_for_structure): Handle chain_next and
chain_prev options.
(finish_root_table): Don't output redundant \n.
(main): Call gen_rtx_next, write_rtx_next, write_enum_defn.
* c-tree.h (union lang_tree_node): Add chain_next option.
* gengtype.h (NUM_PARAM): New definition.
(struct type): For TYPE_PARAM_STRUCT, allow multiple parameters.
* gengtype.c (find_param_structure): New.
(adjust_field_type): Handle param<n>_is option.
(process_gc_options): Detect use_params option. Update callers.
(set_gc_used_type): Add 'param' parameter, update callers. Handle
'use_params' option.
(open_base_files): Add splay-tree.h to list of files included.
(output_mangled_typename): New.
(write_gc_structure_fields): Update 'param' parameter to support
multiple parameters. Change name mangling. Allow parameterized
fields to have an apparent scalar type. Handle param<n>_is options,
use_param option.
(write_gc_marker_routine_for_structure): Update for change to name
mangling. Better guess the output file for parameterized types.
(write_gc_types): Update for change to name mangling.
(write_gc_root): Update for change to name mangling. Handle (ignore)
param<n>_is options.
* doc/gty.texi (GTY Options): Add description of param<n>_is
options, use_params option.
* ggc.h (ggc_mark_rtx): Update for changed name mangling.
* gengtype-lex.l: Produce token for param<n>_is.
* gengtype-yacc.y: Parse param<n>_is.
* gengtype.c (adjust_field_tree_exp): Don't name a variable 'rindex'.
* rtl.c: Update comment describing rtx_format.
* rtl.h (union rtunion): Separate definition and typedef.
(struct rtx_def): Use gengtype to mark.
* Makefile.in (gengtype.o): Also depend on rtl.def.
* ggc.h (ggc_mark_rtx_children): Delete prototype.
(ggc_mark_rtx): Change to alias of gengtype-generated routine.
* ggc-common.c (ggc_mark_rtx_children): Delete.
(ggc_mark_rtx_children_1): Delete.
(gt_ggc_m_rtx_def): Delete.
* gengtype.c (adjust_field_rtx_def): New.
(adjust_field_type): Call adjust_field_rtx_def.
(write_gc_structure_fields): Add 'default' case to switch if none
is specified; remove unused code.
* tree.h (struct tree_exp): Update for change to meaning
of special.
* gengtype.c (adjust_field_tree_exp): New function.
(adjust_field_type): Handle `tree_exp' special here.
(write_gc_structure_fields): Don't handle `tree_exp' special here.
Handle new `dot' option.
* gengtype.h: Make `info' a pointer-to-const.
* gengtype-yacc.y (yacc_ids): Use xasprintf.
* gengtype.c (write_gc_structure_fields): Remove implementation
of `always' option, add `default' option.
* doc/gty.texi (GTY Options): Remove documentation of `always',
add `default'.
Index: gcc/cp/ChangeLog
2002-09-12 Geoffrey Keating <geoffk@apple.com>
* cp-tree.h (union lang_tree_node): Add chain_next option.
Index: gcc/f/ChangeLog
2002-09-12 Geoffrey Keating <geoffk@apple.com>
* com.c (union lang_tree_node): Add chain_next option.
Index: gcc/java/ChangeLog
2002-09-12 Geoffrey Keating <geoffk@apple.com>
* java-tree.h (union lang_tree_node): Add chain_next option.
From-SVN: r57206
|
|
* c-typeck.c (c_tree_expr_nonnegative_p): New function.
(build_binary_op): Call c_tree_expr_nonnegative_p rather than
tree_expr_nonnegative_p.
(build_conditional_expr): Likewise.
* c-tree.h (c_tree_expr_nonnegative_p): Declare.
* gcc.dg/compare2.c: Remove xfail from cases 10 and 12.
From-SVN: r56927
|
|
[gcc/ChangeLog]
2002-09-06 Ziemowit Laski <zlaski@apple.com>
* c-lang.c (objc_is_id): New stub.
* c-tree.h (objc_is_id): New forward declaration.
* c-typeck.c (build_c_cast): Do not strip protocol
qualifiers from 'id' type.
* objc/objc-act.c (objc_comptypes): Correct handling
of protocol qualifiers.
(objc_is_id): New.
[gcc/testsuite/ChangeLog]
2002-09-05 Ziemowit Laski <zlaski@apple.com>
* objc.dg/proto-lossage-1.m: New test.
From-SVN: r56905
|
|
* c-lang.c (recognize_objc_keyword): Remove, no longer used.
* c-tree.h (recognize_objc_keyword): Remove decl.
* c-typeck.c (comp_target_types): Update a comment.
From-SVN: r56760
|
|
* c-tree.h (skip_evaluation): Move declaration...
* c-common.h: ... here.
* c-typeck.c (build_external_ref): Don't assemble_external nor
mark a tree as used if skip_evaluation is set.
* c-parse.in (typeof): New non-terminal to set skip_evaluation
around TYPEOF.
(typespec_nonreserved_nonattr): Use it.
From-SVN: r56358
|
|
2002-08-09 Ziemowit Laski <zlaski@apple.com>
* c-common.c (flag_objc): New.
* c-common.h (c_language_kind): Get rid of clk_objective_c
enum value.
(flag_objc): New extern declaration.
* c-decl.c (implicitly_declare): Call objc_check_decl
instead of maybe_objc_check_decl.
(finish_decl): Likewise.
(grokfield): Likewise.
(finish_struct): Likewise.
* c-lang.c (maybe_objc_check_decl): Rename to objc_check_decl.
(maybe_objc_comptypes): Rename to objc_comptypes.
(maybe_building_objc_message_expr): Rename to
objc_message_selector.
* c-lex.c (lex_charconst): Remove uses of clk_objective_c,
replace with flag_objc as needed.
* c-opts.c (c_common_init_options): Likewise.
(c_common_decode_option): Likewise.
* c-parse.in (init_reswords): Likewise.
* c-tree.h (maybe_objc_check_decl): Rename to objc_check_decl.
(maybe_objc_comptypes): Rename to objc_comptypes.
(maybe_building_objc_message_expr): Rename to
objc_message_selector.
* c-typeck.c (comptypes): Call objc_comptypes instead of
maybe_objc_comptypes, and/or objc_message_selector instead of
(comp_target_types): Likewise.
(convert_for_assignment): Likewise.
(warn_for_assignment): Likewise.
* cppinit.c (init_builtins): Set __OBJC__ manifest constant
independently of those for other languages.
* objc/objc-act.c (maybe_objc_comptypes): Delete.
(maybe_objc_check_decl): Delete.
(maybe_building_objc_message_expr): Rename to
objc_message_selector.
* objc/objc-lang.c (objc_init_options): Use clk_c instead of
clk_objective_c; set flag_objc flag.
From-SVN: r56173
|
|
* Makefile.in (c-opts.o, c-common.o, C_AND_OBJC_OBJS): Update.
* c-common.c: Don't include tree-inline.h.
(c_common_init_options, c_common_post_options): Move to c-opts.c.
* c-common.h (c_common_decode_option): New.
* c-decl.c (c_decode_option): Remove.
* c-lang.c (LANG_HOOKS_DECODE_OPTION): Use c_common_decode_option.
* c-opts.c: New file.
* c-tree.h (c_decode_option): Remove.
* doc/passes.texi: Update.
* objc/objc-act.c (objc_decode_option): Remove.
* objc/objc-act.h (objc_decode_option): Remove.
* objc/ojbc-lang.c (LANG_HOOKS_DECODE_OPTION): Use
c_common_decode_option.
cp:
* Make-lang.in (CXX_C_OBJS): Update.
* cp-lang.c (LANG_HOOKS_DECODE_OPTION): Use c_common_decode_option.
* cp-tree.h (cxx_decode_option): Remove.
* decl2.c (compare_options, lang_f_options, unsupported_options,
cxx_decode_option): Remove.
testsuite:
* objc.dg/const-str-2.m: Update.
* gcc.dg/cpp/c++98.c: Change to C extension.
* gcc.dg/cpp/c++98-pedantic.c: Similarly.
* gcc.dg/cpp/cpp.exp: Process .C extensions too.
From-SVN: r56105
|
|
* c-common.c: Define all C/ObjC/C++ warning and flag variables.
* c-common.h: Declare all C/ObjC/C++ warning and flag variables.
* c-decl.c: Move all warning and flag variables to c-common.c.
* c-format.c: Move all warning variables to c-common.c.
* c-tree.h: Move all warning and flag declarations to c-common.h.
* objc/objc-act.c: Move all warning variables to c-common.c.
(flag_warn_protocol): Rename warn_protocol.
cp:
* cp-tree.h: Move all warning and flag declarations to c-common.h.
* decl.c: Move all warning and flag variables to c-common.c.
* decl2.c: Move all warning and flag variables to c-common.c.
* lex.c (flag_digraphs): Remove.
(warn_traditional): Now in c-common.c.
From-SVN: r55923
|
|
* c-common.c (c_sizeof_or_alignof_type): Take a third argument for
complaining.
* c-common.h (c_sizeof): Adjust definition.
(c_alignof): Likewise.
* c-tree.h (c_sizeof_nowarn): Now macro.
* c-typeck.c (c_sizeof_nowarn): Remove definition.
cp/
* cp-tree.h (cxx_sizeof_nowarn): Now a macro.
(cxx_sizeof_or_alignof_type): Take a third argument.
(cxx_sizeof): Adjust definition.
(cxx_alignof): Likewise.
* init.c (build_delete): Use cxx_sizeof_nowarn to reflect reality.
* typeck.c (cxx_sizeof_or_alignof_type): Take a third argument for
complaining.
(c_sizeof_nowarn): Remove definition.
(build_unary_op): Use cxx_sizeof_nowarn.
From-SVN: r55744
|
|
* ginclude/varargs.h: Replace with stub which issues #error.
* ginclude/stdarg.h: __builtin_stdarg_start is renamed
__builtin_va_start.
* builtins.def (BUILT_IN_VARARGS_START): Delete.
(BUILT_IN_VA_START): New.
* builtins.c (expand_builtin_va_start): Eliminate first
argument and code to implement pre-ISO varargs.
(std_expand_builtin_va_start): Ignore first argument; it is
always 1.
(expand_builtin): Handle BUILT_IN_VA_START and
BUILT_IN_STDARG_START identically. Delete
BUILT_IN_VARARGS_START case.
* function.c (assign_parms): Delete hide_last_arg and all
its uses.
(mark_varargs): Delete function.
* function.h (struct function): Delete 'varargs' bit.
(current_function_varargs): Delete macro.
* tree.h: Don't declare mark_varargs.
* c-decl.c (c_function_varargs, c_mark_varargs): Delete.
(c_expand_body): Don't call mark_varargs.
* c-objc-common.c: Handle BUILT_IN_VA_START and
BUILT_IN_STDARG_START identically. Delete
BUILT_IN_VARARGS_START case.
* c-tree.h: Don't declare c_mark_varargs.
* c-parse.in: Remove grammar rules for '&...' (which has been
commented out since before 2.7.2) and for '...' in K+R
argument declarations.
* builtins.c, function.c, integrate.c, sibcall.c,
config/alpha/unicosmk.h, config/arc/arc.c, config/arc/arc.h,
config/avr/avr.c, config/cris/cris.c, config/fr30/fr30.c,
config/i960/i960.c, config/i960/i960.md, config/m32r/m32r.c,
config/m32r/m32r.h, config/m88k/m88k.c, config/m88k/m88k.h,
config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
config/mn10300/mn10300.c, config/pa/som.h, config/s390/s390.c,
config/sh/sh.c, config/sh/sh.h, config/sparc/sparc.h,
config/stormy16/stormy16.c: Delete all references to
current_function_varargs, and code predicated on that flag.
* config/alpha/alpha.c (alpha_va_start),
config/arc/arc.c (arc_va_start),
config/i386/i386.c (ix86_va_start),
config/mips/mips.c (mips_va_start),
config/mn10300/mn10300.c (mn10300_va_start),
config/rs6000/rs6000.c (rs6000_va_start),
config/s390/s390.c (s390_va_start),
config/sh/sh.c (sh_va_start),
Ignore first argument; it is always 1.
* config/c4x/c4x-protos.h, config/c4x/c4x.c: Delete c4x_va_start.
* config/ia64/ia64-protos.h, config/ia64/ia64.c: Delete ia64_va_start.
* config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c:
Delete m68hc11_va_start.
* config/c4x/c4x.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h:
No need to define EXPAND_BUILTIN_VA_START.
* doc/invoke.texi, doc/sourcebuild.texi, doc/tm.texi,
doc/trouble.texi: Remove references to GCC-provided <varargs.h>.
testsuite:
* c-torture/execute/991216-3.c, c-torture/execute/strct-varg-1.c,
c-torture/execute/va-arg-7.c, c-torture/execute/va-arg-8.c,
c-torture/execute/va-arg-15.c, c-torture/execute/va-arg-16.c,
c-torture/execute/va-arg-17.c, c-torture/execute/va-arg-19.c:
Convert to use <stdarg.h>.
* c-torture/execute/va-arg-3.c, c-torture/execute/va-arg-3.x:
Delete.
* gcc.dg/va-arg-2.c: New.
* lib/gcc.exp, lib/objc.exp: Remove code to set -DNO_VARARGS.
From-SVN: r55472
|
|
From-SVN: r54232
|
|
* Makefile.in (C_COMMON_H): Fix.
Update other targets.
* c-common.c: Don't include c-lex.h.
(builtin_define_with_value): Make static and prototype.
(builtin_define_std): Move from c-lex.h.
* c-common.h (init_c_lex): Move from c-lex.h.
* c-decl.c: Don't include c-lex.h.
(make_pointer_declarator): Move from c-parse.in.
* c-lex.c: Don't include c-lex.h.
* c-lex.h: Remove.
* c-parse.in: Don't include c-lex.h; include c-pragma.h.
(make_pointer_declarator): Move to c-decl.c.
* c-pragma.c: Don't include c-lex.h.
* c-pragma.h (yydebug, YYDEBUG, parse_in, c_lex): Move from c-lex.h.
* c-tree.h (make_pointer_declarator): New.
cp:
* lex.c: Don't include c-lex.h.
* parse.y, spew.c: Don't include c-lex.h; include c-pragma.h.
doc:
* passes.texi, tm.texi: Update.
objc:
* Make-lang.in: Update and correct.
* objc-act.c: Don't include c-lex.h or cpplib.h.
treelang:
* treetree.c: Don't include c-lex.h.
config:
* darwin-c.c: Don't include c-lex.h.
* c4x/c4x-c.c: Don't include c-lex.h.
* c4x/t-c4x: Update.
* i370/i370-c.c: Don't include c-lex.h.
* i370/t-i370: Update.
* i960/i960-c.c: Don't include c-lex.h.
* i960/i960.c: Don't include cpplib.h, c-lex.h or c-pragma.h.
* i960/t-960bare: Update.
* i960/t-vxworks: Update.
* rs6000/rs6000-c.c: Don't include c-lex.h; include c-pragma.h.
* rs6000/t-darwin: Update.
* rs6000/t-rs6000-c-rule: Update.
* v850/v850-c.c: Don't include c-lex.h.
* v850/v850.c: Don't include c-lex.h or cpplib.h.
From-SVN: r53876
|
|
* c-common.c (warn_multichar): New.
(c_common_init): Set CPP's warn_multichar.
* c-common.h (warn_multichar): New.
* c-decl.c (warn_multichar): Remove.
* c-lex.c (lex_charconst): Update.
* c-tree.h (warn_multichar): Remove.
* cppexp.c (eval_token): Sign-extend charconst value.
* cppinit.c (cpp_create_reader): Set warn_multichar.
* cpplex.c (cpp_interpret_charconst): Don't sign-extend
each character. Update prototype. Sign-extend the result.
* cpplib.h: Fix conditions.
(struct cpp_options): Add new warning flag.
(cpp_interpret_charconst): Update prototype.
cp:
* Make-lang.in (decl2.o): Update.
* cp-tree.h (warn_multichar): Remove.
* decl2.c: Include c-common.h.
(warn_multichar): Remove.
doc:
* cpp.texi: Update documentation.
testsuite:
* gcc.dg/cpp/charconst-3.c: Correct tests accordingly.
From-SVN: r53240
|
|
* c-common.h (c_common_parse_file): Update.
* c-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
* c-lex.c (YYDEBUG): Get from c-lex.h.
(c_common_parse_file): Update.
* c-lex.h (YYDEBUG, yydebug): New.
* c-parse.in (YYDEBUG): Get from c-lex.h.
(c_set_yydebug): Remove.
* c-tree.h (c_set_yydebug): Remove.
* langhooks-def.h (lhd_do_nothing_i): New.
(lhd_set_yydebug, LANG_HOOKS_SET_YYDEBUG): Remove.
(LANG_HOOKS_PARSE_FILE, LANG_HOOKS_INITIALIZER): Update.
* langhooks.c (lhd_do_nothing_i): New.
(lhd_set_yydebug): Remove.
* langhooks.h (struct lang_hooks): Update.
* toplev.c (set_yydebug): New.
(compile_file): Update call to parse_file hook.
(decode_d_option): Update.
ada:
* misc.c (gnat_parse_file): Update.
cp:
* cp-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
* cp-tree.h (cxx_set_yydebug): Die.
* lex.c (YYDEBUG): Get from c-lex.h.
(cxx_set_yydebug): Remove.
* parse.y: Include c-lex.h.
(YYDEBUG): Get from c-lex.h.
f:
* com.h (ffe_parse_file): Update.
* lex.c (ffe_parse_file): Update.
java:
* java-tree.h (java_parse_file): Update.
(java_set_yydebug): Remove.
* jcf-parse.c (yydebug): Remove.
(java_set_yydebug): Die.
(java_parse_file): Update.
* lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
objc:
* objc-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
From-SVN: r52753
|
|
* Makefile.in: Update.
* decl.c (push_c_function_context, pop_c_function_context,
mark_c_function_context): Rename for consistency.
* c-objc-common.c (c_objc_common_init): Langhooks set elsewhere.
* c-tree.h (push_c_function_context, pop_c_function_context,
mark_c_function_context): Rename for consistency.
* c-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
* function.c (init_lang_status, save_lang_status,
restore_lang_status, mark_lang_status, free_lang_status):
Move to langhooks.h.
(push_function_context_to, pop_function_context_from,
free_after_parsing, prepare_function_start, ggc_mark_struct_function):
Update.
* function.h (init_lang_status, save_lang_status,
restore_lang_status, mark_lang_status, free_lang_status):
Move to langhooks.h.
* langhooks-def.h (LANG_HOOKS_FUNCTION_INIT,
LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_ENTER_NESTED,
LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK,
LANG_HOOKS_FUNCTION_INITIALIZER): New.
(LANG_HOOKS_INITIALIZER): Update.
(lhd_do_nothing_f): New.
* langhooks.h (struct lang_hooks_for_functions): New.
(struct lang_hooks): New hooks.
* langhooks.c (lhd_do_nothing_f): New.
cp:
* cp-lang.c (LANG_HOOKS_FUNCTION_INIT,
LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_MARK): Redefine.
* cp-tree.h (cxx_push_function_context, cxx_pop_function_context,
cxx_mark_function_context): New.
* decl.c (push_cp_function_context, pop_cp_function_context,
mark_cp_function_context): Rename for consistency.
(cxx_init_decl_processing): Don't set old hooks.
objc:
* objc-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
From-SVN: r52551
|
|
* builtins.c: Include langhooks.h.
(lang_type_promotes_to): Remove.
(expand_builtin_va_arg): Use new hook.
* c-common.c (c_common_nodes_and_builtins): Don't set hook.
(simple_type_promotes_to): Move to c-typeck.c.
* c-common.h (simple_type_promotes_to): Remove.
* c-decl.c (duplicate_decls, grokdeclarator): Update.
* c-format.c: Include langhooks.h.
(check_format_types): Update.
* c-tree.h (c_type_promotes_to): New.
* c-typeck.c (c_type_promotes_to): Move from c-common.c.
(type_lists_compatible_p): Update.
* langhooks-def.h (lhd_type_promotes_to): New.
(LANG_HOOKS_TYPE_PROMOTES_TO): New.
(LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
* langhooks.c (lhd_type_promotes_to): New.
* langhooks.h (struct lang_hooks_for_types): New hook.
* tree.h (lang_type_promotes_to): Remove.
cp:
* call.c (convert_type_from_ellipsis): Rename, update.
* cp-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
* cp-tree.h (convert_type_from_ellipsis): Rename.
* decl.c (cxx_init_decl_processing): Don't set hook.
objc:
* objc-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
From-SVN: r52512
|
|
* c-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
* c-tree.h (c_incomplete_type_error): New.
* c-typeck.c (require_complete_type, build_component_ref): Update.
(incomplete_type_error): Rename.
* langhooks-def.h (lhd_incomplete_type_error): New.
(LANG_HOOKS_INCOMPLETE_TYPE_ERROR): New.
(LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
* langhooks.c (lhd_incomplete_type_error): New.
* langhooks.h (struct lang_hooks_for_types): New hook.
* tree.c (size_in_bytes): Use new hook.
* tree.h (incomplete_type_error): Remove.
ada: * gigi.h (incomplete_type_error): Remove.
* utils.c (incomplete_type_error): Remove.
cp:
* call.c (build_new_method_call): Update.
* cp-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
* cp-tree.h (cxx_incomplete_type_error): New.
* decl.c (grokdeclarator, grokparms): Update.
* decl2.c (check_classfn): Update.
* pt.c (tsubst): Update.
* typeck.c (complete_type_or_else, expr_sizeof,
decay_conversion): Update.
* typeck2.c (incomplete_type_error): Rename.
(add_exception_specifier): Update.
f:
* com.c (incomplete_type_error): Remove.
java:
* typeck.c (incomplete_type_error): Remove.
objc:
* objc-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
From-SVN: r52480
|
|
PR opt/4330
* langhooks.h (lang_hooks.decls.warn_unused_global): New.
* toplev.c (check_global_declarations): Use it.
* langhooks-def.h (lhd_warn_unused_global_decl): Declare.
(LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
(LANG_HOOKS_DECLS): Add it.
* langhooks.c (lhd_warn_unused_global_decl): New.
* c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
* c-objc-common.c (c_warn_unused_global_decl): New.
* c-tree.h (c_warn_unused_global_decl): Declare.
* objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
* cp-lang.c (cxx_warn_unused_global_decl): New.
(LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
* g++.dg/warn/Wunused-2.C: New.
* gcc.dg/unused-4.c: New.
From-SVN: r51818
|
|
* c-decl.c (grokdeclarator): Update.
* c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
* c-tree.h (c_mark_addressable): New.
* c-typeck.c (default_function_array_conversion, build_unary_op,
build_array_ref, convert_for_assignment): Update.
(mark_addressable): Rename.
* calls.c (try_to_integrate, expand_call): Use langhook.
* expr.c (expand_expr): Use langhook.
* langhooks-def.h (LANG_HOOKS_INITIALIZER): Update.
* langhooks.h (struct lang_hooks): New hook.
* stmt.c (expand_asm_operands): Use langhook.
* tree.h (mark_addressable): Remove.
ada:
* decl.c (gnat_to_gnu_entity): Update.
* gigi.h (mark_addressable): Rename.
* misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
* trans.c (tree_transform): Update.
* utils.c (create_var_decl): Update.
* util2.c (build_binary_op, build_unary_op,
fill_vms_descriptor): Update.
(mark_addressable): Rename, update.
cp:
* call.c (build_addr_func): Update.
* class.c (resolve_address_of_overloaded_function): Update.
* cp-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
* cp-tree.h (cxx_mark_addressable): New.
* decl.c (register_dtor_fn, cxx_maybe_build_cleanup): Update.
* decl2.c (build_cleanup): Update.
* except.c (build_throw): Update.
* init.c (resolve_offset_ref): Update.
* pt.c (convert_nontype_argument): Update.
* semantics.c (finish_asm_stmt, simplify_affr_init_exprs_r): Update.
* typeck.c (decay_conversion, build_array_ref, build_unary_op,
unary_complex_lvalue): Update.
(mark_addressable): Rename.
f:
* com.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
(mark_addressable): Rename.
(ffecom_arrayref_, ffecom_1): Update.
java:
* java-tree.h (java_mark_addressable): New.
* lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
* typeck.c (mark_addressable): Rename, update.
objc:
* objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
From-SVN: r51705
|
|
* c-common.c (c_unsafe_for_reeval): Rename.
* c-common.h (c_unsafe_for_reeval): Rename.
* c-decl.c (finish_incomplete_decl): Rename.
(c_init_decl_processing): Don't set langhook.
* c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
* c-objc-common.c (c_objc_common_init): Don't set langhook.
* c-tree.h (finish_incomplete_decl): Rename.
* langhooks-def.h (lhd_unsafe_for_reeval): New.
(LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
(LANG_HOOKS_INITIALIZER): Update.
* langhooks.c (lhd_unsafe_For_reeval): New.
* langhooks.h (struct langhooks): New hooks.
* toplev.c (incomplete_decl_finalize_hook): Remove.
(wrapup_global_declarations): Update.
* tree.c (lang_unsafe_for_reeval): Remove.
(unsafe_for_reeval): Update.
* tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook):
Remove.
ada:
* gigi.h (finish_incomplete_decl): Rename.
* misc.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL): Redefine.
* utils.c (gnat_init_decl_processing): Don't set hook.
(finish_incomplete_decl): Rename.
cp:
* cp-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
* lex.c (cxx_init): Don't set hook.
objc:
* objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
From-SVN: r51673
|
|
* c-decl.c (finish_function): New arg can_defer_p. Pass it
on to c_expand_body.
* c-tree.h (finish_function): Update decl.
* c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls.
From-SVN: r51518
|
|
* Makefile.in (attribs.o): Update.
* attribs.c: Include langhooks.h.
(decl_attributes): Use langhook.
* c-decl.c (insert_default_attributes): Rename.
* c-tree.h (c_insert_default_attributes): New.
* langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New.
(LANG_HOOKS_INITIALIZER): Update.
* langhooks.h (struct lang_hooks): New hook.
* tree.h (insert_default_attributes): Remove.
ada:
* misc.c (insert_default_attributes): Remove.
cp:
* cp-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
* cp-tree.h (cxx_insert_default_attributes): New.
* decl.c (insert_default_attributes): Rename.
objc:
* objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
From-SVN: r51488
|
|
* Makefile.in (ggc-common.o): Update.
* c-decl.c (lang_mark_tree): Rename c_mark_tree.
* c-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
* c-tree.h (c_mark_tree): New.
* ggc-common.c: Include langhooks.h.
(gcc_mark_trees): Use new langhook.
* ggc-callbacks.c: Delete file.
* ggc.h (lang_mark_tree): Remove.
* langhooks-def.h (LANG_HOOKS_MARK_TREE): New.
(LANG_HOOKS_INITIALIZER): Update.
* langhooks.h (struct lang_hooks): New hook.
ada:
* misc.c (LANG_HOOKS_MARK_TREE): Redefine.
(lang_mark_tree): Make static, rename.
cp:
* cp-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
* cp-tree.h (cxx_mark_tree): New.
* decl.c (lang_mark_tree): Rename cxx_mark_tree.
f:
* com.c (LANG_HOOKS_MARK_TREE): Redefine.
(lang_mark_tree): Rename ffe_mark_tree, make static.
java:
* decl.c (lang_mark_tree): Rename java_mark_tree.
* java-tree.h (java_mark_tree): New.
* java-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
objc:
* objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
From-SVN: r51369
|