summaryrefslogtreecommitdiff
path: root/gcc/ada/gcc-interface/misc.c
AgeCommit message (Collapse)Author
2010-05-16misc.c (gnat_handle_option): Remove special logic for Wuninitialized without -O.Manuel López-Ibáñez
2010-05-16 Manuel López-Ibáñez <manu@gcc.gnu.org> ada/ * gcc-interface/misc.c (gnat_handle_option): Remove special logic for Wuninitialized without -O. fortran/ * options.c (set_Wall): Remove special logic for Wuninitialized without -O. From-SVN: r159454
2010-05-07re PR c/40989 (-Werror= and #pragma diagnostics do not work with group flags)Eric Botcazou
PR 40989 * gcc-interface/misc.c (gnat_handle_option): Fix long line. From-SVN: r159149
2010-05-06re PR c/40989 (-Werror= and #pragma diagnostics do not work with group flags)Manuel López-Ibáñez
2010-05-06 Manuel López-Ibáñez <manu@gcc.gnu.org> PR 40989 * doc/invoke.texi (Wimplicit): Document as C only. * opts.c (common_handle_option): Add argument kind. (handle_option): Rename as read_cmdline_option. Factor out code to... (handle_option): ... here. New. (handle_options): Rename as read_cmdline_options. (decode_options): Update call. (set_option): Use option index instead of option pointer. Classify diagnostics correctly. (enable_warning_as_error): Call handle_option. * opts.h (set_option): Update declaration. (handle_option): Declare. * langhooks.h (struct lang_hooks): Add argument kind to handle_option. * c.opt (Wimplicit,Wimplicit-int): Initialize to -1. * c-opts.c (set_Wimplicit): Delete. (c_family_lang_mask): New static constant. (c_common_handle_option): Add argument kind. Use handle_option instead of set_Wimplicit. (c_common_post_options): warn_implicit and warn_implicit_int are disabled by default. * c-common.c (warn_implicit): Do not define here. * c-common.h (warn_implicit): Do not declare here. (c_common_handle_option): Update declaration. * lto-opts.c (lto_reissue_options): Update call to set_option. java/ * lang.c (java_handle_option): Add argument kind. fortran/ * options.c (gfc_handle_option): Add argument kind. * gfortran.h (gfc_handle_option): Update declaration. ada/ * gcc-interface/misc.c (gnat_handle_option): Add argument kind. testsuite/ * gcc.dg/pr40989.c: New. From-SVN: r159102
2010-04-18fold-const.c (fold_comparison): Use ssizetype.Eric Botcazou
2010-04-18  Eric Botcazou  <ebotcazou@adacore.com> * fold-const.c (fold_comparison): Use ssizetype. * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise. * ipa-prop.c (ipa_modify_call_arguments): Use sizetype. * tree-loop-distribution.c (build_size_arg_loc): Likewise. * tree-object-size.c (compute_object_sizes): Use size_type_node. * tree.h (initialize_sizetypes): Remove parameter. (build_common_tree_nodes): Remove second parameter. * stor-layout.c (initialize_sizetypes): Remove parameter. Always create an unsigned type. (set_sizetype): Assert that the passed type is unsigned and simplify. * tree.c (build_common_tree_nodes): Remove second parameter. Adjust call to initialize_sizetypes. * c-decl.c (c_init_decl_processing): Remove second argument in call to build_common_tree_nodes. cp/ * decl.c (cxx_init_decl_processing): Remove second argument in call to build_common_tree_nodes. java/ * decl.c (java_init_decl_processing): Remove argument in call to initialize_sizetypes fortran/ * f95-lang.c (gfc_init_decl_processing): Remove second argument in call to build_common_tree_nodes. ada/ * gcc-interface/misc.c (gnat_init): Remove second argument in call to build_common_tree_nodes. lto/ * lto-lang.c (lto_init): Remove second argument in call to build_common_tree_nodes. From-SVN: r158496
2010-04-17Fix copyright date.Eric Botcazou
From-SVN: r158468
2010-04-17uintp.h (UI_Lt): Declare.Eric Botcazou
* uintp.h (UI_Lt): Declare. * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Do the size computation in sizetype. <E_Array_Subtype>: Use unified handling for all index types. Do not generate MAX_EXPR-based expressions, only COND_EXPR-based ones. Add bypass for PATs. (annotate_value): Change test for negative values. (validate_size): Apply test for negative values on GNAT nodes. (set_rm_size): Likewise. * gcc-interface/misc.c (gnat_init): Set unsigned types for sizetypes. * gcc-interface/utils.c (rest_of_record_type_compilation): Change test for negative values. (max_size) <MINUS_EXPR>: Do not reassociate a COND_EXPR on the LHS. (builtin_type_for_size): Adjust definition of signed_size_type_node. * gcc-interface/utils2.c (compare_arrays): Optimize comparison of lengths against zero. From-SVN: r158466
2010-04-17back-end.adb (Call_Back_End): Pass Standard_Character to gigi.Eric Botcazou
* back-end.adb (Call_Back_End): Pass Standard_Character to gigi. * gcc-interface/gigi.h (gigi): Add standard_character parameter. (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE, LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, FLOAT_TYPE_SIZE, DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE, SIZE_TYPE): Delete. * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Call rm_size. * gcc-interface/misc.c (gnat_init): Set signedness of char as per flag_signed_char. Tag sizetype with "size_type" moniker. * gcc-interface/trans.c (gigi): Add standard_character parameter. Remove useless built-in types. Equate unsigned_char_type_node to Standard.Character. Use it instead of char_type_node throughout. (Attribute_to_gnu): Likewise. (gnat_to_gnu): Likewise. * gcc-interface/utils2.c (build_call_raise): Likewise. From-SVN: r158462
2010-04-17gigi.h (enum standard_datatypes): Add new values ADT_sbitsize_one_node and ↵Eric Botcazou
ADT_sbitsize_unit_node. * gcc-interface/gigi.h (enum standard_datatypes): Add new values ADT_sbitsize_one_node and ADT_sbitsize_unit_node. (sbitsize_one_node): New macro. (sbitsize_unit_node): Likewise. * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Fix latent bug in the computation of subrange_p. Fold wider_p predicate. (cannot_be_superflat_p): Use an explicitly signed 64-bit type to do the final comparison. (make_aligning_type): Build real negation and use sizetype throughout the offset computation. (maybe_pad_type): Do not issue the warning when the new size expression is too complex. (annotate_value) <INTEGER_CST>: Simplify code handling negative values. * gcc-interface/misc.c (gnat_init): Initialize sbitsize_one_node and sbitsize_unit_node. * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Pool_Address>: Fold double negation. (gnat_to_gnu) <N_Free_Statement>: Likewise. * gcc-interface/utils.c (convert): Use sbitsize_unit_node. * gcc-interface/utils2.c (compare_arrays): Compute real lengths and use constants in sizetype. Remove dead code and tweak comments. Generate equality instead of inequality comparisons for zero length tests. From-SVN: r158461
2010-04-16gigi.h (gnat_init_decl_processing): Delete.Eric Botcazou
* gcc-interface/gigi.h (gnat_init_decl_processing): Delete. * gcc-interface/decl.c (gnat_to_gnu_entity): Constify a few variables. <object>: Do not create the fake PARM_DECL if no debug info is needed. Do not create the corresponding VAR_DECL of a CONST_DECL for debugging purposes if no debug info is needed. Fix formatting. Reorder and add comments. * gcc-interface/trans.c (gnat_to_gnu) <N_Attribute_Reference>: Constify variable and remove obsolete comment. * gcc-interface/utils.c (convert_vms_descriptor64): Tweak comment. (convert_vms_descriptor32): Likewise. (convert): Remove dead code. <UNCONSTRAINED_ARRAY_REF>: Pass the field instead of its name to build the reference to the P_ARRAY pointer. <POINTER_TYPE>: Likewise. (maybe_unconstrained_array) <UNCONSTRAINED_ARRAY_TYPE>: Likewise. (gnat_init_decl_processing): Delete, move contents to... * gcc-interface/misc.c (gnat_init): ...here. From-SVN: r158428
2010-04-13Remove lang_eh_type_covers, which is dead, and the correspondingDuncan Sands
Ada routine gnat_eh_type_covers. From-SVN: r158258
2010-04-13gimple.c (walk_gimple_op): Do not request a pure rvalue on the RHS if the ↵Eric Botcazou
LHS is of a non-renamable type. * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure rvalue on the RHS if the LHS is of a non-renamable type. * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result. ada/ * gcc-interface/ada-tree.h (TYPE_BY_REFERENCE_P): Delete. (DECL_CONST_ADDRESS_P): New macro. (SET_DECL_ORIGINAL_FIELD_TO_FIELD): Likewise. (SAME_FIELD_P): Likewise. * gcc-interface/decl.c (constructor_address_p): New static function. (gnat_to_gnu_entity) <object>: Set DECL_CONST_ADDRESS_P according to the return value of above function. (gnat_to_gnu_entity) <E_Record_Type>: Force BLKmode for all types passed by reference. <E_Record_Subtype>: Likewise. Set TREE_ADDRESSABLE on the type if it passed by reference. (make_packable_type): Use SET_DECL_ORIGINAL_FIELD_TO_FIELD. (create_field_decl_from): Likewise. (substitute_in_type): Likewise. (purpose_member_field): Use SAME_FIELD_P. * gcc-interface/misc.c (must_pass_by_ref): Test TREE_ADDRESSABLE. * gcc-interface/trans.c (lvalue_required_p): Add ADDRESS_OF_CONSTANT parameter and adjust recursive calls. <N_Explicit_Dereference>: New case. <N_Object_Declaration>: Return 1 if the object is of a class-wide type. Adjust calls to lvalue_required_p. Do not return the initializer of a DECL_CONST_ADDRESS_P constant if an lvalue is required for it. (call_to_gnu): Delay issuing error message for a misaligned actual and avoid the associated back-end assertion. Test TREE_ADDRESSABLE. (gnat_gimplify_expr) <ADDR_EXPR>: Handle non-static constructors. * gcc-interface/utils.c (make_dummy_type): Set TREE_ADDRESSABLE if the type is passed by reference. (convert) <CONSTRUCTOR>: Convert in-place in more cases. * gcc-interface/utils2.c (build_cond_expr): Drop TYPE_BY_REFERENCE_P. (build_simple_component_ref): Use SAME_FIELD_P. From-SVN: r158254
2009-10-16ada-tree.h (TYPE_FAT_POINTER_P): Swap with...Eric Botcazou
* gcc-interface/ada-tree.h (TYPE_FAT_POINTER_P): Swap with... (TYPE_IS_FAT_POINTER_P): ...this. (TYPE_THIN_POINTER_P): Rename into... (TYPE_IS_THIN_POINTER_P): ...this. (TYPE_FAT_OR_THIN_POINTER_P): Rename into... (TYPE_IS_FAT_OR_THIN_POINTER_P): ...this. (TYPE_IS_PADDING_P): Change definition, move old one to... (TYPE_PADDING_P): ...this. * gcc-interface/decl.c (gnat_to_gnu_entity): Adjust for above changes. (get_unpadded_type): Likewise. (gnat_to_gnu_component_type): Likewise. (gnat_to_gnu_param): Likewise. (relate_alias_sets): Likewise. (make_packable_type): Likewise. (maybe_pad_type): Likewise. (gnat_to_gnu_field): Likewise. (is_variable_size): Likewise. (annotate_object): Likewise. (validate_size): Likewise. (set_rm_size): Likewise. (make_type_from_size): Likewise. (rm_size): Likewise. * gcc-interface/misc.c (gnat_print_type): Likewise. (gnat_get_alias_set): Likewise. * gcc-interface/trans.c (Identifier_to_gnu): Likewise. (Attribute_to_gnu): Likewise. (call_to_gnu): Likewise. (gnat_to_gnu): Likewise. (add_decl_expr): Likewise. (convert_with_check): Likewise. (addressable_p): Likewise. (maybe_implicit_deref): Likewise. (protect_multiple_eval): Likewise. (gnat_stabilize_reference_1): Likewise. * gcc-interface/utils.c (gnat_pushdecl): Likewise. (finish_record_type): Likewise. (rest_of_record_type_compilation): Likewise. (create_type_decl): Likewise. (gnat_types_compatible_p): Likewise. (build_template): Likewise. (convert_vms_descriptor64): Likewise. (convert_vms_descriptor32): Likewise. (build_unc_object_type_from_ptr): Likewise. (update_pointer_to): Likewise. (convert_to_fat_pointer): Likewise. (convert_to_fat_pointer): Likewise. (convert): Likewise. (remove_conversions): Likewise. (maybe_unconstrained_array): Likewise. (unchecked_convert): Likewise. (handle_vector_type_attribute): Likewise. * gcc-interface/utils2.c (build_binary_op): Likewise. (build_unary_op): Likewise. (build_allocator): Likewise. From-SVN: r152917
2009-09-25ada-tree.h (TYPE_REPRESENTATIVE_ARRAY): New language specific node.Olivier Hainque
ada/ * gcc-interface/ada-tree.h (TYPE_REPRESENTATIVE_ARRAY): New language specific node. Representative array type for VECTOR_TYPE entities. * gcc-interface/utils.c (handle_vector_type_attribute): New handler. Turn an ARRAY_TYPE entity into a VECTOR_TYPE. (gnat_types_compatible_p): Handle VECTOR_TYPEs. (convert): Likewise. Arrange to produce VECTOR_CST out of constant array aggregates for VECTOR_TYPE entities. (unchecked_convert): Likewise. (maybe_vector_array): New function. If EXP has VECTOR_TYPE, return EXP converted to the associated TYPE_REPRESENTATIVE_ARRAY. (handle_pure_attribute, handle_sentinel_attribute, handle_noreturn_attribute, handle_malloc_attribute, handle_vector_size_attribute): Replace uses of qE format by qs. Remove GCC_DIAG_STYLE definition. * gcc-interface/trans.c (gnat_to_gnu) <N_Indexed_Component>: Convert vector input to representative array type on entry. <N_Op_Eq, etc>: Likewise. * gcc-interface/gigi.h (maybe_vector_array): Declare. (VECTOR_TYPE_P): New predicate. * gcc-interface/misc.c (gnat_print_type): Handle VECTOR_TYPE. testsuite/ * gnat.dg/sse_nolib.adb: New testcase. From-SVN: r152165
2009-09-14Squash commit of EH in gimpleRichard Henderson
From-SVN: r151696
2009-09-13langhooks-def.h (LANG_HOOKS_EH_RUNTIME_TYPE): Define.Richard Guenther
2009-09-13 Richard Guenther <rguenther@suse.de> Rafael Avila de Espindola <espindola@google.com> * langhooks-def.h (LANG_HOOKS_EH_RUNTIME_TYPE): Define. (LANG_HOOKS_EH_PERSONALITY): Likewise. (LANG_HOOKS_INITIALIZER): Adjust. (lhd_pass_through_t): Declare. * langhooks.h (struct lang_hooks): Add eh_runtime_type and eh_personality. * langhooks.c (lhd_pass_through_t): New function. * dwarf2out.c (output_call_frame_info, dwarf2out_do_cfi_startproc, dwarf2out_begin_prologue): Use personality from current_function_decl. * expr.h (get_personality_function): Declare. * expr.c (get_personality_function): New function. (build_personality_function): Likewise. * libfuncs.h (libfunc_index): Remove LTI_eh_personality. (eh_personality_libfunc): Remove. * optabs.c (build_libfunc_function): New function split out from ... (init_one_libfunc): ... here. * tree.h (DECL_FUNCTION_PERSONALITY): New. (tree_function_decl): Add personality. (lhd_gcc_personality): Declare. (build_personality_function): Likewise. * tree.c (gcc_eh_personality_decl): New. (lhd_gcc_personality): New function. * except.h (lang_eh_runtime_type): Remove. (enum eh_personality_kind): New. (build_personality_function): Declare. (function_needs_eh_personality): Declare. * except.c (lang_eh_runtime_type): Remove. (function_needs_eh_personality): New function. (add_type_for_runtime): Call lang_hooks.type_for_runtime instead. (sjlj_emit_function_enter, output_function_exception_table): Use personality from current_function_decl. * tree-eh.c (lower_eh_constructs): Set DECL_FUNCTION_PERSONALITY. * tree-inline.c (tree_can_inline_p): Do not inline across different EH personalities. (expand_call_inline): Likewise. Adjust the callers EH personality. (tree_function_versioning): Copy DECL_FUNCTION_PERSONALITY. * cgraph.c (cgraph_add_new_function): Set DECL_FUNCTION_PERSONALITY. * Makefile.in (cgraph.o): Add $(EXCEPT_H) dependency. (c-parser.o): Likewise * c-tree.h (c_eh_initialized_p): Remove. (c_maybe_initialize_eh): Likewise. * c-decl.c (finish_decl): Don't call c_maybe_initialize_eh. (finish_decl): Don't call c_maybe_initialize_eh. (c_eh_initialized_p): Remove. (c_maybe_initialize_eh): Likewise. * c-parser.c (c_parser_omp_construct): Likewise. (c_parse_file): Initialize exception handling. objc/ * objc-act.c (objc_eh_runtime_type): Export. (objc_init_exceptions): Remove. Move warning code ... (objc_begin_try_stmt): ... here (objc_build_throw_stmt): ... and here. (objc_eh_personality_decl): New. (objc_eh_personality): New function. * objc-act.h (objc_eh_runtime_type): Declare. (objc_eh_personality): Likewise. * objc-lang.c (LANG_HOOKS_EH_RUNTIME_TYPE): Define. (LANG_HOOKS_EH_PERSONALITY): Likewise. cp/ * except.c (init_exception_processing): Do not set lang_eh_runtime_type. (choose_personality_routine): Do not set eh_personality_decl, set pragma_java_exceptions. * cp-lang.c (LANG_HOOKS_EH_RUNTIME_TYPE): Define. (LANG_HOOKS_EH_PERSONALITY): Likewise. (cp_eh_personality_decl): New. (cp_eh_personality): Likewise. * Make-lang.in (cp-lang.o): Add $(EXPR_H) and $(EXCEPT_H) dependencies. java/ * decl.c (do_nothing): Remove. (java_init_decl_processing): Do not set lang_eh_runtime_type. * Make-lang.in (lang.o): Add $(EXCEPT_H) dependency. * lang.c (java_eh_personality): New. (java_eh_personality_decl): Likewise. (LANG_HOOKS_EH_PERSONALITY): Define. ada/ * gcc-interface/misc.c (gnat_init_gcc_eh): Do not set lang_eh_runtime_type. (LANG_HOOKS_EH_PERSONALITY): Define. (gnat_eh_personality_decl): New. (gnat_eh_personality): Likewise. * Make-lang.in (misc.o): Add gt-ada-misc.h dependency. * config-lang.in (gtfiles): Add misc.c. fortran/ * f95-lang.c (gfc_maybe_initialize_eh): Do not init eh_personality_libfunc. Co-Authored-By: Rafael Avila de Espindola <espindola@google.com> From-SVN: r151676
2009-09-03[multiple changes]Diego Novillo
2009-09-01 Diego Novillo <dnovillo@google.com> * c-lang.c (lang_hooks): Remove const qualifier. java/ChangeLog * lang.c (lang_hooks): Remove const qualifier. objc/ChangeLog * objc-lang.c (lang_hooks): Remove const qualifier. objcp/ChangeLog * objcp-lang.c (lang_hooks): Remove const qualifier. ada/ChangeLog * gcc-interface/misc.c (lang_hooks): Remove const qualifier. fortran/ChangeLog * f95-lang.c (lang_hooks): Remove const qualifier. cp/ChangeLog * cp-lang.c (lang_hooks): Remove const qualifier. 2009-09-01 Diego Novillo <dnovillo@google.com> * cgraph.c (cgraph_node_for_decl): New. * cgraph.h (cgraph_node_for_decl): Declare. * tree.c (host_integerp): Return 0 if T is NULL. 2009-09-01 Diego Novillo <dnovillo@google.com> * tree.h (struct alias_pair): Move from varasm.c. (alias_pairs): Likewise. (TYPE_MAXVAL): Define. (TYPE_MINVAL): Define. (iterative_hash_host_wide_int): Declare. (remove_unreachable_alias_pairs): Declare. * tree-pass.h (pass_ipa_free_lang_data): Declare. * diagnostic.c (default_diagnostic_starter): Make extern. (default_diagnostic_finalizer): Make extern. * diagnostic.h (default_diagnostic_starter): Declare. (default_diagnostic_finalizer): Declare. (default_tree_printer): Declare. * toplev.c (default_tree_printer): Make extern. 2009-09-01 Richard Guenther <rguenther@suse.de> Diego Novillo <dnovillo@google.com> * cgraph.c (cgraph_add_new_function): Remove gimplification. * cgraphunit.c (cgraph_expand_function): Do not emit associated thunks from here. (cgraph_emit_thunks): New. (cgraph_optimize): Call it. Return if any IPA pass finds an error. * varasm.c (finish_aliases_1): Ignore errorneous aliases used by thunks. 2009-09-01 Simon Baldwin <simonb@google.com> Rafael Espindola <espindola@google.com> Richard Guenther <rguenther@suse.de> Doug Kwan <dougkwan@google.com> Diego Novillo <dnovillo@google.com> * tree.c: Include tree-pass.h, langhooks-def.h, diagnostic.h, cgraph.h, timevar.h, except.h and debug.h. (free_lang_data_in_type): New. (need_assembler_name_p): New. (free_lang_data_in_block): New. (free_lang_data_in_decl): New. (struct free_lang_data_d): New. (add_tree_to_fld_list): New. (find_decls_types_r): New. (get_eh_types_for_runtime): New. (find_decls_types_in_eh_region): New. (find_decls_types_in_node): New. (find_decls_types_in_var): New. (free_lang_data_in_cgraph): New. (free_lang_data): New. (gate_free_lang_data): New. (pass_ipa_free_lang_data): New. 2009-09-01 Diego Novillo <dnovillo@google.com> * timevar.def (TV_IPA_FREE_LANG_DATA): Define. * langhooks.h (struct lang_hooks): Add field free_lang_data. (lang_hooks): Remove const qualifier. * ipa.c (cgraph_remove_unreachable_nodes): Call remove_unreachable_alias_pairs. * except.c (add_type_for_runtime): Check if TYPE has already been converted. (lookup_type_for_runtime): Likewise. (check_handled): Handle converted types. * varasm.c (remove_unreachable_alias_pairs): New. * gimple.c: Include demangle.h. (gimple_decl_printable_name): New. (gimple_fold_obj_type_ref): New. * gimple.h (gimple_decl_printable_name): Declare. (gimple_fold_obj_type_ref): Declare. * passes.c (init_optimization_passes): Add pass pass_ipa_free_lang_data. * langhooks-def.h (LANG_HOOKS_FREE_LANG_DATA): Define. (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_FREE_LANG_DATA. testsuite/ChangeLog 2009-09-01 Diego Novillo <dnovillo@google.com> * gcc.dg/gomp/combined-1.c: Adjust expected pattern. * g++.dg/tree-prof/inline_mismatch_args.C: Likewise. * g++.dg/warn/unit-1.C: Likewise. * g++.dg/ipa/iinline-1.C: Likewise. * g++.dg/template/cond2.C: Adjust expected line location for the error. * g++.dg/template/pr35240.C: Likewise. cp/ChangeLog 2009-09-01 Doug Kwan <dougkwan@google.com> * tree.c (cp_fix_function_decl_p): New. (cp_free_lang_data): New. 2009-09-01 Diego Novillo <dnovillo@google.com> * Make-lang.in (decl2.o): Add dependency on $(POINTER_SET_H). * decl2.c: Include pointer-set.h. (collect_candidates_for_java_method_aliases): New. (cp_write_global_declarations): Call it. Add local variable CANDIDATES. If set, call build_java_method_aliases. (build_java_method_aliases): Add argument CANDIDATES. Use it to determine if FNDECL should get a hidden alias. * cp-objcp-common.h (LANG_HOOKS_FREE_LANG_DATA): Define. * cp-tree.h (cp_free_lang_data): Declare. 2009-09-03 Richard Guenther <rguenther@suse.de> * method.c (use_thunk): Use cgraph_finalize_function to hand off thunks to the cgraph. * semantics.c (emit_associated_thunks): Do not emit thunks for really extern functions. From-SVN: r151360
2009-09-01tree-flow.h (mark_addressable): Move declaration ...Richard Guenther
2009-09-01 Richard Guenther <rguenther@suse.de> * tree-flow.h (mark_addressable): Move declaration ... * tree.h (mark_addressable): ... here. * stmt.c (expand_asm_operands): Use mark_addressable, not lang_hooks.mark_addressable. * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_MARK_ADDRESSABLE. * langhooks.h (struct lang_hooks): Remove mark_addressable langhook. * c-objc-common.h (LANG_HOOKS_MARK_ADDRESSABLE): Remove. ada/ * gcc-interface/misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Remove. cp/ * cp-objcp-common.h (LANG_HOOKS_MARK_ADDRESSABLE): Remove. fortran/ * f95-lang.c (gfc_mark_addressable): Remove. (LANG_HOOKS_MARK_ADDRESSABLE): Likewise. java/ * lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Remove. * java-tree.h (java_mark_addressable): Likewise. * typeck.c (java_mark_addressable): Likewise. From-SVN: r151260
2009-08-20ada-tree.h (SET_TYPE_RM_VALUE): Mark the expression as visited.Eric Botcazou
* gcc-interface/ada-tree.h (SET_TYPE_RM_VALUE): Mark the expression as visited. * gcc-interface/misc.c (gnat_get_subrange_bounds): Always return the bounds. * gcc-interface/trans.c (add_decl_expr): Do not mark gigi-specific fields. (gnat_gimplify_expr) <DECL_EXPR>: New case. From-SVN: r150963
2009-07-17re PR c/40401 (ICE: verify_gimple failed)Richard Guenther
2009-07-17 Richard Guenther <rguenther@suse.de> PR c/40401 * tree-pass.h (pass_diagnose_omp_blocks): Declare. (pass_warn_unused_result): Likewise. (TODO_set_props): Remove. * omp-low.c (diagnose_omp_structured_block_errors): Change to run as a pass. (pass_diagnose_omp_blocks): Define. * c-decl.c (pop_file_scope): Do not finalize the CU here. (c_gimple_diagnostics_recursively): Remove. (finish_function): Do not call it. (c_write_global_declarations): Continue after errors. Finalize the CU here. * c-gimplify.c (c_genericize): Do not gimplify here. * c-common.c (c_warn_unused_result): Move ... * tree-cfg.c (do_warn_unused_result): ... here. (run_warn_unused_result): New function. (gate_warn_unused_result): New function. (pass_warn_unused_result): New pass. * c-common.h (c_warn_unused_result): Remove. * flags.h (flag_warn_unused_result): Declare. * c-opts.c (c_common_init_options): Enable flag_warn_unused_result. * opts.c (flag_warn_unused_result): Initialize to false. * toplev.c (compile_file): Add comment. * omp-low.c (create_omp_child_function): Do not register the function with the frontend. (diagnose_omp_structured_block_errors): Prepare to be called as optimization pass. (gate_diagnose_omp_blocks): New function. (pass_diagnose_omp_blocks): New pass. * cgraph.h (cgraph_optimize): Remove. (cgraph_analyze_function): Likewise. * cgraph.c (cgraph_add_new_function): Gimplify C++ thunks. * cgraphunit.c (cgraph_lower_function): Lower nested functions before their parents here. (cgraph_finalize_function): Not here. (cgraph_analyze_function): Gimplify functions here. (cgraph_finalize_compilation_unit): Continue after errors. Optimize the callgraph from here. (cgraph_optimize): Make static. * langhooks.c (write_global_declarations): Finalize the CU. * gimplify.c (gimplify_asm_expr): Do not emit ASMs with errors. (gimplify_function_tree): Assert we gimplify only once. Set PROP_gimple_any property. * tree-nested.c (gimplify_all_functions): New function. (lower_nested_functions): Gimplify all nested functions. * gimple.h (diagnose_omp_structured_block_errors): Remove. * passes.c (init_optimization_passes): Add pass_warn_unused_result and pass_diagnose_omp_blocks after gimplification. Do not set TODO_set_props on all_lowering_passes. (execute_one_pass): Do not handle TODO_set_props. * Makefile.in (cgraphunit.o): Add $(TREE_DUMP_H) dependency. (gimplify.o): Add tree-pass.h dependency. * tree-inline.c (copy_statement_list): Properly copy STATEMENT_LIST. (copy_tree_body_r): Properly handle TARGET_EXPR like SAVE_EXPR. (unsave_r): Likewise. * c-omp.c (c_finish_omp_atomic): Set DECL_CONTEXT on the temporary variable. cp/ * decl.c (finish_function): Do not emit unused result warnings from here. * cp-objcp-common.h (LANG_HOOKS_POST_GIMPLIFY_PASS): Use c_warn_unused_result_pass. * semantics.c (expand_or_defer_fn): Adjust assertion about IL status. * optimize.c (clone_body): Clone in GENERIC. (maybe_clone_body): Do not clear DECL_SAVED_TREE. * decl2.c (cp_write_global_declarations): Fix body test. Do not call cgraph_optimize. * Make-lang.in (optimize.o): Add tree-iterator.h dependency. * method.c (use_thunk): Register thunk with cgraph_finalize_function. * error.c (function_category): Guard access of DECL_LANG_SPECIFIC. java/ * java-gimplify.c (java_genericize): Do not gimplify here. But replace all local references. (java_gimplify_expr): Do not replace local references here. (java_gimplify_modify_expr): Likewise. * jcf-parse.c (java_parse_file): Do not finalize the CU or optimize the cgraph here. * decl.c (java_replace_reference): Make static. (java_replace_references): New function. (end_java_method): Clear base_decl_map. * java-tree.h (java_replace_references): Declare. (java_replace_reference): Remove. ada/ * utils.c (end_subprog_body): Revert to pre-tuples state. Remove unused parameter. (gnat_gimplify_function): Do not gimplify here. Fold into its only caller and remove. (gnat_builtin_function): Adjust for end_subprog_body signature change. (gnat_write_global_declarations): Also finalize the CU. * misc.c (gnat_parse_file): Do not finalize the CU here. * trans.c (gigi): Revert to pre-tuples state. (Subprogram_Body_to_gnu): Adjust for end_subprog_body signature change. * gigi.h (end_subprog_body): Remove unused parameter. fortran/ * f95-lang.c (gfc_be_parse_file): Do not finalize the CU here. * trans-decl.c (gfc_gimplify_function): Remove. (build_entry_thunks): Do not gimplify here. (create_main_function): Likewise. (gfc_generate_function_code): Likewise. * g++.dg/rtti/crash4.C: New testcase. * g++.dg/torture/20090706-1.C: Likewise. * gcc.dg/redecl-17.c: Likewise. * gfortran.dg/missing_optional_dummy_5.f90: Adjust pattern. * gcc.dg/declspec-9.c: Expect extra error. * gcc.dg/declspec-10.c: Likewise. * gcc.dg/declspec-11.c: Likewise. * gcc.dg/redecl-10.c: Expect extra warnings. * gcc.target/i386/pr39082-1.c: Adjust diagnostic location. * gcc.target/i386/pr39545-1.c: Likewise. * g++.dg/ext/asm3.C: Expect more errors. * g++.dg/gomp/block-1.C: Likewise. * g++.dg/gomp/block-2.C: Likewise. * g++.dg/gomp/block-3.C: Likewise. * g++.dg/gomp/block-5.C: Likewise. * g++.old-deja/g++.jason/report.C: Expect extra warnings. * g++.dg/warn/unused-result1.C: XFAIL. From-SVN: r149750
2009-07-11ada-tree.h: Minor reorganization.Eric Botcazou
* gcc-interface/ada-tree.h: Minor reorganization. * gcc-interface/misc.c (gnat_print_decl): Minor tweaks. (gnat_print_type): Likewise. From-SVN: r149518
2009-06-26tb-gcc.c (trace_callback): Use char* instead of void*.Laurent GUERBY
2009-06-26 Laurent GUERBY <laurent@guerby.net> * tb-gcc.c (trace_callback): Use char* instead of void*. * gcc-interface/misc.c (enumerate_modes): Make loop compatible with C++. * gcc-interface/trans.c (parm_attr): Rename to parm_attr_d. Change all uses. * gcc-interface/utils.c (new, class, template): Rename to be compatible with C++. Change all uses. * gcc-interface/decl.c (new): Likewise. From-SVN: r148975
2009-06-11common.opt (gdwarf-): Accept a version number.Richard Henderson
* common.opt (gdwarf-): Accept a version number. * doc/invoke.texi (gdwarf-): Update docs. * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus. * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf version level, and record it. * dwarf2.h (DW_CIE_VERSION): Remove. * dwarf2out.c (DWARF_VERSION): Remove. (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3. (output_call_frame_info): Use CIE version 3 for dwarf3, or if the return register column is out of range for version 1. (dwarf_stack_op_name): Add all dwarf3 values. (DEBUG_PUBTYPES_SECTION): New. (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr encoding change for dwarf3. (output_die) [dw_val_class_die_ref]: Likewise. (output_compilation_unit_header): Emit correct version for dwarf3. (output_line_info): Likewise. (output_pubnames): Update for DWARF_VERSION removal. (output_aranges): Likewise. (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3. (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION. (dwarf2out_finish): Likewise. ada/ * gcc-interface/misc.c (gnat_handle_option): Rename OPT_gdwarf_ to OPT_gdwarfplus. From-SVN: r148408
2009-05-23* gcc-interface/misc.c (gnat_get_subrange_bounds): Fix thinko.Eric Botcazou
From-SVN: r147820
2009-05-15dbxout.c (dbxout_range_type): Add LOW and HIGH parameters.Eric Botcazou
* dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them for bounds. (print_int_cst_bounds_in_octal_p): Likewise. (dbxout_type): Adjust calls to above functions. Be prepared to deal with subtypes. * dwarf2out.c (base_type_die): Likewise. (is_subrange_type): Delete. (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds. (modified_type_die): Call subrange_type_for_debug_p on subtypes. * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it if the destination type is boolean. (build_range_check): Do not special-case subtypes. (fold_sign_changed_comparison): Likewise. (fold_unary): Likewise. * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define. (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS. * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds. * tree.c (subrange_type_for_debug_p): New predicate based on the former is_subrange_type. * tree.h (subrange_type_for_debug_p): Declare. * tree-chrec.c (avoid_arithmetics_in_type_p): Delete. (convert_affine_scev): Remove call to above function. (chrec_convert_aggressive): Likewise. * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return false for conversions involving subtypes. * tree-vrp.c (vrp_val_max): Do not special-case subtypes. (vrp_val_min): Likewise. (needs_overflow_infinity): Likewise. (extract_range_from_unary_expr): Likewise. ada/ * gcc-interface/ada-tree.h (TYPE_GCC_MIN_VALUE, TYPE_GCC_MAX_VALUE): New macros. (TYPE_RM_VALUES): Likewise. (TYPE_RM_SIZE): Rewrite in terms of TYPE_RM_VALUES. (SET_TYPE_RM_SIZE): New macro. (TYPE_RM_MIN_VALUE, TYPE_RM_MAX_VALUE): Likewise. (SET_TYPE_RM_SIZE, SET_TYPE_RM_MAX_VALUE): Likewise. (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Redefine. * gcc-interface/gigi.h (create_range_type): Declare. * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Type> Use SET_TYPE_RM_MAX_VALUE to set the upper bound on the UMT type. <E_Signed_Integer_Subtype>: Build a regular integer type first and then set the RM bounds. Use SET_TYPE_RM_SIZE to set the RM size. <E_Floating_Point_Subtype>: Build a regular floating-point type first and then set the RM bounds. <E_Array_Type>: Use create_range_type instead of build_range_type. <E_Array_Subtype>: Build a regular integer type first and then set the RM bounds for the extra subtype. <E_String_Literal_Subtype>: Use create_range_type instead of build_range_type. <all>: Set the RM bounds for enumeration types and the GCC bounds for floating-point types. (set_rm_size): Use SET_TYPE_RM_SIZE to set the RM size. (make_type_from_size) <INTEGER_TYPE>: Use SET_TYPE_RM_{MIN,MAX}_VALUE to set the bounds. Use SET_TYPE_RM_SIZE to set the RM size. (substitute_in_type) <INTEGER_TYPE>: Deal with GCC bounds for domain types and with RM bounds for subtypes. * gcc-interface/misc.c (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define. (gnat_print_type) <REAL_TYPE>: New case. <ENUMERAL_TYPE>: Fall through to above case. (gnat_get_subrange_bounds): New function. * gcc-interface/trans.c (add_decl_expr): Mark the trees rooted as TYPE_RM_MIN_VALUE and TYPE_RM_MAX_VALUE, if any. * gcc-interface/utils.c (gnat_init_decl_processing): Use precision 8 for booleans. Adjust and use SET_TYPE_RM_SIZE to set the RM size. (create_range_type): New function. (create_param_decl): Build a regular integer type first and then set the RM bounds for the extra subtype. (unchecked_convert): Remove kludge for 'Valid. * gcc-interface/utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Convert the index to sizetype instead of TYPE_DOMAIN. From-SVN: r147563
2009-04-24Fix nitEric Botcazou
From-SVN: r146679
2009-04-24fe.h (Set_Identifier_Casing): Add const to second parameter.Richard Kenner
* fe.h (Set_Identifier_Casing): Add const to second parameter. * gcc-interface/misc.c (internal_error_function): Make copy of retur from pp_formatted_text before assigning BUFFER to it. (gnat_init): Likewise for main_input_filename and gnat_argv. (gnat_printable_name): Remove cast from call to Set_Identifier_Casing. Co-Authored-By: Thomas Quinot <quinot@adacore.com> From-SVN: r146678
2009-04-23gigi.h (create_index_type): Adjust head comment.Eric Botcazou
* gcc-interface/gigi.h (create_index_type): Adjust head comment. * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Use front-end predicates to compute signedness and precision. <E_String_Literal_Subtype>: Fold range type. Make sure to set longest_float_type_node to a scalar type. (elaborate_entity): Use consistent Constraint_Error spelling. (substitute_in_type) <INTEGER_TYPE>: Always copy the type. * gcc-interface/misc.c (gnat_print_type) <INTEGER_TYPE>: Use brief output for the modulus, if any. <ENUMERAL_TYPE>: Likewise for the RM size. * gcc-interface/trans.c (gnat_to_gnu): Use consistent Constraint_Error spelling. * gcc-interface/utils.c (finish_record_type): Really test the alignment of BLKmode bit-fields to compute their addressability. (create_index_type): Adjust comments. (create_param_decl): Create the biased subtype manually. * gcc-interface/utils2.c (build_component_ref): Use consistent Constraint_Error spelling. From-SVN: r146644
2009-04-23cuintp.c: Clean up include directives.Eric Botcazou
* gcc-interface/cuintp.c: Clean up include directives. * gcc-interface/targtyps.c: Likewise. * gcc-interface/decl.c: Likewise. * gcc-interface/misc.c: Likewise. * gcc-interface/trans.c: Likewise. * gcc-interface/utils.c: Likewise. * gcc-interface/utils2.c: Likewise. * gcc-interface/Make-lang.in: Adjust dependencies accordingly. From-SVN: r146643
2009-04-22ada-tree.def: Fix formatting nits.Eric Botcazou
* gcc-interface/ada-tree.def: Fix formatting nits. (REGION_STMT): Delete. (HANDLER_STMT): Likewise. * gcc-interface/ada-tree.h: Fix formatting nits. (IS_STMT): Delete. (REGION_STMT_BODY): Likewise. (REGION_STMT_HANDLE): Likewise. (REGION_STMT_BLOCK): Likewise. (HANDLER_STMT_ARG): Likewise. (HANDLER_STMT_LIST): Likewise. (HANDLER_STMT_BLOCK): Likewise. * gcc-interface/gigi.h (fp_prec_to_size): Update comment. (fp_size_to_prec): Likewise. (largest_move_alignment): Delete. (gnat_compute_largest_alignment): Likewise. Fix minor nits. * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Remove redundant code. <E_Array_Type>: Remove redundant assert. <E_Array_Subtype>: Exit early from index computation in pathological cases. Rewrite conditional assignment. (make_type_from_size): Likewise. * gcc-interface/misc.c (largest_move_alignment): Delete. (gnat_finish_incomplete_decl): Likewise. (LANG_HOOKS_FINISH_INCOMPLETE_DECL): Likewise. (asm_out_file): Likewise (gnat_print_type) <INTEGER_TYPE>: Fall through to ENUMERAL_TYPE case. (gnat_dwarf_name): Move around. * gcc-interface/trans.c (Attribute_to_gnu): Fix minor nits. (gigi): Remove call to gnat_compute_largest_alignment. * utils.c (create_field_decl): Rewrite conditional assignment. Fix minor nits. From-SVN: r146551
2009-04-21ada-tree.h (TYPE_RM_SIZE_NUM): Delete.Eric Botcazou
* ada-tree.h (TYPE_RM_SIZE_NUM): Delete. (TYPE_RM_SIZE): Access TYPE_LANG_SLOT_1 directly for integral types. * decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Type>: Remove useless support code for packed array types and assert its uselessness. <E_Signed_Integer_Subtype>: Reuse entity identifier in more places and adjust for TYPE_RM_SIZE change. <all> Fix nits in comments. Use Original_Array_Type accessor instead of Associated_Node_For_Itype accessor for packed array types. (make_packable_type): Likewise. (maybe_pad_type): Likewise. (set_rm_size): Likewise. Rework conditional statement. Adjust for TYPE_RM_SIZE change. (make_type_from_size): Adjust for TYPE_RM_SIZE change. (rm_size): Fix nits in comments. Rework conditional statements. * misc.c (gnat_print_type): Adjust for TYPE_RM_SIZE change. * trans.c (Attribute_to_gnu): Fix nits in comments. * utils.c (gnat_init_decl_processing): Use more appropriate function to initialize the size_type_node. Adjust for TYPE_RM_SIZE change. From-SVN: r146530
2009-04-17misc.c (gnat_expand_expr): Remove.Diego Novillo
* gcc-interface/misc.c (gnat_expand_expr): Remove. (LANG_HOOKS_EXPAND_EXPR): Remove. From-SVN: r146277
2009-04-09Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception.Jakub Jelinek
From-SVN: r145841
2009-04-07gigi.h (standard_datatypes): Remove ADT_void_type_decl.Eric Botcazou
* gcc-interface/gigi.h (standard_datatypes): Remove ADT_void_type_decl. (void_type_decl_node): Remove. (init_gigi_decls): Likewise. (gnat_install_builtins): Declare. (record_builtin_type): Likewise. (create_type_stub_decl): Likewise. * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Void>: Use void_type. (gnat_to_gnu_entity) <E_Array_Type>: Make fat and thin pointer types artificial. <E_Array_Subtype>: Use the index types, not only their name, in the record giving the names of the bounds, if any. For a packed array type, make it artificial only if the base type was artificial as well. Remove redundant statement. (gnat_to_gnu_entity) <E_Incomplete_Type>: Do not create TYPE_DECL for dummy types. Use create_type_stub_decl to build the TYPE_STUB_DECL of types. (rest_of_type_decl_compilation_no_defer): Likewise. * gcc-interface/misc.c (gnat_printable_name): Add missing guard. * gcc-interface/utils.c (make_dummy_type): Always create TYPE_STUB_DECL and use create_type_stub_decl to build it. (gnat_pushdecl): Rewrite condition. (gnat_install_builtins): Remove bogus declaration. (record_builtin_type): New function. (finish_record_type): Use create_type_stub_decl to build TYPE_STUB_DECL of types. (create_type_stub_decl): New function. (create_type_decl): Assert that the type is not dummy. If the type hasn't been named yet, equate the TYPE_STUB_DECL to the created node. (build_vms_descriptor32): Do not create TYPE_DECL for the descriptor. (build_vms_descriptor): Likewise. (init_gigi_decls): Delete and move bulk of code to... * gcc-interface/trans.c (gigi): ...here. Use record_builtin_type. (emit_range_check): Add gnat_node parameter. (emit_index_check): Likewise. (emit_check): Likewise. (build_unary_op_trapv): Likewise. (build_binary_op_trapv): Likewise. (convert_with_check): Likewise. (Attribute_to_gnu): Adjust calls for above changes. (call_to_gnu): Likewise. (gnat_to_gnu): Likewise. (assoc_to_constructor): Likewise. (pos_to_constructor): Likewise. (Sloc_to_locus): Set BUILTINS_LOCATION for Standard_Location nodes. (process_type): Do not create TYPE_DECL for dummy types. From-SVN: r145660
2009-03-30re PR middle-end/323 (optimized code gives strange floating point results)Joseph Myers
PR rtl-optimization/323 * c-common.c (c_fully_fold, convert_and_check, c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR. (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR. * c-common.def (EXCESS_PRECISION_EXPR): New. * c-cppbuiltin.c (builtin_define_float_constants): Define constants with enough digits for long double. * c-lex.c (interpret_float): Interpret constant with excess precision where appropriate. * c-opts.c (c_common_post_options): Set flag_excess_precision_cmdline. Give an error for -fexcess-precision=standard for C++ for processors where the option is significant. * c-parser.c (c_parser_conditional_expression): Handle excess precision in condition. * c-typeck.c (convert_arguments): Handle arguments with excess precision. (build_unary_op): Move excess precision outside operation. (build_conditional_expr): Likewise. (build_compound_expr): Likewise. (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR. (build_modify_expr): Handle excess precision in RHS. (convert_for_assignment): Handle excess precision in converted value. (digest_init, output_init_element, process_init_element): Handle excess precision in initializer. (c_finish_return): Handle excess precision in return value. (build_binary_op): Handle excess precision in operands and add excess precision as needed for operation. * common.opt (-fexcess-precision=): New option. * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New. * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2): For standard excess precision, output explicit conversion to and truncation from XFmode. (*float<SSEMODEI24:mode><X87MODEF:mode>2_1, *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp, *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed define_splits, *floatunssi<mode>2_1, two unnamed define_splits, floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3, divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387, *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387, *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed define_splits, sqrt<mode>2): Disable where appropriate for standard excess precision. * convert.c (convert_to_real): Do not shorten arithmetic to type for which excess precision would be used. * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define. * doc/invoke.texi (-fexcess-precision=): Document option. (-mfpmath=): Correct index entry. * flags.h (enum excess_precision, flag_excess_precision_cmdline, flag_excess_precision): New. * langhooks.c (lhd_post_options): Set flag_excess_precision_cmdline. * opts.c (common_handle_option): Handle -fexcess-precision=. * toplev.c (flag_excess_precision_cmdline, flag_excess_precision, init_excess_precision): New. (lang_dependent_init_target): Call init_excess_precision. * tree.c (excess_precision_type): New. * tree.h (excess_precision_type): Declare. ada: * gcc-interface/misc.c (gnat_post_options): Set flag_excess_precision_cmdline. Give an error for -fexcess-precision=standard for processors where the option is significant. fortran: * options.c (gfc_post_options): Set flag_excess_precision_cmdline. Give an error for -fexcess-precision=standard for processors where the option is significant. java: * lang.c (java_post_options): Set flag_excess_precision_cmdline. Give an error for -fexcess-precision=standard for processors where the option is significant. testsuite: * gcc.target/i386/excess-precision-1.c, gcc.target/i386/excess-precision-2.c, gcc.target/i386/excess-precision-3.c, gcc.target/i386/excess-precision-4.c, gcc.target/i386/excess-precision-5.c, gcc.target/i386/excess-precision-6.c: New tests. From-SVN: r145272
2009-02-20Update Copyright years for files modified in 2008 and/or 2009.Jakub Jelinek
From-SVN: r144324
2009-02-18misc.c (gnat_post_options): Turn off warn_psabi.H.J. Lu
2009-02-18 H.J. Lu <hongjiu.lu@intel.com> * gcc-interface/misc.c (gnat_post_options): Turn off warn_psabi. From-SVN: r144267
2008-11-06misc.c (gnat_printable_name): Always return a copy in GC memory.Eric Botcazou
* gcc-interface/misc.c (gnat_printable_name): Always return a copy in GC memory. From-SVN: r141638
2008-08-09misc.c (gnat_handle_option): Replace set_Wunused by warn_unused.Manuel López-Ibáñez
2008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org> ada/ * gcc-interface/misc.c (gnat_handle_option): Replace set_Wunused by warn_unused. From-SVN: r138903
2008-07-30re PR ada/36554 (verify_flow_info ICE can not throw but has EH edges)Eric Botcazou
PR ada/36554 * dwarf2out.c (is_subrange_type): Deal with BOOLEAN_TYPE. ada/ * back_end.adb (Call_Back_End): Pass Standard_Boolean to gigi. * gcc-interface/gigi.h (gigi): Take new standard_boolean parameter. * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Enumeration_Subtype>: Set precision to 1 for subtype of BOOLEAN_TYPE. (set_rm_size): Set TYPE_RM_SIZE_NUM for BOOLEAN_TYPE. (make_type_from_size): Deal with BOOLEAN_TYPE. * gcc-interface/misc.c (gnat_print_type): Likewise. * gcc-interface/trans.c (gigi): Take new standard_boolean parameter. Set boolean_type_node as its translation in the table, as well as boolean_false_node for False and boolean_true_node for True. * gcc-interface/utils.c (gnat_init_decl_processing): Create custom 8-bit boolean_type_node and set its TYPE_RM_SIZE_NUM. (create_param_decl): Deal with BOOLEAN_TYPE. (build_vms_descriptor): Likewise. (build_vms_descriptor64): Likewise. (convert): Deal with BOOLEAN_TYPE like with ENUMERAL_TYPE. From-SVN: r138348
2008-07-29gcc-interface: New directory.Arnaud Charlet
* gcc-interface: New directory. * ada-tree.def, cuintp.c, gigi.h, Makefile.in, targtyps.c, ada.h, utils.c, ada-tree.h, decl.c, lang.opt, Make-lang.in, trans.c, config-lang.in, deftarg.c, lang-specs.h, misc.c, utils2.c: Moved to gcc-interface subdirectory. From-SVN: r138246