Age | Commit message (Collapse) | Author | Files | Lines |
|
and line.
* stmt.c (expand_asm_operands): Take a location_t, instead of
individual file and line.
* c-typeck.c (c_expand_asm_operands): Likewise.
* tree.h (expand_asm_operands): Update decl.
* c-common.h (c_expand_asm_operands): Likewise.
* c-semantics (genrtl_asm_stmt): Update call.
cp/
* typeck.c (c_expand_asm_operands): Take location_t, instead of
individual file and line.
ada/
* trans.c (tree_transform): Update call to expand_asm_operands.
From-SVN: r71884
|
|
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
|
|
* c-common.c (handle_warn_unused_result_attribute): New function.
(c_common_attribute_table): Add warn_unused_result.
(c_expand_expr): Issue warning when result of inlined function
with warn_unused_result attribute is ignored.
* calls.c (expand_call): Issue warning when result of function
with warn_unused_result attribute is ignored.
* c-common.h (STMT_EXPR_WARN_UNUSED_RESULT): Define.
* expr.c (expr_wfl_stack): Define.
(expand_expr) <case EXPR_WITH_FILE_LOCATION>: If ignore,
pass const0_rtx as target. Chain locations into expr_wfl_stack.
* tree-inline.c (expand_call_inline): Set STMT_EXPR_WARN_UNUSED_RESULT
bit if inlined function has warn_unused_result attribute.
* input.h (expr_wfl_stack): Declare.
* doc/extend.texi: Document warn_unused_result attribute.
* gcc.dg/attr-warn-unused-result.c: New test.
Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r71424
|
|
2003-09-15 Andreas Jaeger <aj@suse.de>
Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* doc/invoke.texi (Warning Options): Describe -Wold-style-definition.
* c-opts.c (c_common_handle_option): Handle OPT_Wold_style_definition.
* c-parse.in: Warn about old-style parameter definition.
* c-common.c: Define warn_old_style_defintion.
* c-common.h: Declare it.
* c.opt: Add Wold-style-defintion.
testsuite:
2003-09-15 Andreas Jaeger <aj@suse.de>
* gcc.dg/Wold-style-definition-1.c: New test.
From-SVN: r71400
|
|
* langhooks-def.h (lhd_register_builtin_type): New function.
(LANG_HOOKS_REGISTER_BUILTIN_TYPE): New macro.
(LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
* langhooks.h (lang_hooks_for_types): Add register_builtin_type.
* langhooks.c (lhd_register_builtin_type): New function.
* c-common.h (c_register_builtin_type): Declare.
* c-common.c (c_register_builtin_type): New function.
* c-lang.c (LANG_HOOKS_REGISTER_BUILTIN_TYPE): Define to
c_register_builtin_type.
* config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Remove __fpreg,
__float80, and __float128 macros.
* config/ia64/ia64.c (ia64_init_builtins): Create __fpreg,
__float80, and __float128 types.
* cp-lang.c (LANG_HOOKS_REGISTER_BUILTIN_TYPE): Define to
c_register_builtin_type.
* gcc.dg/ia64-types1.c: New test.
* gcc.dg/ia64-types2.c: Likewise.
From-SVN: r71227
|
|
* pretty-print.h (pp_maybe_newline_and_indent): New macro.
* c-pretty-print.h (c_pretty_printer): Now typedef to the
structure. Be consistent with pretty-print.h abd cxx-pretty-print.h
(struct c_pretty_print_info): Document. Add new fields.
(pp_type_specifier_seq): Rename from pp_c_type_specifier.
(pp_direct_abstract_declarator): New macro.
(pp_ptr_operator): Likewise.
(pp_simple_type_specifier): Likewise.
(pp_expression): Likewise.
(pp_parameter_list): Rename from pp_parameter_declaration.
* c-pretty-print.c (pp_c_whitespace): Now a function.
(pp_c_left_paren): Likewise.
(pp_c_right_paren): Likewise.
(pp_c_dot): Likewise.
(pp_c_ampersand): Likewise.
(pp_c_arrow): Likewise.
(pp_c_semicolon): Likewise.
(pp_c_type_cast): New function.
(pp_c_space_for_pointer_operator): Likewise.
(pp_c_call_argument_list): Likewise.
(pp_c_cv_qualifier): Adjust prototype.
(pp_c_type_qualifier_list): Likewise.
(pp_c_pointer): Likewise. Handle REFERENCE_TYPE here.
(pp_c_type_specifier): Rename from pp_c_simple_type_specifier.
Adjust to follow standard grammar.
(pp_c_specifier_qualifier_list): Adjusr prototype. Handle
REFERENCE_TYPE. Tidy.
(pp_c_parameter_type_list): Adjust prototype. Tidy.
(pp_c_parameter_declaration): Remove.
(pp_c_abstract_declarator): Adjust prototype.
(pp_c_direct_abstract_declarator): Likewise.
(pp_c_type_id): Likewise.
(pp_c_storage_class_specifier): Likewise.
(pp_c_function_specifier): Likewise.
(pp_c_declaration_specifiers): Likewise.
(pp_c_direct_declarator): Likewise.
(pp_c_declarator): Likewise.
(pp_c_declarator): Likewise.
(pp_c_declaration): Likewise.
(pp_c_attributes): Likewise. Tidy.
(pp_c_function_definition): Adjust prototype.
(pp_c_char): Likewise.
(pp_c_string_literal): Likewise.
(pp_c_integer_constant): Likewise.
(pp_c_character_constant): Likewise.
(pp_c_bool_constant): Likewise.
(pp_c_enumeration_constant): Likewise.
(pp_c_floating_constant): Likewise.
(pp_c_constant): Likewise.
(pp_c_identifier): Likewise.
(pp_c_primary_expression): Likewise. Remove TARGET_EXPR case. Tidy.
(pp_c_initializer): Adjust prototype.
(pp_c_init_declarator): Likewise.
(pp_c_initializer_list): Likewise.
(pp_c_id_expression): Likewise.
(pp_c_postfix_expression): Likewise.
(pp_c_expression_list): Likewise.
(pp_c_unary_expression): Likewise.
(pp_c_cast_expression): Likewise.
(pp_c_multiplicative_expression): Likewise.
(pp_c_additive_expression): Likewise.
(pp_c_shift_expression): Likewise.
(pp_c_relational_expression): Likewise.
(pp_c_equality_expression): Likewise.
(pp_c_and_expression): Likewise.
(pp_c_exclusive_or_expression): Likewise.
(pp_c_inclusive_or_expression): Likewise.
(pp_c_logical_and_expression): Likewise.
(pp_c_logical_or_expression): Likewise.
(pp_c_conditional_expression): Likewise.
(pp_c_assignment_expression): Likewise.
(pp_c_expression): Likewise. Tidy.
(pp_c_statement): Likewise. Document.
(pp_c_pretty_printer_init): Adjust prototype. Tidy.
* c-lang.c (c_initialize_diagnostics): Update.
* c-common.h (strip_pointer_operator): Declare.
* c-common.c (strip_pointer_operator): Define.
cp/
* cxx-pretty-print.h (pp_cxx_flag_default_argument): New flag.
(cxx_pretty_printer): Adjust base type.
(pp_cxx_function_specifier): Declare.
* cxx-pretty-print.c (pp_cxx_whitespace): New macro.
(pp_cxx_left_paren): Likewise.
(pp_cxx_right_paren): Likewise.
(pp_cxx_dot): Likewise.
(pp_cxx_arrow): Likewise.
(pp_cxx_semicolon): Likewise.
(pp_cxx_identifier): Likewise.
(pp_cxx_cv_qualifier_seq): Likewise.
(pp_cxx_storage_class_specifier): Likewise.
(pp_cxx_expression_list): Likewise.
(pp_cxx_space_for_pointer_operator): Likewise.
(pp_cxx_init_declarator): Likewise.
(pp_cxx_call_argument_list): Likewise.
(pp_cxx_nonconsecutive_character): Tidy.
(pp_cxx_conversion_function_id): New function.
(pp_cxx_template_id): Likewise.
(pp_cxx_class_name): Likewise.
(pp_cxx_template_keyword_if_needed): Likewise.
(pp_cxx_nested_name_specifier): Likewise.
(pp_cxx_unqualified_id): Tidy
(pp_cxx_qualified_id): Handle more nodes.
(pp_cxx_primary_expression): Tidy.
(pp_cxx_postfix_expression): Likewise.
(pp_cxx_new_expression): Tidy.
(pp_cxx_delete_expression): Likewise.
(pp_cxx_cast_expression): New function.
(pp_cxx_pm_expression): Tidy.
(pp_cxx_conditional_expression): Likewise.
(pp_cxx_assignment_operator): New function.
(pp_cxx_assignment_expression): Tidy.
(pp_cxx_expression): New function.
(pp_cxx_function_specifier): Likewise.
(pp_cxx_decl_specifier_seq): Likewise.
(pp_cxx_simple_type_specifier): Tidy.
(pp_cxx_type_specifier_seq): Likewise.
(pp_cxx_ptr_operator): New function.
(pp_cxx_implicit_parameter_type): Likewise.
(pp_cxx_parameter_declaration): Tidy.
(pp_cxx_parameter_declaration_clause): New function.
(pp_cxx_exception_specification): Likewise.
(pp_cxx_direct_declarator): Tidy.
(pp_cxx_declarator): Likewise.
(pp_cxx_ctor_initializer): New function.
(pp_cxx_function_definition): Likewise.
(pp_cxx_abstract_declarator): Tidy.
(pp_cxx_direct_abstract_declarator): Likewise.
(pp_cxx_type_id): Likewise.
(pp_cxx_exception_declaration): New function.
(pp_cxx_statement): Likewise.
(pp_cxx_simple_declaration): Likewise.
(pp_cxx_template_parameter_list): Likewise.
(pp_cxx_template_parameter): Likewise.
(pp_cxx_template_declaration): Likewise.
(pp_cxx_explicit_specialization): Likewise.
(pp_cxx_explicit_instantiation): Likewise.
(pp_cxx_declaration): Tidy.
(pp_cxx_pretty_printer_init): Initialize more fields.
From-SVN: r70777
|
|
* c-common.c: Fix comment formatting.
* c-common.h: Likewise.
* c-decl.c: Likewise.
* cppinit.c: Likewise.
* cpplib.h: Likewise.
* emit-rtl.c: Likewise.
* input.h: Likewise.
* line-map.h: Likewise.
* opts.c: Likewise.
* opts.h: Likewise.
* simplify-rtx.c: Likewise.
From-SVN: r70577
|
|
ChangeLog:
* langhooks-def.h (lhd_decl_uninit): Declare.
(LANG_HOOKS_DECL_UNINIT): New macro.
(LANG_HOOKS_INITIALIZER): Adjust.
* langhooks.h (struct lang_hooks): Add new field
decl_uninit.
* langhooks.c (lhd_decl_uninit): Define.
* c-common.c (c_decl_uninit_1): New function.
(c_decl_uninit): New function.
(warn_init_self): Define.
* c-common.h (c_decl_uninit): Declare.
(warn_init_self): Declare.
* c.opt: Introduce -Winit-self.
* c-opts.c (c_common_handle_options): Set warn_init_self.
* c-lang.c (LANG_HOOKS_DECL_UNINIT): Define.
* objc/objc-lang.c (LANG_HOOKS_DECL_UNINIT): Define.
* function.c (uninitialized_vars_warning): Call the language hook.
* doc/invoke.texi: Document -Winit-self.
cp/ChangeLog:
* cp/cp-lang.c (LANG_HOOKS_DECL_UNINIT): Define.
testsuite:
* gcc.dg/uninit-D.c: New Test.
* gcc.dg/uninit-E.c: New Test.
* gcc.dg/uninit-F.c: New Test.
* gcc.dg/uninit-G.c: New Test.
From-SVN: r70574
|
|
* c.opt: Introduce -fworking-directory.
* doc/cpp.texi, doc/invoke.texi, doc/cppopts.texi: Document it.
* c-common.h (flag_working_directory): Declare.
* c-common.c (flag_working_directory): Define.
* c-opts.c (c_common_handle_options): Set it.
(sanitize_cpp_opts): Set...
* cpplib.h (struct cpp_options): ... working_directory option.
(struct cpp_callbacks): Add dir_change.
* cppinit.c (read_original_filename): Call...
(read_original_directory): New. Look for # 1 "directory//"
and process it.
(cpp_read_main_file): Call dir_change callback if working_directory
option is set.
* gcc.c (cpp_unique_options): Pass -g*.
* c-lex.c (cb_dir_change): New.
(init_c_lex): Set dir_change callback.
* toplev.c (src_pwd): New static variable.
(set_src_pwd, get_src_pwd): New functions.
* toplev.h (get_src_pwd, set_src_pwd): Declare.
* dbxout.c (dbxout_init): Call get_src_pwd() instead of getpwd().
* dwarf2out.c (gen_compile_unit_die): Likewise.
* dwarfout.c (output_compile_unit_die, dwarfout_init): Likewise.
From-SVN: r70189
|
|
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 (gettags, pushdecl_function_level): Delete.
(last_function_parm_vars): Rename last_function_parm_others.
(current_function_parm_vars): Rename current_function_parm_others.
(struct c_scope): Rewrite comment explaining this data structure.
Add names_last, blocks_last, parms_last fields. Rename
incomplete_list to incomplete.
(SCOPE_LIST_APPEND, SCOPE_LIST_CONCAT): New macros.
(poplevel): Ignore second argument. No need to nreverse
anything. Restructure such that each list is processed
exactly once. Use 'const location_t *locus' syntactic sugar
variable where useful. Issue unused variable warnings
ourselves, do not rely on function.c.
(insert_block, pushdecl, bind_label): Use SCOPE_LIST_APPEND.
(pushdecl_top_level): Likewise. Don't call duplicate_decls.
(implicitly_declare): decl cannot be error_mark_node.
(undeclared_variable): Manipulate scope structure directly.
(c_make_fname_decl): Likewise.
(getdecls, c_init_decl_processing): Fix comment.
(mark_forward_parm_decls): Use SCOPE_LIST_CONCAT. No need
for 'last' variable.
(grokparms): No need to nreverse parms list.
(store_parm_decls_newstyle): Set up the parms_last and
names_last fields of the new scope too.
(store_parm_decls_oldstyle): Can assume DECL_WEAK is not set
on parms to begin with; check this under ENABLE_CHECKING. Set
up parms_last.
(check_for_loop_decls): Refer directly to current_scope->tags.
Use consistent quote style in diagnostics.
(c_write_global_declarations): The names list is not backward.
* c-common.h: Don't prototype gettags.
* c-parse.in: Call poplevel with second argument 0 always.
From-SVN: r70061
|
|
* opts.c (in_fnames, num_in_fnames): Moved here from c-opts.
(add_input_filename): New function.
(handle_options): Call add_input_filename directly instead of
with a lang hook.
* opts.h (in_fnames, num_in_fnames): Moved here.
(add_input_filename): Declare.
* c-decl.c: Need to #include opts.h.
* Makefile.in (c-decl.o): Also depends on opts.h.
* c-opts.c (in_fnames, num_in_fnames): Moved to opts.c.
(c_common_handle_filename): Replaced by add_input_filename.
* c-common.h (in_fnames, num_in_fnames, c_common_handle_filename):
Remove.
* langhooks.h (struct lang_hooks): Remove handle_filename hook.
* langhooks-def.h (LANG_HOOKS_HANDLE_FILENAME): Remove macro.
(LANG_HOOKS_INITIALIZER): Remove use of LANG_HOOKS_HANDLE_FILENAME.
* c-lang.c (LANG_HOOKS_HANDLE_FILENAME): Remove macro.
From-SVN: r70012
|
|
inlined)
* gcse.c (insert_store): Ignore fake edges.
* c-common.c (flag_vtable_gc): Kill.
* c-common.g (flag_vtable_gc): Kill.
* c-opts (c_common_handle_option): Kill.
* c.opt (fvtable-gc): Kill.
* final.c (final_scan_insn): Do not call assemble_vtable_entry.
* output.h (assemble_vtable_entry, assemble_vtable_inherit): Kill.
* varasm.c (assemble_vtable_entry, assemble_vtable_inherit): Kill.
* invoke.texi (-ftable-gc): Kill documentation.
PR C/10320
* tree-inline.c (inlinable_function_p): Don't set DECL_UNINLINABLE
just because function body is missing.
* i386.c (pic_symbolic_operand): Properly detect RIP relative unspecs.
* class.c (build_vtable_entry_ref): Kill.
(build_vtbl_ref_1): Do not call build_vtable_entry_ref.
(build_vfn_ref): Do not call build_vtable_entry_ref.
* cp-lang.c (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): Kill.
* cp-tree.h (prepare_assemble_variable): Kill.
* cp-decl.c (prepare_assemble_variable): Kill.
From-SVN: r69964
|
|
2003-07-29 Geoffrey Keating <geoffk@apple.com>
* c-common.c (allow_pch): Remove.
* c-common.h (allow_pch): Remove.
(c_common_no_more_pch): Declare.
* c-lex.c (c_lex): Call c_common_no_more_pch when appropriate.
* c-pch.c: Include hosthooks.h.
(c_common_valid_pch): Don't check allow_pch.
(c_common_read_pch): Clear valid_pch to prevent reading PCH files.
(c_common_no_more_pch): New.
* ggc-common.c: Include hosthooks.h.
(gt_pch_save): Call gt_pch_get_address.
(gt_pch_restore): Call gt_pch_use_address.
* hooks.c (hook_voidp_size_t_null): New.
(hook_bool_voidp_size_t_false): New.
* hooks.h (hook_voidp_size_t_null): New.
(hook_bool_voidp_size_t_false): New.
* hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): New.
(HOST_HOOKS_GT_PCH_USE_ADDRESS): New.
(HOST_HOOKS_INITIALIZER): Add HOST_HOOKS_GT_PCH_GET_ADDRESS,
HOST_HOOKS_GT_PCH_USE_ADDRESS.
* hosthooks.h (struct host_hooks): Add gt_pch_get_address,
gt_pch_use_address.
* doc/hostconfig.texi (Host Common): Document
HOST_HOOKS_GT_PCH_GET_ADDRESS, HOST_HOOKS_GT_PCH_USE_ADDRESS.
* Makefile.in (c-pch.o): Depend on hosthooks.h.
(ggc-common.o): Likewise.
* config/rs6000/host-darwin.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Define.
(HOST_HOOKS_GT_PCH_USE_ADDRESS): Define.
(pch_address_space): New.
(darwin_rs6000_gt_pch_get_address): New.
(darwin_rs6000_gt_pch_use_address): New.
Index: cp/ChangeLog
2003-07-29 Geoffrey Keating <geoffk@apple.com>
* parser.c (cp_lexer_new_main): Use c_common_no_more_pch instead
of setting valid_pch by hand.
From-SVN: r69944
|
|
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
|
|
* tree.h (boolean_type_node): Move from C/C++/Java frontends.
(boolean_true_node, boolean_false_node): Likewise.
(enum tree_index): Add TI_BOOLEAN_{TYPE,FALSE,TRUE}.
* tree.c (build_common_tree_nodes): Init boolean_type_node.
(build_common_tree_nodes_2): Init boolean_{true,false}_node.
* stor-layout.c (set_sizetype): Handle an early BOOLEAN_TYPE.
* c-common.h (truthvalue_type_node): Renamed from boolean_type_node.
(truthvalue_true_node): Renamed from boolean_true_node.
(truthvalue_false_node): Renamed from boolean_false_node.
* c-decl.c: Just set truthvalue_* to integer_*.
* c-*.[ch]: s/boolean/truthvalue/. s/c_bool/boolean/.
* cp/decl.c: Just set truthvalue_* to boolean_*.
* java/java-tree.h: Move boolean_type_node et al to the back end.
From-SVN: r69758
|
|
* 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
|
|
PR 11498
* Makefile.in (c-opts.o): Add $(LANGHOOKS_DEF_H).
(langhooks.o): Add $(GGC_H), gt-langhooks.h.
(GTFILES): Add langhooks.c.
(gt-langhooks.h): New.
* c-common.h (c_static_assembler_name): Prototype.
* c-lang.c (LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): Define.
* objc/objc-lang.c (LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): Define.
* c-opts.c: Include langhooks-def.h.
(c_static_assembler_name): New.
* langhooks.c: Include ggc.h. Include gt-langhooks.h.
(var_labelno): New.
(lhd_set_decl_assembler_name): Give static objects with context
unique names.
* varasm.c (var_labelno): Delete.
(make_decl_rtl): Don't change the assembler name once it's set.
From-SVN: r69527
|
|
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
|
|
* java-tree.h (DECL_NUM_STMTS): Rename to...
(DECL_ESTIMATED_INSNS): ... this.
* lang.c (java_estimate_num_insns, java_estimate_num_insns_1):
New static functions.
(LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Define.
* parser.y (add_stmt_to_compound): Do not account statements.
* cp-lang.c (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): New.
* decl.c (duplicate_decls): Use DECL_ESTIMATED_INSNS.
(start_function): Use DECL_ESTIMATED_INSNS.
* optimize.c (maybe_clone_body): Use DECL_ESTIMATED_INSNS.
* decl2.c (maybe_emit_vtables): Fix marking vtables as needed in
unit-at-a-time
* c-common.c (c_estimate_num_insns_1): New static function.
(c_estimate_num_insns): New global function.
* c-common.h (DECL_NUM_STMTS): Rename to...
(DECL_ESTIMATED_INSNS): ... this.
(c_estimate_num_insns): Declare.
* c-decl.c (duplicate_decls): Use DECL_ESTIMATED_INSNS.
* c-lang.c (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): New.
* c-semantics.c (add_stmt): Do not account statements.
* langhooks-def.h (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS):
New.
* langhooks.h (lang_hooks_for_tree_inlining): Add
estimate_num_insns
* params.def (max-inline-insns-auto, max-inline-insns-auto): set
to 100.
(max-inline-insns): set to 300.
(min-inline-insns): set to 10.
* tree-inline.c (struct inline_data): Rename inlined_stmts to
inlined-insns.
(INSNS_PER_STMT): Kill.
(inlinable_function_p): Compute and store body size.
(expand_call_inline): Likewise.
(optimize_inline_calls): Likewise.
From-SVN: r69113
|
|
* c-common.h (c_comon_handle_filename,
c_common_missing_arguement): New.
* c-lang.c (LANG_HOOKS_HANDLE_FILENAME,
LANG_HOOKS_MISSING_ARGUMENT): New.
* c-opts.c (missing_arg): Rename c_common_missing_argument,
update to be an appropriate langhook.
(c_common_handle_option): Don't handle filenames.
(c_common_handle_filename): New.
* hooks.c (hook_void_constcharptr,
hook_bool_constcharptr_size_t_false): New.
* hooks.h (hook_void_constcharptr,
hook_bool_constcharptr_size_t_false): New.
* langhooks-def.h (LANG_HOOKS_HANDLE_FILENAME,
LANG_HOOKS_MISSING_ARGUMENT): New.
(LANG_HOOKS_INITIALIZER): Update.
* langhooks.h (struct lang_hooks): Add handle_filename and
missing_argument.
* opts.c (handle_option): Don't handle filenames here, but ...
(handle_options): ... here.
(common_handle_option): Don't handle missing arguments here.
* objc/objc-lang.c (LANG_HOOKS_HANDLE_FILENAME,
LANG_HOOKS_MISSING_ARGUMENT): New.
ada:
* misc.c (gnat_handle_option): Don't handle filenames.
cp:
* cp-lang.c (LANG_HOOKS_HANDLE_FILENAME,
LANG_HOOKS_MISSING_ARGUMENT): Override.
f:
* top.c (ffe_handle_option): Don't handle filenames.
java:
* lang.c (java_handle_option): Don't handle filenames.
From-SVN: r69011
|
|
* cpplib.h (CPP_AT_NAME, CPP_OBJC_STRING): New token types.
(struct cpp_options): Add narrow_charset, wide_charset,
bytes_big_endian fields. Remove EBCDIC field.
(cpp_init_iconv, cpp_interpret_string): New external interfaces.
* cpphash.h: Include <iconv.h> if we have it, otherwise
provide a dummy definition of iconv_t.
(struct cpp_reader): Add narrow_cset_desc and wide_cset_desc fields.
(_cpp_valid_ucn): Update prototype.
(_cpp_destroy_iconv): New prototype.
* doc/cpp.texi: Document character set handling.
* doc/cppopts.texi: Document -fexec-charset= and -fexec-wide-charset=.
* doc/extend.texi: Delete entire section on multiline strings.
Rewrite section on __FUNCTION__ etc now that these are
variables in C.
* cppucnid.tab, cppucnid.pl: New files.
* cppucnid.h: New generated file.
* cppcharset.c: Include cppucnid.h. Lots of commentary added.
(iconv_open, iconv, iconv_close): Provide dummy definitions
if !HAVE_ICONV.
(SOURCE_CHARSET, struct strbuf, init_iconv_desc, cpp_init_iconv,
_cpp_destroy_iconv, convert_cset, width_to_mask, convert_ucn,
emit_numeric_escape, convert_hex, convert_oct, convert_escape,
cpp_interpret_string, narrow_str_to_charconst,
wide_str_to_charconst): New.
(ucn_valid_in_identifier): Use a binary search through the
ucnranges table defined in cppucnid.h, not a long chain of if
statements.
(_cpp_valid_ucn): Add a limit pointer. Downgrade "universal
character names are only valid in C++ and C99" to a warning.
Issue the "meaning of \[uU] is different in traditional C"
warning here. Take care not to let iconv see an invalid UCS
value if we get a malformed UCN. Issue an error if we don't
have iconv.
(cpp_interpret_charconst): Moved here from cpplex.c. Use
cpp_interpret_string to do the heavy lifting.
* cppinit.c (cpp_create_reader): Initialize bytes_big_endian,
narrow_charset, wide_charset fields of options structure.
(cpp_destroy): Call _cpp_destroy_iconv.
* cpplex.c (forms_identifier_p): Adjust call to _cpp_valid_ucn.
(maybe_read_ucn, hex_digit_value, cpp_parse_escape): Delete.
(cpp_interpret_charconst): Moved to cppcharset.c.
* cpplib.c (dequote_string): Delete.
(interpret_string_notranslate): New.
(do_line, do_linemarker): Use interpret_string_notranslate.
* Makefile.in (cppcharset.o): Depend on cppucnid.h.
* c-common.c (fname_string, combine_strings): Delete.
* c-common.h (fname_string, combine_strings): Delete prototypes.
* c-lex.c (ignore_escape_flag): Delete.
(cb_ident): Use cpp_interpret_string, not lex_string.
(get_nonpadding_token): New function.
(c_lex): Handle Objective-C @-prefixed identifiers and strings here.
Adjust calls to lex_string. Don't write *value twice.
(lex_string): Now handles string constant concatenation.
Most of the work handed off to cpp_interpret_string.
Call fix_string_type here.
* c-parse.in (STRING_FUNC_NAME, VAR_FUNC_NAME): Replace with
FUNC_NAME, throughout.
(OBJC_STRING): New token type.
(primary:STRING): No need to call fix_string_type here.
(primary:objc_string): Make that OBJC_STRING.
(objc_string nonterminal): Delete.
(yylexname): Delete code to handle fake string constants.
(yylexstring): Delete entirely.
(_yylex): Handle CPP_AT_NAME and CPP_OBJC_STRING. No need
to handle CPP_ATSIGN.
* c.opt (-fexec-charset=, -fwide-exec-charset=): New options.
* c-opts.c (missing_arg, c_common_handle_option): Handle
OPT_fexec_charset_ and OPT_fwide_exec_charset_.
(c_common_init): Set cpp_opts->bytes_big_endian, not
cpp_opts->EBCDIC. Call cpp_init_iconv.
(print_help): Document -fexec-charset= and -fexec-wide-charset=.
(TARGET_EBCDIC): Delete default definition.
* objc/objc-act.c (build_objc_string_object): No need to
handle string constant concatenation.
cp:
* parser.c (cp_lexer_read_token): No need to handle string
constant concatenation.
testsuite:
* gcc.c-torture/execute/wchar_t-1.x: New file; XFAIL wchar_t-1.c
everywhere.
* gcc.dg/concat.c: Concatenation of string constants with
__FUNCTION__ / __PRETTY_FUNCTION__ is now a hard error.
* gcc.dg/wtr-strcat-1.c: Loosen dg-warning regexp.
* gcc.dg/cpp/escape-2.c: Use wide character constants where
necessary to avoid multi-character character constant warning.
* gcc.dg/cpp/escape.c: Likewise.
* gcc.dg/cpp/ucs.c: Likewise.
Remove backslashes from dg-bogus comments, as they confuse Tcl.
Fix a typo.
libstdc++-v3:
* testsuite/22_locale/collate/compare/wchar_t/2.cc
* testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc
* testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc
* testsuite/22_locale/collate/hash/wchar_t/2.cc
* testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc
* testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc
* testsuite/22_locale/collate/transform/wchar_t/2.cc
* testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc
* testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc:
XFAIL on all targets.
From-SVN: r68952
|
|
* c-common.h (c_common_init_options): New prototype.
* c-opts.c (deferred_size): Remove.
(defer_opt): Array is now pre-allocated.
(c_common_init_options): Pre-allocate deferred_opts. Make
lang_flags unsigned.
(push_command_line_options): Free deferred_opts.
* hooks.c (hook_uint_uint_constcharptrptr_0): New.
* hooks.h (hook_uint_uint_constcharptrptr_0): New.
* langhooks-def.h (LANG_HOOKS_INIT_OPTIONS): Update.
* langhooks.h (struct lang_hooks): New prototype for init_options.
* main.c (main): Cast argv.
* opts.c (handle_option, handle_options): Update prototypes.
(decode_options): save_argc, save_argv are not global. Constify.
* opts.h (decode_options): New prototype.
* toplev.c (general_init): New protoype.
(save_argv): Make static.
(save_argc): Remove.
(print_switch_values, general_init): Constify.
(toplev_main): Save argv.
* toplev.h (toplev_main): Update prototype.
(save_argc, save_argv): Remove.
ada:
* misc.c (save_argc, save_argv): Make static.
(gnat_init_options): New prototype.
(gnat_init_options): Update.
f:
* top.c (ffe_init_options): Update prototype.
* top.h (ffe_init_options): Update prototype.
java:
* lang.c (java_init_options): Update prototype.
treelang:
* tree1.c (treelang_init_options): Update prototype.
* treelang.h (treelang_init_options): Update prototype.
From-SVN: r68850
|
|
* c-common.c (enum c_language_kind, flag_objc): Remove.
(fix_string_type, check_case_value, c_common_nodes_and_builtins,
c_add_case_label, finish_label_addr_expr, boolean_increment):
Use c_dialect_ macros.
* c-common.h (enum c_language_kind): Extend.
(c_dialect_cxx, c_dialect_objc): New.
(flag_objc): Remove.
(c_common_init_options): Update prototype.
* c-cppbuiltin.c (define__GNUC__, c_cpp_builtins): Use c_dialect_
macros.
* c-decl.c (finsih_decl, grokfield, finish_struct): Use c_dialect_
macros.
* c-format.c (C_STD_VER, C_STD_NAME): Similarly.
* c-lang.c (c_init_options): Remove.
(c_language): Define.
(LANG_HOOKS_INIT_OPTIONS): Use common hook.
* c-lex.c (lex_charconst): Use c_dialect_cxx().
* c-opts.c (lang_flags): Make function-local.
(c_common_init_options): Use c_dialect_ macros. Handle
C++ diagnostic requirements.
(c_common_handle_option, c_common_post_options): Use flag_cxx.
* c-parse.in (init_reswords): Use c_dialect_objc ().
* c-pch.c (get_ident): Use c_language.
* c-pretty-print.c (pp_c_bool_literal): Use c_dialect_ macros.
* c-typeck.c (comptypes, build_c_cast): Similarly.
* objc/objc-lang.c (c_language): Define.
(LANG_HOOKS_INIT_OPTIONS): Use common hook.
(objc_init_options): Remove.
cp:
* Make-lang.in: Update.
* cp-lang.c (c_language): Define.
(LANG_HOOKS_INIT_OPTIONS): Use common hook.
* cp-tree.h (cxx_init_options): Remove.
* lex.c: Don't include diagnostic.h.
(cxx_init_options): Remove.
From-SVN: r68734
|
|
* basic-block.h: Fix comment formatting.
* bt-load.c: Likewise.
* builtins.c: Likewise.
* c-common.c: Likewise.
* c-common.h: Likewise.
* c-format.c: Likewise.
* coverage.c: Likewise.
* cpplib.h: Likewise.
* cpppch.c: Likewise.
* dbxout.c: Likewise.
* diagnostic.c: Likewise.
* dwarf2out.c: Likewise.
* expr.c: Likewise.
* fold-const.c: Likewise.
* function.c: Likewise.
* gcc.c: Likewise.
* gcov-io.c: Likewise.
* gcov-io.h: Likewise.
* gcov.c: Likewise.
* profile.c: Likewise.
* real.h: Likewise.
* sched-deps.c: Likewise.
From-SVN: r68369
|
|
* c-aux-info.c: Convert to ISO C99.
* c-pragma.c: Likewise.
* c-common.c: Likewise.
* c-common.h: Likewise.
* c-convert.c: Likewise.
* c-cppbuiltin.c: Likewise.
* c-dump.c: Likewise.
* c-decl.c: Likewise
* c-format.c: Likewise.
* c-incpath.c: Likewise.
* c-incpath.h: Likewise.
From-SVN: r68218
|
|
* Makefile.in (OJBS, c-opts.o): Update.
(c-options.c, c-options.h): Rename options.h and options.c.
(options.h): Rename options_.h.
(opts.o): New.
* c-common.h (c_common_handle_option): Replace c_common_decode_option.
(c_common_init_options): Update prototype.
* c-lang.c (c_init_options): Update prototype.
(LANG_HOOKS_HANDLE_OPTION): Override.
(LANG_HOOKS_DECODE_OPTION): Drop.
* c-opts.c: Include opts.h and options.h instead of c-options.h
and c-options.c.
(lang_flags): Move to file scope.
(find_opt, c_common_decode_option): Remove.
(CL_C, CL_OBJC, CL_CXX, CL_OBJCXX, CL_JOINED, CL_SEPARATE,
CL_REJECT_NEGATIVE): Move to opts.h.
(missing_arg): Update prototype.
(c_common_init_options): Update for new prototype.
(c_common_handle_options): Filenames are passed as N_OPTS.
* hooks.c (hook_int_void_0): New.
* hooks.h (hook_int_void_0): New.
* langhooks-def.h (LANG_HOOKS_INIT_OPTIONS): New default.
(LANG_HOOKS_HANDLE_OPTION): Default to NULL for now.
(LANG_HOOKS_INITIALIZER): Update.
* langhooks.h (init_options): Update.
(handle_option): New.
* opts.c, opts.h: New files.
* opts.sh: Update c file to include opts.h and options.h.
* toplev.c: Include opts.h; change options.h to options_.h.
(parse_options_and_default_flags): Get lang_mask, use
handle_option for language-specific handling.
* objc/objc-lang.c (LANG_HOOKS_DECODE_OPTON): Drop.
(LANG_HOOKS_HANDLE_OPTION): Override.
(objc_init_options): Update.
ada:
* misc.c (gnat_init_options): Update.
cp:
* cp-lang.c (LANG_HOOKS_DECODE_OPTON): Drop.
(LANG_HOOKS_HANDLE_OPTION): Override.
* cp-tree.h (cxx_init_options): Update.
* lex.c (cxx_init_options): Update.
f:
* com.c (ffe_init_options): Update.
java:
* lang.c (java_init_options): Update.
From-SVN: r67584
|
|
* c-common.h (enum rid): Remove RID_BOUNDED, RID_UNBOUNDED.
* c-parse.in (reswords): Remove __bounded__ and __unbounded__.
(rid_to_yy): Remove RID_BOUNDED, RID_UNBOUNDED slots.
* print-tree.c (print_node): Remove ambient-boundedness.
* tree.h (tree_common): Remove bounded_flag.
(BOUNDED_INDIRECT_YPE_P, BOUNDED_POINTER_TYPE_P,
BOUNDED_REFERENCE_TYPE_P, MAYBE_BOUNDED_INDIRECT_TYPE_P,
MAYBE_BOUNDED_POINTER_TYPE_P, MAYBE_BOUNDED_REFERENCE_TYPE_P,
TREE_BOUNDED, TYPE_MAIN_VARIANTS_PHYSICALLY_EQUAL_P,
TYPE_MAIN_PHYSICAL_VARIANT, TYPE_BOUNDED, TYPE_QUAL_BOUNDED):
Remove.
(TYPE_QUALS): Remove BOUNDED.
(TREE_EXPR_QUALS, TREE_FUNC_QUALS): Remove.
(TYPE_BOUNDED_VALUE, TYPE_BOUNDED_BASE, TYPE_BOUNDED_EXTENT,
TYPE_BOUNDED_SUBTYPE, TYPE_UNBOUNDED_VARIANT, TYPE_POINTER_DEPTH,
TYPE_AMBIENT_BOUNDEDNESS, MAX_POINTER_DEPT,
VA_LIST_POINTER_DEPTH): Remove.
(struct tree_type): Remove pointer_depth.
treelang:
* treetree.c (reswords): Remove __bounded__, __unbounded__.
From-SVN: r67058
|
|
Add a new flag, -W(no-)invalid-offsetof, to control whether or
not the compiler warns about incorrect use of the offsetof macro
in C++. By default the warning is on.
From-SVN: r66972
|
|
* c-common.c, c-common.h (dollars_in_ident): Remove.
* c-opts.c (DOLLARS_IN_IDENTIFIERS): Default to true.
(c_common_init_options, c_common_decode_option): Set dollars_in_ident.
* cpphash.h (warned_dollar): Rename warn_dollars.
* cppinit.c (struct lang_flags, lang_defaults, cpp_set_lang)
Permit dollars regardless of -std=.
(post_options): Set warn_dollars.
* cpplex.c (forms_identifier_p): Use warn_dollars.
* config/darwin.h, config/alpha/vms.h, config/m68hc11/m68hc11.h:
Remove redundant definitions of DOLLARS_IN_IDENTIFIERS.
* doc/cpp.texi, doc/cppopts.texi, doc/invoke.texi, doc/tm.texi:
Update documentation.
testsuite:
* gcc.dg/dollar.c: New test.
From-SVN: r66911
|
|
* c-common.h, c-semantics.c: Rename genrtl_decl_cleanup to
genrtl_cleanup_stmt. Correct comment at head of
genrtl_cleanup_stmt (no such thing as a DECL_CLEANUP).
* stmt.c (struct nesting): Kill n_function_calls.
(expand_start_bindings): Don't set
thisblock->data.block.n_function_calls.
(expand_end_bindings): Compare function_call_count against 0.
(expand_cleanups): Kill DONT_DO argument; all callers passed
NULL_TREE. All callers updated to match.
Co-Authored-By: Zack Weinberg <zack@codesourcery.com>
From-SVN: r65869
|
|
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
|
|
2003-04-09 Steven Bosscher <steven@gcc.gnu.org>
* c-common.h (lang_statement_code_p): Remove declaration.
(statement_code_p): Ditto.
(c_common_stmt_codes): Define; list of c-common statement codes.
(statement_code_p): New extern declaration.
(STATEMENT_CODE_P): Define.
(INIT_STATEMENT_CODES): Define.
* c-common.c (statement_code_p): Kill the function, declare
as an array of bools instead.
(lang_statement_code_p): Remove.
(walk_stmt_tree): Use STATEMENT_CODE_P not statement_code_p.
(c_safe_from_p): Ditto.
* c-objc-common.c (c_objc_common_init): Use INIT_STATEMENT_CODES
to initialize the statement_code_p array.
* tree-inline.c (walk_tree): Use STATEMENT_CODE_P instead of
statement_code_p.
(copy_tree_r): Ditto.
* cp/cp-tree.h (cp_stmt_codes): Define; list of C++ specific
statement tree codes.
* cp/lex.c (cxx_init): Add missing print line break. Use
INIT_STATEMENT_CODES to initialize the statement_code_p array.
* cp/parser.c (cp_parser_statement): Use STATEMENT_CODE_P
instead of statement_code_p.
* cp/pt.c (tsubst_expr): Ditto.
* cp/tree.c (verify_stmt_tree_r): Ditto.
(cp_statement_code_p): Remove.
(init_tree): Don't set lang_statement_code_p, it's gone.
From-SVN: r65422
|
|
* c-common.c: Include intl.h.
(shadow_warning): Rewrite to allow better diagnostic translations.
* c-common.h: Update prototype of shadow_warning. Declare sw_kind enum.
* c-decl.c (warn_if_shadowing): Update calls to shadow_warning;
use it throughout.
* Makefile.in (c-common.o): Add intl.h.
cp:
* decl.c: Update calls to shadow_warning.
po:
* gcc.pot: Regenerate.
From-SVN: r64699
|
|
(gcc)
* c-common.h (c_dump_tree), c-dump.c (c_dump_tree),
langhooks-def.h (lhd_tree_dump_dump_tree),
langhooks.c (lhd_tree_dump_dump_tree), langhooks.h (*dump_tree):
Change return type from 'int' to 'bool'. Replace 0 and 1 with
true and false in return statements.
(cp)
* dump.c (cp_dump_tree), cp-tree.h (cp_dump_tree): Change return
type from 'int' to 'bool'. Replace 0 and 1 with true and false in
return statements.
(java)
* lang.c (java_dump_tree): Change return type from 'int' to 'bool'.
Replace 0 and 1 with true and false in return statements.
From-SVN: r64596
|
|
* Makefile.in: Update.
* c-common.h (cb_register_builtins): Rename c_cpp_builtins.
* c-lex.c (init_c_lex): Register builtins hook is dead.
* c-opts.c (COMMAND_LINE_OPTIONS, missing_arg): Handle -A, -D and -U.
(c_common_decode_option): Don't call cpp_handle_option.
Handle -A, -D and -U.
(handle_deferred_opts): Simplify.
(finish_options): Define builtins and command line macros.
* c-ppoutput.c (init_pp_output): Register builtins hook is dead.
* cppinit.c: Don't include intl.h.
(init_builtins): Rename cpp_init_builtins. No hook to call.
(init_library): Don't need to sort options.
(cpp_create_reader): Don't set pending.
(cpp_destroy): Don't free pending.
(struct pending_option, cl_directive_handler, struct cpp_pending,
APPEND, free_chain, new_pending_directive, parse_option, opt_comp,
cpp_finish_options, COMMAND_LINE_OPTIONS, DEF_OPT, struct cl_option,
cl_options, cpp_handle_option): Remove.
* cpplib.h (struct cpp_pending, register_builtins, cpp_handle_option,
cpp_finish_options): Remove.
(cpp_init_builtins): New.
* fix-header.c (read_scan_file): Update to handle -D. Fix
handling of -I. Replace call to cpp_finish_options.
cp:
* Make-lang.in: Update.
From-SVN: r64398
|
|
From-SVN: r64373
|
|
* Makefile.in: Update.
* c-common.c: Don't include real.h or except.h.
(REGISTER_PREFIX): Remove.
(builtin_define_std, builtin_define_with_value,
builtin_define_with_int_value, builtin_define_with_hex_fp_value,
builtin_define_type_max, builtin_define_type_precision,
builtin_define_float_constants): Move to c-cppbuiltin.c.
(c_stddef_cpp_builtins): New.
* c-common.h (builtin_define_with_value, c_stddef_cpp_builtins): New.
* c-cppbuiltin.c: New, extracted from c-common.c.
(define__GNUC__): New.
* cppspec.c (lang_specific_driver): Remove support of -no-gcc.
* gcc.c: Remove support of %v1, %v2 and %v3 specs.
(cpp_unique_options): Don't support no-gcc.
(do_spec_1): Remove support of version specs.
* doc/invoke.texi: Remove documentation of %v1, %v2 and %v3.
* doc/passes.texi: Update.
* doc/tm.texi: Update.
cp:
* Make-lang.in (CXX_C_OBJS): Update.
* lang-specs.h: Don't define __GNUG__ here.
From-SVN: r64162
|
|
* 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 (c-ppoutput.o): Update.
* c-common.h (init_pp_output): New.
(preprocess_file): Update.
* c-lex.c (init_c_lex): Move mbchar initialization to cpplib.
Register builtins.
* c-opts.c (c_common_init): Call init_pp_output if preprocessing.
Make call to cpp_read_main_file common to whether preprocessing
or not. Don't register builtins.
* c-ppoutput.c: Include c-pragma.h.
(setup_callbacks): Rename init_pp_output.
(preprocess_file): No longer setup callbacks or call
cpp_read_main_file.
* cpphash.h (_cpp_init_mbchar): New.
* cppinit.c (init_library): Call _cpp_init_mbchar.
* cpplex.c (_cpp_init_mbchar): New.
From-SVN: r63913
|
|
* Makefile.in: Update.
* c-common.c (flag_no_line_commands, flag_no_output,
flag_dump_macros, flag_dump_includes): New.
* c-common.h (flag_no_line_commands, flag_no_output,
flag_dump_macros, flag_dump_includes, preprocess_file): New.
(init_c_lex): Update prototype.
* c-lex.c (init_c_lex): Update prototype; move some code to
c_common_init.
* c-opts.c (preprocess_file): Subsume into c_common_init.
(c_common_decode_option): Update flags.
(c_common_init): Move code from preprocess_file and init_c_lex.
(sanitize_cpp_opts): Update.
* c-ppoutput.c: New, cppmain.c almost verbatim.
* cpphash.h (struct printer): Remove.
(struct cpp_reader): Remove print.
* cpplib.h (dump_none, dump_only, dump_names, dump_definitions,
cpp_preprocess_file): Remove.
(struct cpp_options): Remove no_output, no_line_commands, dump_macros
and dump_includes.
* cppmain.c: Remove.
* doc/passes.texi: Update.
From-SVN: r63773
|
|
* alias.c: Fix comment typos.
* basic-block.h: Likewise.
* c-common.c: Likewise.
* c-common.h: Likewise.
* c-decl.c: Likewise.
* c-opts.c: Likewise.
* c-pragma.c: Likewise.
* c-pretty-print.h: Likewise.
* cfg.c: Likewise.
* cfganal.c: Likewise.
* cfgbuild.c: Likewise.
* cfgcleanup.c: Likewise.
* cfglayout.c: Likewise.
* cfgrtl.c: Likewise.
* convert.c: Likewise.
* cpphash.h: Likewise.
* cpplex.c: Likewise.
* cpplib.h: Likewise.
* df.h: Likewise.
* diagnostic.c: Likewise.
* diagnostic.h: Likewise.
* dwarf2.h: Likewise.
From-SVN: r61462
|
|
From-SVN: r61136
|
|
From-SVN: r60699
|
|
PR c++/8332
PR c++/8493
* decl.c (cxx_init_decl_processing): Use size_type_node, not
c_size_type_node.
* decl2.c (coerce_new_type): Likewise.
* except.c (do_allocate_exception): Likewise.
* builtin-types.def (BT_SIZE): Use size_type_node.
* builtins.c (fold_builtin): Make the builtin strlen returns a
size_t, not a sizetype.
* c-common.c (c_sizeof_or_alignof_type): Use size_type_node, not
c_size_type_node.
(c_alignof_expr): Likewise.
(c_common_nodes_and_builtins): Likewise.
* c-common.h (CTI_C_SIZE_TYPE): Remove.
(c_size_type_node): Likewise.
* c-format.c (T_ST): Use size_type_node, not c_size_type_node.
* tree.h (TI_SIZE_TYPE): New enumeral.
(size_type_node): Likewise.
PR c++/8332
PR c++/8493
* g++.dg/template/strlen1.C: New test.
From-SVN: r59689
|
|
* c-common.h: Follow spelling conventions.
* cpplex.c: Likewise.
* cpplib.h: Likewise.
* gthr-dce.h: Likewise.
* gthr-posix.h: Likewise.
* optabs.c: Likewise.
* output.h: Likewise.
* profile.c: Likewise.
* protoize.c: Likewise.
* ra-rewrite.c: Likewise.
* real.c: Likewise.
* recog.c: Likewise.
* reg-stack.c: Likewise.
* regclass.c: Likewise.
* regmove.c: Likewise.
* reload.c: Likewise.
* reload.h: Likewise.
* reload1.c: Likewise.
* reorg.c: Likewise.
* resource.c: Likewise.
* rtl.h: Likewise.
* rtlanal.c: Likewise.
From-SVN: r57555
|
|
* c-common.h (flag_abi_version): Fix typo in comment.
* doc/invoke.texi (flag_abi_version): Document default value.
From-SVN: r57440
|
|
* c-common.c (flag_abi_version): New variable.
* c-common.h (flag_abi_version): Declare it.
* c-opts.c (missing_arg): Add -fabi-version.
(c_common_decode_option): Process -fabi-version.
* doc/invoke.texi (-fabi-version): Document it.
(-Wabi): Add information about bit-fields in unions.
* cp/class.c (layout_virtual_bases): Do not round the size of the
type to a multiple of the alignment before laying out virtual bases.
(layout_class_type): Correct handling of bit-fields that are wider
than their type inside unions. Round the size of the type to a
even number of bytes when computing the size without virtual
bases.
* cp/cp-tree.h (abi_version_at_least): New macro.
* g++.dg/abi/bitfield6.C: New test.
* g++.dg/abi/bitfield7.C: New test.
* g++.dg/abi/bitfield8.C: New test.
* g++.dg/abi/vbase11.C: New test.
From-SVN: r57432
|