aboutsummaryrefslogtreecommitdiff
path: root/gcc/c-common.c
AgeCommit message (Collapse)AuthorFilesLines
2004-06-30c-common.h (check_function_format): Remove first parameter.Joseph Myers1-1/+1
* c-common.h (check_function_format): Remove first parameter. * c-format.c (format_check_context): Remove status. (check_format_info, check_format_info_main, maybe_read_dollar_number, avoid_dollar_number, finish_dollar_format_checking, check_format_types, check_function_format): Remove first parameter. Don't use status_warning. (check_format_arg): Don't use status_warning. (status_warning): Remove. * c-common.c (check_function_arguments): Update call to check_function_format. cp: * call.c (build_over_call), typeck.c (build_function_call): Update calls to check_function_format. From-SVN: r83935
2004-06-30Conditionally compile support for --enable-mapped_location.Per Bothner1-8/+14
* basic-block.h (struct edge_def): Use new source_locus typedef. * c-common.c (fname_decl): Update save/clear/store of input_location. (c_do_switch_warnings): Update for USE_MAPPED_LOCATION case. * c-decl.c: Likewise. * c-dump.c (dump_stmt): Likewise. * c-gimplify.c (c-gimplify.c): Generalize using SET_EXPR_LOCATION. * c-lex.c (cb_line_change): If USE_MAPPED_LOCATION use token's src_loc to set input_location direction, rather than using linemap_lookup. (fe_file_change, cb_def_pragma): Again use source_location directly. * c-opts.c (saved_lineno): Remove static variable. (c_common_post_options, c_common_init): Don't bothner to save, clear and restore input_Location - now handled by lang_dependent_init. * function.c (init_function_start): Use new DECL_IS_BUILTIN macro. * xcoffout.c (xcoff_assign_fundamental_type_number): Likewise. From-SVN: r83919
2004-06-27re PR c++/16205 (ICE with -Wall on no-throw specifier)Andrew Pinski1-1/+2
2004-06-27 Andrew Pinski <pinskia@physics.uc.edu> PR c++/16205 * c-common.c (warn_for_collisions_1): Warn for only decls which have a name. From-SVN: r83759
2004-06-26c-common.c (c_safe_from_p, [...]): Deleted.Richard Kenner1-69/+0
2004-06-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> * c-common.c (c_safe_from_p, c_walk_subtrees): Deleted. * c-common.def (DECL_STMT): Remove. * c-common.h (DECL_STMT_DECL): Deleted. (COMPOUNT_LITERAL_EXPR_DECL): Use DECL_EXPR_DECL. (c_safe_from_p, c_walk_subtrees): Deleted. * c-decl.c, c-parse.in, c-pretty-print.c: DECL_STMT now DECL_EXPR. * c-dump.c (c_dump_tree, case DECL_STMT): Deleted. * c-gimplify.c (gimplify_decl_stmt): Deleted. (gimplify_compound_literal_expr): Use DECL_EXPR_DECL and gimplify_and_add. (c_gimplify_expr, case DECL_EXPR): New case. (c_gimplify_expr, case DECL_STMT): Deleted. * c-lang.c (LANG_HOOKS_SAFE_FROM_P): Likewise. (LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Likewise. * expr.c (safe_from_p, case 's'): New case. * gimplify.c (gimplify_decl_expr): New function. (gimplify_expr, case DECL_EXPR): New case. * tree-inline.c (walk_tree): Walk into all fields of a type and decl only if they are in a DECL_EXPR. (mark_local_for_remap_r): Minor code cleanup. * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Add else. * tree.c (has_cleanups, case DECL_EXPR): New case. * tree.def (DECL_EXPR): New code. * tree.h (DECL_EXPR_DECL): New macro. * objc/objc-lang.c (LANG_HOOKS_SAFE_FROM_P): Deleted. From-SVN: r83721
2004-06-25c-common.h (warn_cast_qual, [...]): Remove explicit declarations.DJ Delorie1-215/+0
* c-common.h (warn_cast_qual, warn_missing_format_attribute, warn_pointer_arith, warn_missing_prototypes, warn_parentheses, warn_missing_braces, warn_sign_compare, warn_long_long, warn_redundant_decls, warn_float_equal, warn_char_subscripts, warn_conversion, warn_format_y2k, warn_format_extra_args, warn_format_zero_length, warn_format_nonliteral, warn_format_security, mesg_implicit_function_declaration, warn_bad_function_cast, warn_traditional, warn_declaration_after_statement, warn_strict_prototypes, warn_missing_declarations, warn_nested_externs, warn_sequence_point, warn_init_self, warn_div_by_zero, warn_implicit_int, warn_nonnull, warn_old_style_definition, warn_selector, warn_undeclared_selector, warn_protocol, warn_abi, warn_invalid_offsetof, warn_ctor_dtor_privacy, warn_overloaded_virtual, warn_nonvdtor, warn_reorder, warn_synth, warn_pmf2ptr, warn_ecpp, warn_sign_promo, warn_old_style_cast, warn_nontemplate_friend, warn_deprecated): Remove explicit declarations. * c-common.c: Likewise, remove explicit definitions. * c-opts.c: Likewise, remove explicit assignments. * c.opts: Likewise, add implicit declare/define/assign. From-SVN: r83680
2004-06-24c-common.c (expand_unordered_cmp): Delete.Roger Sayle1-149/+0
* c-common.c (expand_unordered_cmp): Delete. (expand_tree_builtin): Delete. * c-common.h (expand_tree_builtin): Delete function prototype. * c-typeck.c (build_function_call): Don't call expand_tree_builtin. * call.c (build_cxx_call): Don't call expand_tree_builtin. No longer take both "args" and "convert_args" as arguments. (build_op_delete_call): Update call to build_cxx_call. (build_over_call): Likewise, update call to build_cxx_call. * cp-tree.h (build_cxx_call): Update funtion prototype. * typeck.c (build_function_call): Don't call expand_tree_builtin. * rtti.c (throw_bad_cast): Update call to build_cxx_call. (throw_bad_typeid): Likewise. (build_dynamic_cast_1): Likewise. From-SVN: r83579
2004-06-22c-opts.c (c_common_handle_option): Handle -fpch-preprocess.Geoffrey Keating1-0/+4
2004-06-21 Geoffrey Keating <geoffk@apple.com> * c-opts.c (c_common_handle_option): Handle -fpch-preprocess. * c-common.h (flag_pch_preprocess): Declare. (c_common_pch_pragma): Likewise. * c-common.c (flag_pch_preprocess): New. * c-pch.c (c_common_read_pch): Support -fpreprocess-only. (c_common_pch_pragma): New. * c-ppoutput.c (cb_read_pch): New. (init_pp_output): Support -fpch-preprocess. * c-pragma.c (init_pragma): Support #pragma GNUC pch_preprocess. * c.opt (fpch-preprocess): New. * gcc.c (cpp_options): When save-temps, pass -fpch-preprocess. * doc/cppopts.texi: Document -fpch-preprocess. * doc/invoke.texi (Precompiled Headers): Mention that -fpreprocessed is safe for PCH. Mention that if an option is listed as safe that doesn't mean it does what you expect. Index: gcc/testsuite/ChangeLog 2004-06-21 Geoffrey Keating <geoffk@apple.com> * gcc.dg/pch/save-temps-1.c: New file. * gcc.dg/pch/save-temps-1.hs: New file. Index: libcpp/ChangeLog 2004-06-21 Geoffrey Keating <geoffk@apple.com> * files.c (should_stack_file): Correct swapped parameters to call to cb.read_pch. * pch.c (cpp_valid_state): Handle -fpreprocessed. From-SVN: r83478
2004-06-21c-common.c (verify_sequence_points): Export.Richard Henderson1-28/+1
* c-common.c (verify_sequence_points): Export. (c_expand_expr_stmt): Move to c-typeck.c. * c-common.h (c_expand_expr_stmt): Remove. (verify_sequence_points): Declare. * c-mudflap.c (mflang_flush_calls): Use c_finish_expr_stmt. * c-parse.in (for_init_stmt, stmt): Likewise. * c-tree.h (c_finish_expr_stmt): Declare. (c_tree_expr_nonnegative_p): Remove. * c-typeck.c (c_tree_expr_nonnegative_p): Remove. (build_conditional_expr, build_binary_op): Use tree_expr_nonnegative_p. (emit_side_effect_warnings): New. (c_finish_expr_stmt): Rename from c_expand_expr_stmt. Use it. (c_finish_stmt_expr): Work without EXPR_STMT. Handle eh regions. Use emit_side_effect_warnings. (push_cleanup): Copy STATEMENT_LIST_STMT_EXPR. * fold-const.c (tree_expr_nonnegative_p): Handle TARGET_EXPR. * gimplify.c (gimplify_modify_expr): Don't discard TARGET_EXPR with void initializer. (gimplify_target_expr): Handle void BIND_EXPR initializer. * tree-inline.c (estimate_num_insns_1): Fix type lookup for INIT_EXPR and MODIFY_EXPR. * objc/objc-act.c (build_module_descriptor): Use add_stmt instead of c_expand_expr_stmt. cp/ * semantics.c (finish_expr_stmt): Call verify_sequence_points. testsuite/ * gcc.dg/tree-ssa/20030714-1.c: Rename variables to avoid merging && to BIT_FIELD_REF. From-SVN: r83429
2004-06-19c-common.c, c-common.h (lang_gimplify_stmt): Remove.Richard Henderson1-5/+0
* c-common.c, c-common.h (lang_gimplify_stmt): Remove. * c-gimplify.c: Remove unnecessary prototypes. (c_gimplify_stmt): Merge into ... (c_gimplify_expr): ... here. Don't play with prep_stmt. * c-semantics.c (prep_stmt): Remove. * gimplify.c (annotate_one_with_locus): Break out from ... (annotate_all_with_locus): ... here. (gimplify_expr): Add locus to expressions even if pre/post queues are not present. cp/ * cp-gimplify.c: Remove unnecessary prototypes. (cp_gimplify_stmt): Merge into ... (cp_gimplify_expr): ... here. Move to end of file. Handle stmts_are_full_exprs_p frobbing. * cp-tree.h (cp_gimplify_stmt): Remove. * pt.c (tsubst_expr): Merge prep_stmt and unify. * tree.c (init_tree): Don't set lang_gimplify_stmt. From-SVN: r83397
2004-06-17c-common.c (flag_objc_sjlj_exceptions): New.Richard Henderson1-0/+3
* c-common.c (flag_objc_sjlj_exceptions): New. * c-common.h (flag_objc_sjlj_exceptions): Declare. * c-opts.c (c_common_handle_option): Set it. (c_common_post_options): Handle interation of different objective-c exception and runtime switches. * c-decl.c (c_eh_initialized_p): New. (finish_decl): Use it instead of local eh_initialized_p. * c-parse.in (nested_function, notype_nested_function): Record the result of compstmt. (compstmt_or_error): Likewise. (compstmt): Don't add_stmt the result. (stmt): Don't return anything. Rewrite objc try and sync rules. (objc_try_stmt, objc_catch_list): Remove. (objc_catch_block, objc_finally_block): Remove. (objc_catch_prefix, objc_catch_clause, objc_opt_catch_list): New. (objc_try_catch_clause, objc_finally_clause): New. (objc_try_catch_stmt): Rewrite. * c-tree.h (c_eh_initialized_p): Declare. * c-opt (fobjc-sjlj-exceptions): New. * except.c (output_function_exception_table): Don't call cgraph on non-decls. * objc/objc-act.c (UTAG_EXCDATA_VAR, UTAG_CAUGHTEXC_VAR, UTAG_RETHROWEXC_VAR, UTAG_EVALONCE_VAR, struct val_stack, catch_count_stack, exc_binding_stack, if_nesting_count, blk_nesting_count, objc_enter_block, objc_exit_block, objc_declare_variable, val_stack_push, val_stack_pop, objc_build_try_enter_fragment, objc_build_extract_expr, objc_build_try_exit_fragment, objc_build_extract_fragment, objc_build_try_prologue, objc_build_try_epilogue, objc_build_catch_stmt, objc_build_catch_epilogue, objc_build_finally_prologue, objc_build_finally_epilogue, objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue, objc_build_synchronized_epilogue): Remove. (objc_create_temporary_var, struct objc_try_context, cur_try_context, objc_eh_runtime_type, objc_init_exceptions, objc_build_exc_ptr, next_sjlj_build_try_exit, next_sjlj_build_enter_and_setjmp, next_sjlj_build_exc_extract, next_sjlj_build_catch_list, next_sjlj_build_try_catch_finally, objc_begin_try_stmt, objc_begin_catch_clause, objc_finish_catch_clause, objc_build_finally_clause, objc_finish_try_stmt, objc_build_synchronized): New. (objc_is_object_id, objc_is_class_id): New. (objc_comptypes): Use them. (build_next_objc_exception_stuff): Break NeXT sjlj out from build_objc_exception_stuff. (synth_module_prologue): Update to match. (objc_build_throw_stmt): Use cur_try_context to decide if we're in a @catch. * objc/objc-act.h: Update prototypes. (OCTI_EXCEPTION_BLK_STACK, objc_exception_block_stack): Remove. testsuite/ * objc.dg/sync-1.m: New. * objc.dg/try-catch-1.m: Don't force next runtime. * objc.dg/try-catch-3.m, objc.dg/try-catch-4.m: Likewise. * objc.dg/try-catch-2.m: Likewise. Enable everywhere. Remove shadowed catch clause. * objc.dg/try-catch-5.m: New. From-SVN: r83332
2004-06-16c-common.def (COMPOUND_STMT): Remove.Richard Henderson1-2/+0
* c-common.def (COMPOUND_STMT): Remove. * c-common.c (finish_fname_decls): Don't look through it. * c-typeck.c (c_tree_expr_nonnegative_p): Likewise. * c-common.h (COMPOUND_BODY): Remove. (c_common_stmt_codes): Remove COMPOUND_STMT. * c-dump.c (c_dump_tree): Likewise. * c-gimplify.c (c_gimplify_stmt): Likewise. * c-pretty-print.c (pp_c_statement): Likewise. * tree.h (DECL_SAVED_TREE): Update commentary. * doc/c-tree.texi (ASM_EXPR): Rename from ASM_STMT. (CASE_LABEL_EXPR): Rename from CASE_LABEL. (GOTO_EXPR): Rename from GOTO_STMT. (GOTO_FAKE_P): Remove. (COMPOUND_STMT): Remove. (HANDLER): Update wrt COMPOUND_STMT. (STMT_EXPR): Likewise. (LABEL_EXPR): Rename from LABEL_STMT. (SCOPE_STMT): Remove. * objc/objc-act.c (objc_build_try_catch_finally_stmt): Don't look through COMPOUND_STMT. cp/ * cp-tree.h (COMPOUND_STMT_TRY_BLOCK, COMPOUND_STMT_BODY_BLOCK): Kill. (BIND_EXPR_TRY_BLOCK, BIND_EXPR_BODY_BLOCK): New. * cxx-pretty-print.c (pp_cxx_function_definition): Move handling of CTOR_INITIALIZER ... (pp_cxx_statement): ... here. * decl.c (begin_function_body): Don't set COMPOUND_STMT_BODY_BLOCK. (finish_function): Use alloc_stmt_list to zap entire function. * parser.c (cp_parser_compound_statement): Update commentary. * pt.c (tsubst_expr): Use BIND_EXPR instead of COMPOUND_STMT. * semantics.c (begin_compound_stmt, finish_compound_stmt): Likewise. (finish_stmt_expr): Don't look through COMPOUND_STMT. From-SVN: r83281
2004-06-16c-common.def (CASE_LABEL): Remove.Richard Henderson1-5/+5
* c-common.def (CASE_LABEL): Remove. * c-common.c (c_add_case_label): Use CASE_LABEL, not CASE_LABEL_DECL. (match_case_to_enum_1): Likewise. * c-common.h (c_common_stmt_codes): Remove CASE_LABEL. * c-dump.c (c_dump_tree): Likewise. * c-gimplify.c (c_gimplify_stmt): Likewise. * c-pretty-print.c (pp_c_statement): Likewise. * c-semantics.c (build_case_label): Use CASE_LABEL_EXPR. * tree.h (CASE_LOW): Update commentary. cp/ * parser.c (cp_parser_labeled_statement): Update commentary. * pt.c (tsubst_expr): Use CASE_LABEL_EXPR. * tree.c (mark_local_for_remap_r): Likewise. From-SVN: r83261
2004-06-16c-common.def (GOTO_STMT, LABEL_STMT): Remove.Richard Henderson1-2/+2
* c-common.def (GOTO_STMT, LABEL_STMT): Remove. * c-common.c (c_add_case_label): Use LABEL_EXPR. * c-common.h (GOTO_FAKE_P, LABEL_STMT_LABEL): Remove. (c_common_stmt_codes): Remove GOTO_STMT, LABEL_STMT. * c-dump.c (c_dump_tree): Likewise. * c-gimplify.c (c_gimplify_stmt): Likewise. * c-pretty-print.c (pp_c_statement): Likewise. * c-parse.in (stmt): Use GOTO_EXPR. (label): Use LABEL_EXPR. * c-semantics.c (build_stmt): Set TREE_TYPE to void. * tree-inline.c (copy_body_r): Don't build empty BLOCKs. cp/ * decl.c (finish_destructor_body): Use LABEL_EXPR. * parser.c (cp_parser_statement): Update commentary. * pt.c (tsubst_expr): Use LABEL_EXPR, GOTO_EXPR. * semantics.c (finish_goto_stmt, finish_label_stmt): Likewise. * tree.c (mark_local_for_remap_r): Likewise. From-SVN: r83255
2004-06-15c-common.c (lang_gimplify_stmt): Remove next_p argument.Richard Henderson1-226/+50
* c-common.c (lang_gimplify_stmt): Remove next_p argument. (if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then, c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt, c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c. (finish_fname_decls, fname_decl): Use statement_lists. (c_expand_expr_stmt): Don't set last_expr_type. (c_type_hash): Fix indentation. (c_safe_from_p): Don't follow TREE_CHAIN. (c_tree_chain_matters_p): Remove. * c-common.def (SCOPE_STMT): Remove. (CLEANUP_STMT): Redefine to contain its own body. * c-common.h (struct stmt_tree_s): Remove x_last_stmt, x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack. Add x_cur_stmt_list. (last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove. (cur_stmt_list): New. (STATEMENT_LIST_STMT_EXPR): New. (SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P, SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove. (CLEANUP_BODY): New. (CLEANUP_DECL): Move to operand 2. (c_common_stmt_codes): Remove SCOPE_STMT. (COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove. * c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove. (c_push_function_context, c_pop_function_context): Don't save it. (finish_decl): Set TREE_USED on the decl for a cleanup. Use push_cleanup. (store_parm_decls): Use statement lists. (finish_function): Remove compstmt rule workaround. Use statement lists. Call finish_fname_decls after finalizing the body. (c_begin_compound_stmt): Move to c-typeck.c. * c-dump.c (c_dump_tree): Remove SCOPE_STMT. * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New. (c_genericize): Invoke them. (c_gimplify_stmt): Don't look through TREE_CHAIN. Kill SCOPE_STMT. (c_build_bind_expr): Export. (gimplify_block, gimplify_cleanup): Remove. (gimplify_condition): Use gimplify_stmt. (gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack. (gimplify_if_stmt): Remove recursion hack. (c_gimplify_expr): Remove STMT_EXPR handling. (stmt_expr_last_stmt, gimplify_stmt_expr): Remove. (is_last_stmt_of_scope): Remove. * c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove. * c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt, c_end_compound_stmt. * c-objc-common.c (build_cdtor): Likewise. * c-parse.in (primary): Use c_finish_stmt_expr. (push_scope, pop_scope): Remove. (c99_block_start, compstmt_start): Use c_begin_compound_stmt. (c99_block_end, compstmt): Use c_end_compound_stmt. (c99_block_lineno_labeled_stmt): Likewise. (compstmt_primary_start): Use c_begin_stmt_expr. (simple_if, select_or_iter_stmt): Update calls to stmt builders. (do_stmt_start): Fill in body directly. (lineno_stmt): Avoid setting lineno on constants. * c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST. Remove SCOPE_STMT. * c-semantics.c (begin_stmt_tree): Remove. (push_stmt_list, re_push_stmt_list, pop_stmt_list): New. (add_stmt): Use statement lists. (add_scope_stmt, finish_stmt_tree): Remove. (push_cleanup): New. * c-tree.h: Move some decls from c-common.h. * c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists. (do_case, c_finish_case): Likewise. (c_finish_then): Take body for then as argument. (c_finish_else): Similarly. (c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond, c_finish_for_stmt_incr, c_finish_for_stmt): New. (c_begin_stmt_expr, c_finish_stmt_expr): New. (c_begin_compound_stmt): Do scope management. (c_end_compound_stmt): New. * fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR. * gimplify.c (voidify_wrapper_expr): Accept temporary argument. Look through exception handling constructs. (gimplify_bind_expr): Accept temporary argument. (gimplify_target_expr): Special case BIND_EXPR bodies. (gimplify_expr): Handle fallback == fb_none like a statement. * langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill. * langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove. * langhooks.h (tree_chain_matters_p): Remove. * stub-objc.c (objc_clear_super_receiver): New. * tree-gimple.h (voidify_wrapper_expr): Update decl. (append_to_statement_list, append_to_statement_list_force): Move to tree-iterator.h. * tree-inline.c (expand_call_inline): Update call. (clone_body): Use statement lists. (walk_tree): Don't check tree_chain_matters_p. (copy_tree_r): Likewise. * tree-iterator.c (alloc_stmt_list): Clear lang bits. (tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly. * tree-iterator.h (append_to_statement_list, append_to_statement_list_force): Moved from tree-gimple.h. * tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump. * objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt. (objc_enter_block): Likewise. (objc_exit_block): Use c_end_compound_stmt. (objc_build_try_enter_fragment): Add #error and comment for rewriting for OBJCPLUS. (objc_build_extract_fragment, objc_build_try_epilogue, objc_build_catch_stmt, objc_build_finally_prologue, objc_build_finally_epilogue): Update for C statement builders. * objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove. cp/ * call.c (initialize_reference): Don't build CLEANUP_STMT here. * cp-gimplify.c (cp_gimplify_stmt): Remove next_p argument. (genericize_try_block): Use gimplify_stmt. (genericize_catch_block, genericize_eh_spec_block): Likewise. (cp_gimplify_init_expr): Remove STMT_EXPR special case. (gimplify_must_not_throw_expr): Update voidify_wrapper_expr call. * cp-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove. (cp_tree_chain_matters_p): Remove. * cp-tree.h (COMPOUND_STMT_TRY_BLOCK): New. (COMPOUND_STMT_BODY_BLOCK): New. (STATEMENT_LIST_NO_SCOPE, STATEMENT_LIST_TRY_BLOCK): New. (EXPR_STMT_STMT_EXPR_RESULT): New. (building_stmt_tree): Check cur_stmt_list. (tf_stmt_expr_cmpd, tf_stmt_expr_body): Remove. (BCS_NO_SCOPE, BCS_TRY_BLOCK, BCS_FN_BODY): New. * decl.c (poplevel): Use pop_stmt_list for minding cleanups. (cp_finish_decl): Use push_cleanup. (start_function, finish_function): Use statement lists. (finish_stmt): Do nothing. * except.c (begin_eh_spec_block): Use statement lists. (check_handlers_1, check_handlers): Likewise. * init.c (construct_virtual_base): Don't add extra compound stmts. (build_vec_init): Likewise. * name-lookup.c (maybe_push_cleanup_level): Use statement lists. * name-lookup.h (struct cp_binding_level): Add statement_list. * parser.c (cp_parser_statement): Take the STMT_EXPR node, not a bool. (cp_parser_labeled_statement, cp_parser_expression_statement, cp_parser_statement_seq_opt): Likewise. (cp_parser_compound_statement): Likewise. Take bool for try block. (cp_parser_selection_statement): Tidy if processing. (cp_parser_already_scoped_statement): Rewrite to do what it says. * pt.c (tsubst_copy): Move STMT_EXPR to tsubst_expr. (tsubst_expr): Rewrite STMT_EXPR processing. Handle STATEMENT_LIST. Mind COMPOUND_STMT_TRY_BLOCK, EXPR_STMT_STMT_EXPR_RESULT. * semantics.c (do_poplevel, do_pushlevel): Use statement lists. (finish_cond): New, rewritten from FINISH_COND. (simplify_loop_decl_cond): New. (finish_expr_stmt): Avoid nested EXPR_STMTs. (begin_if_stmt, finish_if_stmt_cond, finish_then_clause, begin_else_clause, finish_else_clause, finish_if_stmt, begin_while_stmt, finish_while_stmt_cond, finish_while_stmt, begin_do_stmt, finish_do_body, begin_for_stmt, finish_for_init_stmt, finish_for_cond, finish_for_stmt, begin_switch_stmt, finish_switch_cond, finish_switch_stmt, begin_try_block, finish_try_block, finish_cleanup_try_block, finish_function_try_block, finish_handler_sequence, finish_function_handler_sequence, begin_handler, finish_handler_parms, finish_handler, begin_stmt_expr, finish_stmt_expr_expr, finish_stmt_expr): Rewrite using statement lists. (begin_compound_stmt): Replace has_no_scope argument with flags. Update all callers. Use statement lists. (finish_compound_stmt): Likewise. (finish_decl_cleanup, finish_eh_cleanup): Use push_cleanup. (current_scope_stmt_stack): Remove. (simplify_aggr_init_expr): Don't muck with TREE_CHAIN. * typeck2.c (split_nonconstant_init_1, split_nonconstant_init): Rewrite with statement lists. testsuite/ * g++.dg/ext/stmtexpr1.C: XFAIL. * gcc.dg/20030612-1.c: XFAIL. From-SVN: r83221
2004-06-10re PR c++/14791 (13070 does not fix -Wformat with fprintf)Jakub Jelinek1-0/+5
PR c++/14791 * tree.h (enum tree_index): Add TI_FILEPTR_TYPE. (fileptr_type_node): Define. * tree.c (build_common_tree_nodes_2): Initialize fileptr_type_node to ptr_type_node. * c-common.c (c_common_nodes_and_builtins): For C++, make fileptr_type_node a distinct type copy. * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR, BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG, BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add. (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR, BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR, BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove. * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED, BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS, BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE, BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use the above *FILEPTR* types instead of *PTR*. * decl.c (duplicate_decls): Handle fileptr_type_node arguments specially. * g++.dg/opt/builtins1.C: New test. From-SVN: r82902
2004-06-07re PR c++/15337 (sizeof on incomplete type diagnostic)Mark Mitchell1-1/+2
PR c++/15337 * error.c (c_sizeof_or_alignof_type): Use more detailed error message. PR c++/15766 * parser.c (cp_parser_iteration_statement): Fix typo in error message. PR c++/14777 * pt.c (tsubst_default_argument): Do not defer access checks while substituting into the default argument. PR c++/15554 * pt.c (tsubst_copy): Do not try to substitute for an enumeration constant in a non-dependent context. PR c++/15057 * except.c (build_throw): Ensure that temp_expr has been initialized. PR c++/15337 * g++.dg/expr/sizeof3.C: New test. PR c++/14777 * g++.dg/template/access14.C: New test. PR c++/15554 * g++.dg/template/enum1.C: New test. PR c++/15057 * g++.dg/eh/throw1.C: New test. From-SVN: r82693
2004-05-30c-decl.c (c_expand_body_1): Remove and fold back into ...Andrew Pinski1-0/+24
ChangeLog: * c-decl.c (c_expand_body_1): Remove and fold back into ... (c_expand_body): here. (c_expand_decl): Move to ... * c-common.c (c_expand_decl): Here and remove check for nested functions. * c-common.h (c_expand_decl): Add prototype. * c-tree.h (c_expand_decl): Remove. cp/ChangeLog: * cp-lang.c (cp_expand_decl): Remove. (LANG_HOOKS_EXPAND_DECL): Use c_expand_decl. From-SVN: r82469
2004-05-30bb-reorder.c, [...]: Fix comment formatting.Kazu Hirata1-3/+3
* bb-reorder.c, builtins.c, c-common.c, c-gimplify.c, c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c, expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c, passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c, tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c, tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c, tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h, tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment formatting. From-SVN: r82463
2004-05-30c-common.c, [...]: Fix comment typos.Kazu Hirata1-1/+1
* c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c, ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h, fold-const.c, gcc.c, gimplify.c, haifa-sched.c, modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c, tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c, tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix comment typos. Follow spelling conventions. From-SVN: r82439
2004-05-28fix typo in last commit....Aldy Hernandez1-4/+1
From-SVN: r82386
2004-05-28* c-common.c (fname_as_string): Fix xcalloc to xmalloc.Aldy Hernandez1-1/+1
From-SVN: r82384
2004-05-28function.cc: New.Aldy Hernandez1-2/+22
* testsuite/g++.dg/charset/function.cc: New. * testsuite/gcc.dg/charset/function.c: New. * c-decl.c (c_make_fname_decl): Free return value from fname_as_string. * cp/decl.c (cp_make_fname_decl): Free return value from fname_as_string. * c-common.c (fname_as_string): Translate if necessary. From-SVN: r82381
2004-05-28c-common.c (c_estimate_num_insns_1): Kill.Andrew Pinski1-125/+0
2004-05-28 Andrew Pinski <pinskia@physics.uc.edu> * c-common.c (c_estimate_num_insns_1): Kill. (c_estimate_num_insns): Kill. * c-common.h (c_estimate_num_insns): Kill. From-SVN: r82377
2004-05-28re PR rtl-optimization/15649 (ICE with __builtin_isgreater and -ffast-math)Paolo Bonzini1-1/+1
gcc/ChangeLog: 2004-05-27 Paolo Bonzini <bonzini@gnu.org> Roger Sayle <roger@eyesopen.com> PR rtl-optimization/15649 Add LTGT_EXPR and improve pretty-printing of unordered comparisons. * c-common.c (c_common_truthvalue_conversion): Handle LTGT_EXPR. * c-typeck.c (build_binary_op): Likewise. * dojump.c (do_jump): Likewise. * expr.c (expand_expr_real_1, do_store_flag): Likewise. * predict.c (tree_predict_by_opcode): Likewise. * real.c (real_compare): Likewise. * tree-cfg.c (verify_expr): Likewise. * tree-inline.c (estimate_num_insns_1): Likewise. * tree-pretty-print.c (dump_generic_node): Likewise. Handle ORDERED_EXPR, UNORDERED_EXPR. (op_symbol): Print unordered comparisons differently than ordered ones. * tree.def (LTGT_EXPR): New '<' tree code. * doc/c-tree.texi (Expressions): Document floating-point comparison nodes. Fold comparisons between floating point values. * fold-const.c (enum comparison_code): New, from #define'd constants. Define compcodes for unordered comparisons and for invalid transformations. (invert_tree_comparison): Add "honor_nans" parameter. (fold_truthop): Revamp to work on floating-point types too. (comparison_to_compcode): Support unordered comparisons. Use new enum comparison_code. (compcode_to_comparison): Likewise. (combine_compcodes): New function. (invert_truthvalue): Let invert_tree_comparison decide whether it is valid to fold the comparison. Fold ORDERED and UNORDERED even if flag_unsafe_math_optimizations is off, and the remaining even if flag_unsafe_math_optimizations is off but we are under -fno-trapping-math. (fold_relational_const): Integer modes do not honor NaNs. gcc/testsuite/ChangeLog: 2004-05-27 Paolo Bonzini <bonzini@gnu.org> * gcc.c-torture/compare-fp-1.c, gcc.c-torture/compare-fp-2.c, gcc.c-torture/compare-fp-3.c, gcc.c-torture/compare-fp-4.c, gcc.c-torture/compare-fp-3.x, gcc.c-torture/compare-fp-4.x, gcc.c-torture/pr15649-1.c: New. Co-Authored-By: Roger Sayle <roger@eyesopen.com> From-SVN: r82365
2004-05-22[multiple changes]Zack Weinberg1-2/+4
2004-05-22 Andrew Pinski <pinskia@physics.uc.edu> * c-common.c (c_common_truthvalue_conversion): Handle UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR, ORDERED_EXPR, and UNORDERED_EXPR as comparison operators, i.e. set the type to truthvalue_type_node and return. 2004-05-22 Zack Weinberg <zack@codesourcery.com> * tree.h (struct tree_decl): Add possibly_inlined bit. (DECL_POSSIBLY_INLINED): New accessor macro. * cgraph.h: Remove declaration of cgraph_inline_hash. * cgraph.c: Remove definition of cgraph_inline_hash. (hash_node): Revert to hashing DECL_UID. (eq_node): Take two pointers to cgraph_node structures. Compare DECL_UIDs. (cgraph_remove_node): Pass the node directly to htab_find_slot. (cgraph_varpool_hash_node): Rename hash_varpool_node; hash on DECL_UID. (eq_cgraph_varpool_node): Rename eq_varpool_node; take two pointers to cgraph_varpool_node structures; compare DECL_UIDs. (cgraph_node): Allocate a temporary node on the stack, fill in its DECL field, and pass that to htab_find_slot. (cgraph_varpool_node): Likewise. (cgraph_function_possibly_inlined_p): If global info is ready, return the DECL_POSSIBLY_INLINED bit. * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED instead of mucking with cgraph_inline_hash. From-SVN: r82140
2004-05-18Makefile.def, [...]: Remove all mention of libf2c.Zack Weinberg1-53/+0
top: * Makefile.def, Makefile.tpl, configure.in: Remove all mention of libf2c. * configure, Makefile.in: Regenerate. contrib: * gcc_update: Remove gcc/f/intdoc.texi and all libf2c files from list of files to be touched. * convert_to_f2c, convert_to_g2c, download_f2c: Delete. gcc: * f: Entire directory removed * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE) (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE) (g77_integer_type_node, g77_uinteger_type_node) (g77_longint_type_node, or g77_ulongint_type_node): Delete. * c-common.c (c_common_nodes_and_builtins): Do not initialize the above set of variables. * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET. * doc/invoke.texi, doc/standards.texi: Remove cross-references to g77 manual. gcc/po: * exgettext (spec_error_string): Do not scan beyond the end of the string for a close brace. Do not bail out at the first incidence of %%e. * gcc.pot: Regenerate. From-SVN: r81967
2004-05-14tree.def (documentation): Remove mention of class 'b'.Zack Weinberg1-1/+0
* tree.def (documentation): Remove mention of class 'b'. (BLOCK): Now in class 'x'. * c-common.c (verify_tree): Remove case 'b'. * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'. * calls.c (calls_function_1): Control cannot get past the switch when exp is a BLOCK. * print-tree.c (print_node): Move code for class 'b' to the class 'c'/'x' switch, as case BLOCK. * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise. (unsafe_for_reeval, substitute_placeholder_in_expr) (stabilize_reference_1): Remove case 'b'. * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS of something being 'b' to tests for TREE_CODE of something being BLOCK. * tree-ssa-operands.c (get_expr_operands): Likewise. ada: * trans.c (gnat_stabilize_reference_1): Remove case 'b'. From-SVN: r81831
2004-05-13Merge tree-ssa-20020619-branch into mainline.Diego Novillo1-178/+441
From-SVN: r81764
2004-05-05re PR target/14899 (wrong code due to change in compatibility rules for ↵Paolo Bonzini1-0/+10
vector types) gcc/ChangeLog: 2004-05-04 Paolo Bonzini <bonzini@gnu.org> Richard Henderson <rth@redhat.com> PR target/14899 * c-common.c (vector_types_convertible_p): New function. * c-typeck.c (comptypes): Recurse on vector types. (convert_for_assignment): Use vector_types_convertible_p. (digest_init): Use vector_types_convertible_p to check validness of constant vector initializers; otherwise treat them as scalars. * tree.c (make_or_reuse_type): New. (build_common_tree_nodes): Use it. * cp/call.c (standard_conversion): Likewise. * cp/typeck.c (comptypes): Recurse on vector types. (convert_for_assignment): Use vector_types_convertible_p. * config/rs6000/rs6000.c (build_opaque_vector_type): New function. (rs6000_init_builtins): Use it. gcc/testsuite/ChangeLog: 2004-05-04 Paolo Bonzini <bonzini@gnu.org> * g++.dg/ext/spe1.C: New testcase. Co-Authored-By: Richard Henderson <rth@redhat.com> From-SVN: r81504
2004-04-23Makefile.in (LIBGCOV): Add _gcov_fork...Zdenek Dvorak1-0/+7
* Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp, _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve. * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID, BT_FN_INT_CONST_STRING_PTR_CONST_STRING, BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New. * builtins.c (expand_builtin_fork_or_exec): New. (expand_builtin): Call it. * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE, BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New. * c-common.c (PID_TYPE): New macro. (c_common_nodes_and_builtins): Initialize pid_type_node. * calls.c (special_function_p): Do not handle fork and exec. (expand_call): Do not handle ECF_FORK_OR_EXEC. * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle, __gcov_execv, __gcov_execvp, __gcov_execve): Declare. * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle, __gcov_execv, __gcov_execvp, __gcov_execve): New. * tree.h (enum tree_index): Add TI_PID_TYPE. (pid_type_node): New macro. (ECF_FORK_OR_EXEC): Removed. From-SVN: r81118
2004-04-09c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead of ↵Andrew Pinski1-1/+1
TREE_READONLY for types. 2004-04-09 Andrew Pinski <pinskia@physics.uc.edu> * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead of TREE_READONLY for types. 2004-04-09 Andrew Pinski <pinskia@physics.uc.edu> * gcc.dg/20040409-1.c: New test. From-SVN: r80565
2004-03-31builtins.c, [...]: Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.Richard Kenner1-15/+15
* builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c: Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED. * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise. * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise. * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise. * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise. * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise. * config/mips/mips.c, config/rs6000/rs6000.c: Likewise. * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise. * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for REAL_TYPE, not INTEGER_TYPE. (layout_type, case VECTOR_TYPE): Simplify code. * tree.c (build_vector_type_for_mode): Remove dup unsigned setting. * tree.h: Update comments. (STRIP_NOPS): Use TYPE_UNSIGNED. (TYPE_UNSIGNED): New macro. (TYPE_TRAP_SIGNED): Remove now redundant check. (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED. * cp/call.c (joust): Use TYPE_UNSIGNED, not TREE_UNSIGNED. * cp/class.c (check_bitfield_decl): Likewise. * cp/cvt.c (type_promotes_to): Likewise. * cp/decl.c (finish_enum): Likewise. * cp/mangle.c (write_builtin_type): Likewise. * cp/semantics.c (finish_switch_cond, finish_unary_op_expr): Likewise. * cp/typeck.c (type_after_usual_arithmetic_conversions): Likewise. (build_binary_op): Likewise. * f/com.c (ffecom_arrayref_): Use TYPE_UNSIGNED, not TREE_UNSIGNED. (ffecom_expr_): Likewise. * java/jcf-write.c (generate_bytecode_insns): Use TYPE_UNSIGNED. * treelang/treetree.c (tree_lang_signed_or_unsigned_type): Use TYPE_UNSIGNED, not TREE_UNSIGNED. * ada/decl.c (gnat_to_gnu_entity, make_type_from_size): Use TYPE_UNSIGNED, not TREE_UNSIGNED. * ada/trans.c (tree_transform, convert_with_check): Likewise. * ada/utils.c (gnat_signed_or_unsigned_type): Likewise. (build_vms_descriptor, unchecked_convert): Likewise. * ada/utils2.c (nonbinary_modular_operation): Likewise. From-SVN: r80287
2004-03-23alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.Richard Kenner1-2/+2
* alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL. * c-common.c (handle_mode_attribute): Add extra arg to build_pointer_type_for_mode and build_reference_type_for_mode. * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW for INTEGER_CST. * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL. Chain pointers via TYPE_NEXT_PTR_TO. (build_reference_type_for_mode): Similarly. (build_type_no_quals): Add extra arg to build_pointer_type_for_mode and build_reference_type_for_mode. (tree_check4_failed): New function. * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros. (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise. (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW): Add check. * cp/typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW for INTEGER_CST. * ada/decl.c (gnat_to_gnu_entity, case E_Access_Type): Pass value of No_Strict_Aliasing to build_pointer_type_for_mode. * ada/utils.c (update_pointer_to): Walk pointer and ref chains. From-SVN: r79873
2004-03-20c-common.c, [...]: Fix comment typos.Kazu Hirata1-1/+1
* c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c, expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c, reorg.c, tree.h: Fix comment typos. From-SVN: r79730
2004-03-20alias.c, [...]: Replace calls via (*targetm.foo) () with targetm.foo ().Kazu Hirata1-2/+2
* alias.c, attribs.c, bt-load.c, builtins.c, c-common.c, c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c, cse.c, dbxout.c, dwarf2out.c, except.c, final.c, haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c, sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c, vmsdbgout.c: Replace calls via (*targetm.foo) () with targetm.foo (). From-SVN: r79729
2004-03-19c-common.c (pointer_int_sum): Do not complain about using pointers to ↵Mark Mitchell1-6/+0
pointers-to-members. * c-common.c (pointer_int_sum): Do not complain about using pointers to pointers-to-members. * call.c (build_conditional_expr): Do not call force_rvalue for operands of void_type when the conditional expression itself has void type. * name-lookup.c (pushdecl): Don't consider a declaration of a function named "main" to be an overload of a type named "main". * parser.c (cp_parser_template_name): Perform name lookup when the template name is proceeded by "template" if the qualifying scope is non-dependent. * typeck.c (composite_pointer_type_r): Correctly handle pointer-to-member types. (build_const_cast): Likewise. * g++.dg/expr/cond5.C: New test. * g++.dg/expr/constcast1.C: Likewise. * g++.dg/expr/ptrmem2.C: Likewise. * g++.dg/expr/ptrmem3.C: Likewise. * g++.dg/lookup/main1.C: Likewise. * g++.dg/template/lookup6.C: Likewise. From-SVN: r79663
2004-03-16c-common.c (c_common_type_for_mode): Build vector types on demand.Paolo Bonzini1-109/+33
gcc/ChangeLog 2004-03-16 Paolo Bonzini <bonzini@gnu.org> * c-common.c (c_common_type_for_mode): Build vector types on demand. (handle_mode_attribute): Deprecate using the mode attribute to create vector types. Fix indentation. (vector_type_node_list): Remove. (handle_vector_size_attribute): Create vector types on demand. Strip a NON_LVALUE_EXPR from the attribute if there is one. * c-typeck.c (comptypes): Make vector types compatible if they have the same underlying mode. (convert_for_assignment): Use comptypes to convert between vector types. * tree.c (build_common_tree_nodes_2): Do not create vector types. * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary vector types. * tree.h: Remove vector types. * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise. * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise. (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node, V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals. * doc/extend.texi (Vector Types): Document how to use the vector_size attribute to create vectors, rather than mode. * config/arm/mmintrin.h: Use vector_size attribute, not mode. * config/i386/emmintrin.h: Likewise. * config/i386/mmintrin.h: Likewise. * config/i386/xmmintrin.h: Likewise. * config/sh/ushmedia.h: Likwise. testsuite/ChangeLog 2004-03-16 Paolo Bonzini <bonzini@gnu.org> * g++.dg/eh/simd-1.C: Use vector_size attribute, not mode. * g++.dg/eh/simd-2.C: Likewise. * g++.dg/init/array10.C: Likewise. * gcc.c-torture/compile/simd-1.c: Likewise. * gcc.c-torture/compile/simd-2.c: Likewise. * gcc.c-torture/compile/simd-3.c: Likewise. * gcc.c-torture/compile/simd-4.c: Likewise. * gcc.c-torture/compile/simd-6.c: Likewise. * gcc.c-torture/execute/simd-1.c: Likewise. * gcc.c-torture/execute/simd-2.c: Likewise. * gcc.dg/compat/vector-defs.h: Likewise. * gcc.dg/20020531-1.c: Likewise. * gcc.dg/altivec-3.c: Likewise. * gcc.dg/altivec-4.c: Likewise. * gcc.dg/altivec-varargs-1.c: Likewise. * testsuite/gcc.dg/compat/vector-defs.h: Likewise. * gcc.dg/i386-mmx-3.c: Likewise. * gcc.dg/i386-sse-4.c: Likewise. * gcc.dg/i386-sse-5.c: Likewise. * gcc.dg/i386-sse-8.c: Likewise. * gcc.dg/simd-1.c: Likewise. * gcc.dg/20030218-1.c: Likewise. Plus, do not declare __ev64_opaque__ since the machine description provides it. Index: c-common.c =================================================================== RCS file: /cvs/gcc/gcc/gcc/c-common.c,v retrieving revision 1.487 diff -u -r1.487 c-common.c --- c-common.c 26 Feb 2004 01:24:37 -0000 1.487 +++ c-common.c 10 Mar 2004 10:25:28 -0000 @@ -1874,38 +1874,12 @@ if (mode == TYPE_MODE (build_pointer_type (integer_type_node))) return unsignedp ? make_unsigned_type (mode) : make_signed_type (mode); - switch (mode) + if (VECTOR_MODE_P (mode)) { - case V16QImode: From-SVN: r79544
2004-03-14alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) () with ↵Roger Sayle1-65/+65
lang_hooks.foo (). * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) () with lang_hooks.foo (). * builtins.c (expand_builtin_va_arg): Likewise. * c-common.c (fname_as_string, c_common_truthvalue_conversion, c_common_type_for_mode, c_common_nodes_and_builtins, handle_mode_attribute, handle_vector_size_attribute): Likewise. * c-convert.c (convert): Likewise. * c-format.c (check_format_types): Likewise. * c-objc-common.c (c_tree_printer): Likewise. * c-typeck.c (build_unary_op, build_conditional_expr, build_binary_op): Likewise. * calls.c (try_to_integrate, expand_call, emit_library_call_value_1): Likewise. * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p): Likewise. * cgraphunit.c (record_call_1, cgraph_analyze_function, cgraph_expand_function): Likewise. * convert.c (convert_to_pointer, convert_to_integer): Likewise. * coverage.c (build_fn_info_type, build_ctr_info_type, build_gcov_info, create_coverage): Likewise. * dbxout.c (dbxout_init): Likewise. * diagnostic.c (diagnostic_report_current_function): Likewise. * dojump.c (do_jump): Likewise. * dwarf2out.c (dwarf2_name): Likewise. * except.c (init_eh): Likewise. * explow.c (expr_size, int_expr_size): Likewise. * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add): Likewise. * expr.c (store_expr, store_constructor, safe_from_p, expand_expr_real, do_store_flag, try_casesi): Likewise. * function.c (push_function_context_to, pop_function_context_from, free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type, put_var_into_stack, allocate_struct_function, current_function_name): Likewise. * integrate.c (copy_decl_for_inlining, expand_inline_function): Likewise. * langhooks.c (lhd_clear_binding_stack, write_global_declarations, lhd_print_error_function): Likewise. * opts.c (handle_option, decode_options): Likewise. * passes.c (open_dump_file): Likewise. * print-tree.c (print_node): Likewise. * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands, expand_decl_cleanup, emit_case_nodes): Likewise. * stor-layout.c (variable_size): Likewise. * toplev.c (announce_function, wrapup_global_declarations, check_global_declarations, compile_file, default_tree_printer, process_options, lang_dependent_init, finalize): Likewise. * tree-dump.c (dequeue_and_dump): Likewise. * tree-inline.c (remap_decl, remap_block, copy_body_r, initialize_inlined_parameters, declare_return_variable, inlinable_function_p, expand_call_inline, optimize_inline_calls, walk_tree, copy_tree_r): Likewise. * tree-optimize.c (tree_rest_of_compilation): Likewise. * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp, unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl, variably_modified_type_p, dump_tree_statistics): Likewise. * varasm.c (assemble_variable, compare_constant, copy_constant, force_const_mem, compute_reloc_for_constant, output_constant, output_addressed_constants, initializer_constant_valid_p): Likewise. From-SVN: r79481
2004-02-25c-common.c (handle_alias_attribute): Reject the attribute if ↵Richard Henderson1-1/+7
current_function_decl is set. * c-common.c (handle_alias_attribute): Reject the attribute if current_function_decl is set. From-SVN: r78472
2004-02-23Remove -fwritable-strings.Zack Weinberg1-2/+2
gcc/ Remove -fwritable-strings. * c-common.c (fix_string_type): Don't check flag_writable_strings. (fix_string_type): Likewise. * c-opts.c (set_std_c89): Don't initialize flag_writable_strings. (set_std_c99): Likewise. * common.opt (fwritable-strings): Remove. * flags.h: Remove the external declaration of flag_writable_strings. * opts.c (common_handle_option) <OPT_fwritable_strings>: Remove. * toplev.c (flag_writable_strings): Remove. (f_options): Remove an entry for writable-strings. * varasm.c (const_hash_1) <STRING_CST>: Don't check flag_writable_strings. (compare_constant) <STRING_CST>: Likewise. (build_constant_desc): Likewise. * config/darwin.c (machopic_select_section): Likewise. * config/arm/arm.c (AOF_ASSEMBLER): Likewise. * config/arm/pe.c (arm_pe_encode_section_info): Likewise. * config/iq2000/iq2000.c (iq2000_select_section): Likewise. * config/mips/mips.c (mips_select_section): Likewise. (mips_encode_section_info): Likewise. * config/pa/pa.c (pa_select_section): Likewise. * config/pa/pa.h (TEXT_SPACE_P): Likewise. * config/v850/v850.c (v850_select_section): Likewise. * doc/invoke.texi (-fwritable-strings): Remove. (-fno-const-strings): Don't mention -fwritable-strings. * doc/trouble.texi: Don't mention -fwritable-strings. gcc/cp/ * decl.c (cxx_init_decl_processing): Don't check flag_writable_strings. gcc/testsuite/ * gcc.dg/fwritable-strings-1.c: Remove. Co-Authored-By: Kazu Hirata <kazu@cs.umass.edu> From-SVN: r78333
2004-02-17c-common.c, [...]: Fix comment typos.Kazu Hirata1-1/+1
* c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment typos. From-SVN: r77995
2004-02-17re PR c++/11326 (C++ IA64 ABI: 3.1.4: sometimes pointer to temporary return ↵Mark Mitchell1-17/+0
value is implicit first parameter preceding "this") PR c++/11326 * c-common.c (flag_abi_version): Remove. * c-common.h (flag_abi_version): Likewise. * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case. * c.opt (fabi-version): Remove. * calls.c (expand_call): Always pass a function type to struct_value_rtx. Use convert_memory_address. * common.opt (fabi-version): Add it. * flags.h (flag_abi_version): Likewise. (abi_version_at_least): New macro. * opts.c (common_handle_option): Add OPT_fabi_version. * toplev.c (flag_abi_version): Define it. * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p): New function. (ia64_output_mi_thunk): Use it. (ia64_struct_value_rtx): Likewise. PR c++/11326 * cp-tree.h (abi_version_at_least): Remove. * mangle.c: Include flags.h. PR c++/11326 * g++.dg/abi/structret1.C: New test. From-SVN: r77968
2004-02-11c-common.c (vector_size_helper): Remove; call reconstruct_complex_type() ↵Ziemowit Laski1-48/+1
instead. 2004-02-10 Ziemowit Laski <zlaski@apple.com> * c-common.c (vector_size_helper): Remove; call reconstruct_complex_type() instead. * tree.c (reconstruct_complex_type): New function (formerly vector_size_helper() in c-common.c). (make_vector): Make externally visible. * tree.h (reconstruct_complex_type, make_vector): Add prototypes. From-SVN: r77632
2004-02-09re PR c++/11295 (ICE when using a non-trivial object in a compound statement ↵James E Wilson1-1/+1
expression) PR c++/11295 * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call to expand_expr_real call, and pass in alt_rtl as last argument. From-SVN: r77557
2004-02-08c-common.c (shadow_warning): Delete.Zack Weinberg1-15/+0
* c-common.c (shadow_warning): Delete. * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete. * c-decl.c (warn_if_shadowing): Issue shadow warnings directly. * c-opts.c (c_common_parse_file): Don't call free_parser_stacks. * c-parse.in (free_parser_stacks): Delete. cp: * name-lookup.c (pushdecl): Issue shadow warnings directly. * parser.c (free_parser_stacks): Delete. testsuite: * gcc.c-torture/execute/string-opt-15.c: Define memcmp with void * arguments. * gcc.dg/fwritable-strings-1.c: Expect the deprecation notice. ------ Bug 13856 * c-decl.c (diagnose_mismatched_decls): Only give special treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE is also true. (merge_decls): Don't clear DECL_BUILT_IN_CLASS and DECL_FUNCTION_CODE when defining a built-in function. Don't update DECL_ESTIMATED_INSNS. * dwarf2out.c (dwarf2out_decl): Don't ignore built-in FUNCTION_DECLs. * tree.h: Delete DECL_ESTIMATED_INSNS. * tree-inline.c (struct inline_data): Delete inlined_insns field. (expand_call_inline, optimize_inline_calls): Don't update DECL_ESTIMATED_INSNS nor inlined_insns. * cgraphunit.c (cgraph_analyze_function): Don't update DECL_ESTIMATED_INSNS. cp: * optimize.c (maybe_clone_body): Don't update DECL_ESTIMATED_INSNS. * decl.c (duplicate_decls, start_function): Likewise. testsuite: * gcc.dg/visibility-8.c: New testcase. From-SVN: r77475
2004-02-03re PR c/11658 (Wrong error message)Paolo Bonzini1-32/+10
2004-02-03 Paolo Bonzini <bonzini@gnu.org> PR c/11658 PR c/13994 * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend on langhooks.h. * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h. * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c: Include langhooks.h. Replace c_common_truthvalue_conversion with the truthvalue_conversion language hook throughout. (expr_no_commas): Call default_conversion before save_expr for the first term of the production 'x ? : y'. * c-common.c (c_common_truthvalue_conversion): Remove obsolete block. Invoke recursively the hook instead of this function. * c-convert.c (convert): handle ERROR_MARK_NODE. * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE returned by the truthvalue_conversion language hook. * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use c_objc_common_truthvalue_conversion. * c-objc-common.c (c_objc_common_truthvalue_conversion): New function. * c-tree.h (c_objc_common_truthvalue_conversion): Declare it. * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use c_objc_common_truthvalue_conversion. From-SVN: r77168
2004-01-21alias.c, [...]: Update copyright.Kazu Hirata1-1/+1
* alias.c, basic-block.h, c-common.c, c-common.h, c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c, calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c, combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c, cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h, defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c, expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c, genautomata.c, genconditions.c, genemit.c, genflags.c, gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c, ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c, langhooks-def.h, langhooks.c, langhooks.h, line-map.c, line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c, ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c, rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h, target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h, unwind.h, varray.c, varray.h: Update copyright. From-SVN: r76302
2004-01-20fix commentJason Merrill1-1/+1
From-SVN: r76215
2004-01-17c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and ↵Jan Hubicka1-1/+18
builtin_expect specially. * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and builtin_expect specially. * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100. (PARAM_LARGE_FUNCTION_INSNS): Set to 3000. * invoke.texi (max-inline-insns-single): Set to 100. (large-function-insns): Set to 3000. From-SVN: r76007
2004-01-13lang.c (java_estimate_num_insns_1): Fix bug in MODIFY_EXPR cost estimation.Jan Hubicka1-4/+5
* lang.c (java_estimate_num_insns_1): Fix bug in MODIFY_EXPR cost estimation. * c-common.c (c_estimate_num_insns_1): Fix bug in MODIFY_EXPR cost estimation. * expr.c (MOVE_RATIO, CLEAR_RATIO): Move to ... * expr.h (MOVE_RATIO, CLEAR_RATIO): ... here. From-SVN: r75821