aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2007-07-03re PR target/28307 (pthread functions in libgcc not weak any more on Tru64 UNIX)Rainer Orth3-4/+17
PR target/28307 * gthr-posix.h [SUPPORTS_WEAK && GTHREAD_USE_WEAK] (__gthrw_pragma): Provide default definition. (__gthrw2): Use it. * gthr-posix.c (__gthrw_pragma): Define. From-SVN: r126253
2007-07-03tree-ssa-sccvn.c (set_ssa_val_to): Check for operand_equal_p before ↵Daniel Berlin4-1/+32
declaring inequality. 2007-07-03 Daniel Berlin <dberlin@dberlin.org> * tree-ssa-sccvn.c (set_ssa_val_to): Check for operand_equal_p before declaring inequality. From-SVN: r126252
2007-07-03combine.c (recog_for_combine): Log the success or failure of matching new ↵Rask Ingemann Lambertsen2-0/+22
insn patterns against the machine... * combine.c (recog_for_combine): Log the success or failure of matching new insn patterns against the machine description in detailed dumps. From-SVN: r126251
2007-07-03modulo-sched: print sccs and check itRevital Eres4-0/+60
From-SVN: r126249
2007-07-03re PR fortran/20888 (dereferencing NULL still accepted)Tobias Burnus4-0/+32
2007-07-03 Tobias Burnus <burnus@net-b.de> PR fortran/20888 * resolve.c (resolve_operator): Check for NULL as operand. 2007-07-03 Tobias Burnus <burnus@net-b.de> PR fortran/20888 * gfortran.dg/null_2.f90: New. From-SVN: r126247
2007-07-03re PR middle-end/32176 (ICE tree-type mismatch: expected integer_cst, have ↵Uros Bizjak2-0/+34
plus_expr in int_cst_value, at tree.c:7720) PR middle-end/32176 * gcc.dg/pr32176.c: New test. Co-Authored-By: Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> From-SVN: r126245
2007-07-03cpplib.h (CPP_N_WIDTH_MD, [...]): Add new constants.Uros Bizjak14-4/+153
libcpp/ChangeLog: * include/cpplib.h (CPP_N_WIDTH_MD, CPP_N_MD_W, CPP_N_MD_Q): Add new constants. * expr.c (interpret_float_suffix): Process 'w', 'W', 'q' and 'Q' suffixes. Return CPP_N_MD_W for 'w' or 'W' suffixes and CPP_N_MD_Q for 'q' or 'Q' suffixes. gcc/ChangeLog: * targhooks.h (default_mode_for_suffix): New function declaration. * targhooks.c (default_mode_for_suffix): New default target hook. * target.h (struct c): New structure in the targetm struct. (mode_for_suffix): New target hook as part of struct c. target-def.h (TARGET_C_MODE_FOR_SUFFIX): Define as default_mode_for_suffix. (TARGET_C): New define. * c-lex.c: Include "target.h". (interpret_float): Use targetm.c.mode_for_suffix to determine the mode for a given non-standard suffix. Makefile.in (c-lex.o): Depend on $(TARGET_H). * config/i386/i386.c (ix86_c_mode_for_suffix): New static function. (TARGET_C_MODE_FOR_SUFFIX): Define to ix86_c_mode_for_suffix. * doc/extend.texi (Floating Types): New node. Document __float80 and __float128 types. Document 'w', 'W', 'q' and 'Q' suffixes. testsuite/ChangeLog: * gcc.dg/const-float80.c : New test. * gcc.dg/const-float128.c : New test. * gcc.dg/const-float80-ped.c : New test. * gcc.dg/const-float128-ped.c : New test. From-SVN: r126244
2007-07-03re PR target/32506 (cross compile sh64-superh-linux-gnu internal compiler ↵Kaz Kojima2-3/+10
error: in change_address_1, at emit-rtl.c:1800) PR target/32506 * config/sh/sh.md (udivsi3_i1_media): Use target_reg_operand predicate instead of target_operand. (divsi3_i1_media, divsi3_media_2): Likewise. From-SVN: r126243
2007-07-03Daily bump.GCC Administrator1-1/+1
From-SVN: r126241
2007-07-02c99-math.h: Fix typo.Kaveh R. Ghazi2-1/+5
* gcc.dg/c99-math.h: Fix typo. From-SVN: r126235
2007-07-02tree.h (alias_sets_might_conflict_p): Rename into alias_sets_must_conflict_p.Eric Botcazou4-17/+20
* tree.h (alias_sets_might_conflict_p): Rename into alias_sets_must_conflict_p. * alias.c (alias_sets_might_conflict_p): Likewise. (alias_sets_conflict_p): Use it. (objects_must_conflict_p): Likewise. * c-common.c (strict_aliasing_warning): Adjust. From-SVN: r126233
2007-07-02rtlhooks.c (gen_lowpart_if_possible): Check for invalid subreg before ↵Andrew Pinski2-1/+8
calling gen_lowpart_SUBREG. 2007-07-02 Andrew Pinski <andrew_pinski@playstation.sony.com> * rtlhooks.c (gen_lowpart_if_possible): Check for invalid subreg before calling gen_lowpart_SUBREG. From-SVN: r126230
2007-07-02darwin9.h: Add copyright notice.Geoffrey Keating3-1/+34
* config/darwin9.h: Add copyright notice. (LINK_COMMAND_SPEC): Add comment. (DARWIN_LIBSYSTEM_HAS_UNWIND): Define. * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Conditionalise on DARWIN_LIBSYSTEM_HAS_UNWIND. From-SVN: r126229
2007-07-02re PR libgomp/32468 (number of threads in a parallel region depends on ↵Jakub Jelinek4-2/+156
number of SECTIONs and MAX_THREADS) PR libgomp/32468 * omp-low.c (check_combined_parallel): New function. (lower_omp_parallel): Call it via walk_stmts, set OMP_PARALLEL_COMBINED if appropriate. (determine_parallel_type): If OMP_FOR resp. OMP_SECTIONS isn't the only statement in WS_ENTRY_BB or OMP_RETURN the only one in PAR_EXIT_BB and not OMP_PARALLEL_COMBINED, don't consider it as combined parallel. * gcc.dg/gomp/pr32468-1.c: New test. From-SVN: r126226
2007-07-02configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).Richard Sandiford4-75/+46
gcc/ * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix). (gcc_tooldir): Likewise. * configure: Regenerate. * Makefile.in (libsubdir_to_prefix): New variable, based on the old configure.ac gcc_tooldir setting. (prefix_to_exec_prefix): New variable. (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix) rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX. From-SVN: r126225
2007-07-02mips.exp (setup_mips_tests): Treat -mfp* as an ABI option.Richard Sandiford2-1/+6
gcc/testsuite/ * gcc.target/mips/mips.exp (setup_mips_tests): Treat -mfp* as an ABI option. From-SVN: r126223
2007-07-02Fix PR tree-optimization/32583 Fix PR tree-optimization/32584Daniel Berlin5-5/+132
2007-07-02 Daniel Berlin <dberlin@dberlin.org> Fix PR tree-optimization/32583 Fix PR tree-optimization/32584 * tree-ssa-pre.c (phi_translate): Always pass seen bitmap. (phi_translate_set): Use phi_translate directly now. (make_values_for_stmt): Don't value number RHS if we already know it is constant. From-SVN: r126222
2007-07-02parser.c (cp_parser_elaborated_type_specifier): Added a warning for ↵Simon Baldwin3-0/+104
inner-style nested forward declarations that don't declare... 2007-07-02 Simon Baldwin <simonb@google.com> * parser.c (cp_parser_elaborated_type_specifier): Added a warning for inner-style nested forward declarations that don't declare anything useful. From-SVN: r126219
2007-07-02using16.C: Merge dg-errors with common line.Ollie Wild3-4/+7
* g++.dg/lookup/using16.C: Merge dg-errors with common line. * g++.dg/lookup/using17.C: Merge dg-errors with common line. From-SVN: r126218
2007-07-02re PR target/31684 (ICE in get_attr_first_insn, at ↵Steve Ellcey2-1/+8
config/ia64/itanium2.md:1839 at -O2) PR target/31684 * haifa-sched.c (add_to_speculative_block): Change copy_rtx to copy_insn. Co-Authored-By: James E Wilson <wilson@specifixinc.com> From-SVN: r126216
2007-07-02ChangeLog: Add following to my previous description:Uros Bizjak1-0/+2
* ChangeLog: Add following to my previous description: (if_convertible_loop_p): Clear aux field of incoming edges if bb contains phi node. From-SVN: r126214
2007-07-02mips-protos.h (mips16e_save_restore_info): New struct.Richard Sandiford10-59/+740
gcc/ 2007-07-02 Sandra Loosemore <sandra@codesourcery.com> Richard Sandiford <richard@codesourcery.com> Nigel Stephens <nigel@mips.com> * config/mips/mips-protos.h (mips16e_save_restore_info): New struct. (mips16e_output_save_restore): Declare. (mips16e_save_restore_pattern_p): Likewise. * config/mips/mips.h (GENERATE_MIPS16E_SAVE_RESTORE): New macro. * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Return 0x7f8 for GENERATE_MIPS16E_SAVE_RESTORE. Return 0x400 for TARGET_MIPS16 && !GENERATE_MIPS16E_SAVE_RESTORE && !TARGET_64BIT. (BITSET_P): New global macro, extracted from... (mips_for_each_saved_reg): ...here. (mips16e_save_restore_info): New struct. (mips16e_s2_s8_regs, mips16e_a0_a3_regs): New variables. (mips16e_save_restore_regs): New variable. (mips_split_plus, mips16e_find_first_register): New functions. (mips16e_mask_registers): New function. (compute_frame_size): Expand the commentary before the function. Enforce the MIPS16e save and restore register range restrictions. Pad the general register save area at the low end. (mips16e_save_restore_reg, mips16e_build_save_restore) (mips16e_save_restore_pattern_p, mips16e_add_register_range) (mips16e_output_save_restore, mips16e_collect_propagate_value) (mips16e_collect_argument_save, mips16e_collect_argument_saves): New functions. (mips_expand_prologue, mips_expand_epilogue): Handle GENERATE_MIPS16E_SAVE_RESTORE. * config/mips/mips.md (*mips16e_save_restore): New pattern. gcc/testsuite/ * gcc.target/mips/save-restore-1.c: New test. * gcc.target/mips/save-restore-2.c: Likewise. * gcc.target/mips/save-restore-3.c: Likewise. * gcc.target/mips/save-restore-4.c: Likewise. From-SVN: r126207
2007-07-02re PR tree-optimization/31966 (Miscompiles valid code with -ftree-vectorize)Uros Bizjak5-45/+166
PR tree-optimization/31966 PR tree-optimization/32533 * tree-if-conv.c (add_to_dst_predicate_list): Use "edge", not "basic_block" description as its third argument. Update function calls to get destination bb from "edge" argument. Save "cond" into aux field of the edge. Update prototype for changed arguments. (find_phi_replacement_condition): Operate on incoming edges, not on predecessor blocks. If there is a condition saved in the incoming edge aux field, AND it with incoming bb predicate. Return source bb of the first edge. (clean_predicate_lists): Clean aux field of outgoing node edges. (tree_if_conversion): Do not initialize cond variable. Move variable declaration into the loop. (replace_phi_with_cond_gimple_modify_stmt): Remove unneded initializations of new_stmt, arg0 and arg1 variables. testsuite/ChangeLog: PR tree-optimization/31966 PR tree-optimization/32533 * gcc.dg/tree-ssa/pr31966.c: New runtime test. * gfortran.dg/pr32533.f90: Ditto. From-SVN: r126206
2007-07-02Fixed Changelog entry on unreverted patch.Kenneth Zadeck1-1/+1
From-SVN: r126205
2007-07-02ChangeLog: Remove conflict marker, fix typo in date.Richard Biener1-2/+1
2007-07-02 Richard Guenther <rguenther@suse.de> * testsuite/ChangeLog: Remove conflict marker, fix typo in date. From-SVN: r126204
2007-07-02re PR c++/31748 (bad diagnostic for invalid private clause)Jakub Jelinek4-2/+24
PR c++/31748 * semantics.c (finish_omp_clauses): Use %qD instead of %qE for DECL_P in not a variable and appears more than once error messages. * g++.dg/gomp/pr31748.C: New test. From-SVN: r126201
2007-07-02tree-nrv.c (dest_safe_for_nrv_p): Grok any handled_component_p, SSA_NAMEs, ↵Jakub Jelinek5-20/+64
RESULT_DECLs and PARM_DECLs. * tree-nrv.c (dest_safe_for_nrv_p): Grok any handled_component_p, SSA_NAMEs, RESULT_DECLs and PARM_DECLs. * g++.dg/opt/nrv12.C: New test. * gcc.target/i386/nrv1.c: New test. From-SVN: r126200
2007-07-02tree-ssa.c (useless_type_conversion_p): Document future intent as defining ↵Richard Guenther2-60/+97
the middle-end type system. 2007-07-02 Richard Guenther <rguenther@suse.de> * tree-ssa.c (useless_type_conversion_p): Document future intent as defining the middle-end type system. Re-structure to call langhook last, group by type class, mark questionable parts. From-SVN: r126199
2007-07-02re PR middle-end/15988 (ICE in fold_convert with pointer-to-member-function)Richard Guenther19-43/+96
2007-07-02 Richard Guenther <rguenther@suse.de> * tree-flow.h (types_compatible_p): Declare. * tree-ssa.c (types_compatible_p): New function. * ipa-type-escape.c (discover_unique_type): Use types_compatible_p instead of lang_hooks.types_compatible_p. * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise. * tree-vn.c (expressions_equal_p): Likewise. * tree.c (fields_compatible_p): Likewise. * tree-ssa-dom.c (avail_expr_eq): Likewise. (cprop_operand): Use useless_type_conversion_p instead of lang_hooks.types_compatible_p. * tree-inline.c (setup_one_parameter): Likewise. (declare_return_variable): Likewise. * tree-nrv.c (tree_nrv): Likewise. * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise. (maybe_fold_offset_to_component_ref): Likewise. (maybe_fold_offset_to_reference): Likewise. * tree-ssa-copy.c (may_propagate_copy): Likewise. (merge_alias_info): Likewise. * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise. * tree-ssa-phiopt.c (conditional_replacement): Likewise. * tree-ssa-reassoc.c (optimize_ops_list): Likewise. * tree-tailcall.c (find_tail_calls): Likewise. * tree-vect-generic.c (expand_vector_operations_1): Likewise. * gimplify.c (canonicalize_addr_expr): Likewise. (fold_indirect_ref_rhs): Likewise. (gimplify_addr_expr): Likewise. Swap parameters to cpt_same_type. (cpt_same_type): Likewise. (check_pointer_types_r): Swap parameters to cpt_same_type where appropriate. * fold-const.c (fold_convert): Revert fix for PR15988. * tree-inline.c (setup_one_parameter): Instead fix it here by using fold_build1 instead of fold_convert and checking for error_mark_node. Convert only if the conversion is necessary. From-SVN: r126198
2007-07-02configure.ac: Check for .gnu_attribute on Power.Joseph Myers4-0/+56
* configure.ac: Check for .gnu_attribute on Power. * configure: Regenerate. * config/rs6000/rs6000.c (rs6000_file_start): If supported, output attribute for floating-point ABI. From-SVN: r126197
2007-07-02re PR tree-optimization/32230 (Segfault in set_bb_for_stmt with -O ↵Ira Rosen4-0/+45
-ftree-vectorize) PR tree-optimization/32230 PR tree-optimization/32477 * tree-vect-analyze.c (vect_analyze_data_refs): Fail if base address is a constant. From-SVN: r126196
2007-07-02gcc/Richard Sandiford5-16/+118
* config.gcc (mipsisa32-*-elf*, mipsisa32el-*-elf*) (mipsisa32r2-*-elf*, mipsisa32r2el-*-elf*) (mipsisa64-*-elf*, mipsisa64el-*-elf*): Combine top-level stanzas. Use the first part of the triplet to set MIPS_ISA_DEFAULT. Remove redundant setting of MASK_FLOAT64 and MASK_64BIT for the 64-bit targets. Add support for *-elfoabi*. * config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Use different settings if $(tm_defines) does not select the EABI. (MULTILIB_EXCLUSIONS): Define in those circumstances. * config/mips/mips.h (MIPS_ISA_LEVEL_OPTION_SPEC): New macro. (MIPS_ARCH_OPTION_SPEC): Likewise. (MIPS_ISA_LEVEL_SPEC): Likewise. (OPTION_DEFAULT_SPECS): Use MIPS_ARCH_OPTION_SPEC. * config/mips/elfoabi.h: New file. From-SVN: r126195
2007-07-02tree-flow.h (tree_ssa_useless_type_conversion_1): Rename to ...Richard Guenther14-23/+41
2007-07-02 Richard Guenther <rguenther@suse.de> * tree-flow.h (tree_ssa_useless_type_conversion_1): Rename to ... (useless_type_conversion_p): ... this. * tree-ssa.c (tree_ssa_useless_type_conversion_1): Rename to ... (useless_type_conversion_p): ... this. * builtins.c (fold_builtin_memory_op): Rename tree_ssa_useless_type_conversion_1 to useless_type_conversion_p. * tree-cfg.c (verify_expr): Likewise. * tree-ssa-address.c (tree_ssa_useless_type_conversion_1): Likewise. * tree-ssa-ccp.c (ccp_fold): Likewise. * tree-ssa-copy.c (may_propagate_copy): Likewise. * tree-ssa-dom.c (eliminate_redundant_computations): Likewise. * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise. * tree-ssa-loop-niter.c (refine_bounds_using_guard): Likewise. * tree-ssa-pre.c (eliminate): Likewise. * tree-ssa.c (delete_tree_ssa): Likewise. (tree_ssa_useless_type_conversion): Likewise. * tree.c (build2_stat): Likewise. From-SVN: r126194
2007-07-02gfortran.texi (Fortran 2003): Add ISO Bind C.Tobias Burnus3-1/+281
2007-07-02 Tobias Burnus <burnus@net-b.de> * gfortran.texi (Fortran 2003): Add ISO Bind C. * intrinsic.texi (C_ASSOCIATED,C_F_POINTER,C_F_PROCPOINTER, C_FUNLOC,C_LOC): Document new ISO Bind C intrinsics. From-SVN: r126192
2007-07-02Add missing test from last commitDaniel Berlin3-4/+42
Fixup two existing C++ tests for SCCVN changes From-SVN: r126187
2007-07-02re PR tree-optimization/32571 (ICE in set_ssa_val_to, at tree-ssa-sccvn.c:1011)Daniel Berlin2-2/+13
2007-07-01 Daniel Berlin <dberlin@dberlin.org> Fix PR tree-optimization/32571 * tree-ssa-sccvn.c (visit_use): Shortcut copies to avoid simplifying them. From-SVN: r126186
2007-07-02[multiple changes]Christopher D. Rickett119-134/+6945
2007-07-01 Christopher D. Rickett <crickett@lanl.gov> * interface.c (gfc_compare_derived_types): Special case for comparing derived types across namespaces. (gfc_compare_types): Deal with BT_VOID. (compare_parameter): Use BT_VOID to accept ISO C Binding pointers. * trans-expr.c (gfc_conv_function_call): Remove setting parm_kind to SCALAR (gfc_conv_initializer): Deal with ISO C Binding NULL_PTR and NULL_FUNPTR. (gfc_conv_expr): Convert expressions for ISO C Binding derived types. * symbol.c (gfc_set_default_type): BIND(C) variables should not be implicitly declared. (check_conflict): Add BIND(C) and check for conflicts. (gfc_add_explicit_interface): Whitespace. (gfc_add_is_bind_c): New function. (gfc_copy_attr): Use it. (gfc_new_symbol): Initialize ISO C Binding objects. (get_iso_c_binding_dt): New function. (verify_bind_c_derived_type): Ditto. (gen_special_c_interop_ptr): Ditto. (add_formal_arg): Ditto. (gen_cptr_param): Ditto. (gen_fptr_param): Ditto. (gen_shape_param): Ditto. (add_proc_interface): Ditto. (build_formal_args): Ditto. (generate_isocbinding_symbol): Ditto. (get_iso_c_sym): Ditto. * decl.c (num_idents_on_line, has_name_equals): New variables. (verify_c_interop_param): New function. (build_sym): Finish binding labels and deal with COMMON blocks. (add_init_expr_to_sym): Check if the initialized expression is an iso_c_binding named constants (variable_decl): Set ISO C Binding type_spec components. (gfc_match_kind_spec): Check match for C interoperable kind. (match_char_spec): Fix comment. Chnage gfc_match_small_int to gfc_match_small_int_expr. Check for C interoperable kind. (match_type_spec): Clear the current binding label. (match_attr_spec): Add DECL_IS_BIND_C. If BIND(C) is found, use it to set attributes. (set_binding_label): New function. (set_com_block_bind_c): Ditto. (verify_c_interop): Ditto. (verify_com_block_vars_c_interop): Ditto. (verify_bind_c_sym): Ditto. (set_verify_bind_c_sym): Ditto. (set_verify_bind_c_com_block): Ditto. (get_bind_c_idents): Ditto. (gfc_match_bind_c_stmt): Ditto. (gfc_match_data_decl): Use num_idents_on_line. (match_result): Deal with right paren in BIND(C). (gfc_match_suffix): New function. (gfc_match_function_decl): Use it. Code is re-arranged to deal with ISO C Binding result clauses. (gfc_match_subroutine): Deal with BIND(C). (gfc_match_bind_c): New function. (gfc_get_type_attr_spec): New function. Code is re-arranged in and taken from gfc_match_derived_decl. (gfc_match_derived_decl): Add check for BIND(C). * trans-common.c: Forward declare gfc_get_common. (gfc_sym_mangled_common_id): Change arg from 'const char *name' to 'gfc_common_head *com'. Check for ISO C Binding of the common block. (build_common_decl): 'com->name' to 'com in SET_DECL_ASSEMBLER_NAME. * gfortran.h: Add GFC_MAX_BINDING_LABEL_LEN (bt): Add BT_VOID (sym_flavor): Add FL_VOID. (iso_fortran_env_symbol, iso_c_binding_symbol, intmod_id): New enum (CInteropKind_t): New struct. (c_interop_kinds_table): Use it. Declare an array of structs. (symbol_attribute): Add is_bind_c, is_c_interop, and is_iso_c bitfields. (gfc_typespec): Add is_c_interop; is_iso_c, and f90_type members. (gfc_symbol): Add from_intmod, intmod_sym_id, binding_label, and common_block members. (gfc_common_head): Add binding_label and is_bind_c members. (gfc_gsymbol): Add sym_name, mod_name, and binding_label members. Add prototypes for get_c_kind, gfc_validate_c_kind, gfc_check_any_c_kind, gfc_add_is_bind_c, gfc_add_value, verify_c_interop, verify_c_interop_param, verify_bind_c_sym, verify_bind_c_derived_type, verify_com_block_vars_c_interop, generate_isocbinding_symbol, get_iso_c_sym, gfc_iso_c_sub_interface * iso-c-binding.def: New file. This file contains the definitions of the types provided by the Fortran 2003 ISO_C_BINDING intrinsic module. * trans-const.c (gfc_conv_constant_to_tree): Deal with C_NULL_PTR or C_NULL_FUNPTR expressions. * expr.c (gfc_copy_expr): Add BT_VOID case. For BT_CHARACTER, the ISO C Binding requires a minimum string length of 1 for '\0'. * module.c (intmod_sym): New struct. (pointer_info): Add binding_label member. (write_atom): Set len to 0 for NULL pointers. Check for NULL p and *p. (ab_attribute): Add AB_IS_BIND_C, AB_IS_C_INTEROP and AB_IS_ISO_C. (attr_bits): Add "IS_BIND_C", "IS_C_INTEROP", and "IS_ISO_C". (mio_symbol_attribute): Deal with ISO C Binding attributes. (bt_types): Add "VOID". (mio_typespec): Deal with ISO C Binding components. (mio_namespace_ref): Add intmod variable. (mio_symbol): Check for symbols from an intrinsic module. (load_commons): Check for BIND(C) common block. (read_module): Read binding_label and use it. (write_common): Add label. Write BIND(C) info. (write_blank_common): Blank commons are not BIND(C). Explicitly set is_bind_c=0. (write_symbol): Deal with binding_label. (sort_iso_c_rename_list): New function. (import_iso_c_binding_module): Ditto. (create_int_parameter): Add to args. (use_iso_fortran_env_module): Adjust to deal with iso_c_binding intrinsic module. * trans-types.c (c_interop_kinds_table): new array of structs. (gfc_validate_c_kind): New function. (gfc_check_any_c_kind): Ditto. (get_real_kind_from_node): Ditto. (get_int_kind_from_node): Ditto. (get_int_kind_from_width): Ditto. (get_int_kind_from_minimal_width): Ditto. (init_c_interop_kinds): Ditto. (gfc_init_kinds): call init_c_interop_kinds. (gfc_typenode_for_spec): Adjust for BT_VOID and ISO C Binding pointers. Adjust handling of BT_DERIVED. (gfc_sym_type): Whitespace. (gfc_get_derived_type): Account for iso_c_binding derived types * resolve.c (is_scalar_expr_ptr): New function. (gfc_iso_c_func_interface): Ditto. (resolve_function): Use gfc_iso_c_func_interface. (set_name_and_label): New function. (gfc_iso_c_sub_interface): Ditto. (resolve_specific_s0): Use gfc_iso_c_sub_interface. (resolve_bind_c_comms): New function. (resolve_bind_c_derived_types): Ditto. (gfc_verify_binding_labels): Ditto. (resolve_fl_procedure): Check for ISO C interoperability. (resolve_symbol): Check C interoperability. (resolve_types): Walk the namespace. Check COMMON blocks. * trans-decl.c (gfc_sym_mangled_identifier): Prevent the mangling of identifiers that have an assigned binding label. (gfc_sym_mangled_function_id): Use the binding label rather than the mangled name. (gfc_finish_var_decl): Put variables that are BIND(C) into a common segment of the object file, because this is what C would do. (gfc_create_module_variable): Conver to proper types (set_tree_decl_type_code): New function. (generate_local_decl): Check dummy variables and derived types for ISO C Binding attributes. * match.c (gfc_match_small_int_expr): New function. (gfc_match_name_C): Ditto. (match_common_name): Deal with ISO C Binding in COMMON blocks * trans-io.c (transfer_expr): Deal with C_NULL_PTR or C_NULL_FUNPTR expressions * match.h: Add prototypes for gfc_match_small_int_expr, gfc_match_name_C, match_common_name, set_com_block_bind_c, set_binding_label, set_verify_bind_c_sym, set_verify_bind_c_com_block, get_bind_c_idents, gfc_match_bind_c_stmt, gfc_match_suffix, gfc_match_bind_c, gfc_get_type_attr_spec * parse.c (decode_statement): Use gfc_match_bind_c_stmt (parse_derived): Init *derived_sym = NULL, and gfc_current_block later for valiadation. * primary.c (got_delim): Set ISO C Binding components of ts. (match_logical_constant): Ditto. (match_complex_constant): Ditto. (match_complex_constant): Ditto. (gfc_match_rvalue): Check for existence of at least one arg for C_LOC, C_FUNLOC, and C_ASSOCIATED. * misc.c (gfc_clear_ts): Clear ISO C Bindoing components in ts. (get_c_kind): New function. 2007-07-01 Christopher D. Rickett <crickett@lanl.gov> * Makefile.in: Add support for iso_c_generated_procs.c and iso_c_binding.c. * Makefile.am: Ditto. * intrinsics/iso_c_generated_procs.c: New file containing helper functions. * intrinsics/iso_c_binding.c: Ditto. * intrinsics/iso_c_binding.h: New file * gfortran.map: Include the __iso_c_binding_c_* functions. * libgfortran.h: define GFC_NUM_RANK_BITS. 2007-06-23 Christopher D. Rickett <crickett@lanl.gov> * bind_c_array_params.f03: New files for Fortran 2003 ISO C Binding. * bind_c_coms.f90: Ditto. * bind_c_coms_driver.c: Ditto. * bind_c_dts.f90: Ditto. * bind_c_dts_2.f03: Ditto. * bind_c_dts_2_driver.c: Ditto. * bind_c_dts_3.f03: Ditto. * bind_c_dts_4.f03: Ditto. * bind_c_dts_driver.c: Ditto. * bind_c_implicit_vars.f03: Ditto. * bind_c_procs.f03: Ditto. * bind_c_usage_2.f03: Ditto. * bind_c_usage_3.f03: Ditto. * bind_c_usage_5.f03: Ditto. * bind_c_usage_6.f03: Ditto. * bind_c_usage_7.f03: Ditto. * bind_c_vars.f90: Ditto. * bind_c_vars_driver.c: Ditto. * binding_c_table_15_1.f03: Ditto. * binding_label_tests.f03: Ditto. * binding_label_tests_10.f03: Ditto. * binding_label_tests_10_main.f03: Ditto. * binding_label_tests_11.f03: Ditto. * binding_label_tests_11_main.f03: Ditto. * binding_label_tests_12.f03: Ditto. * binding_label_tests_13.f03: Ditto. * binding_label_tests_13_main.f03: Ditto. * binding_label_tests_14.f03: Ditto. * binding_label_tests_2.f03: Ditto. * binding_label_tests_3.f03: Ditto. * binding_label_tests_4.f03: Ditto. * binding_label_tests_5.f03: Ditto. * binding_label_tests_6.f03: Ditto. * binding_label_tests_7.f03: Ditto. * binding_label_tests_8.f03: Ditto. * binding_label_tests_9.f03: Ditto. * c_assoc.f90: Ditto. * c_assoc_2.f03: Ditto. * c_f_pointer_shape_test.f90: Ditto. * c_f_pointer_tests.f90: Ditto. * c_f_tests_driver.c: Ditto. * c_funloc_tests.f03: Ditto. * c_funloc_tests_2.f03: Ditto. * c_funloc_tests_3.f03: Ditto. * c_funloc_tests_3_funcs.c: Ditto. * c_kind_params.f90: Ditto. * c_kind_tests_2.f03: Ditto. * c_kinds.c: Ditto. * c_loc_driver.c: Ditto. * c_loc_test.f90: Ditto. * c_loc_tests_2.f03: Ditto. * c_loc_tests_2_funcs.c: Ditto. * c_loc_tests_3.f03: Ditto. * c_loc_tests_4.f03: Ditto. * c_loc_tests_5.f03: Ditto. * c_loc_tests_6.f03: Ditto. * c_loc_tests_7.f03: Ditto. * c_loc_tests_8.f03: Ditto. * c_ptr_tests.f03: Ditto. * c_ptr_tests_10.f03: Ditto. * c_ptr_tests_5.f03: Ditto. * c_ptr_tests_7.f03: Ditto. * c_ptr_tests_7_driver.c: Ditto. * c_ptr_tests_8.f03: Ditto. * c_ptr_tests_8_funcs.c: Ditto. * c_ptr_tests_9.f03: Ditto. * c_ptr_tests_driver.c: Ditto. * c_size_t_driver.c: Ditto. * c_size_t_test.f03: Ditto. * com_block_driver.f90: Ditto. * global_vars_c_init.f90: Ditto. * global_vars_c_init_driver.c: Ditto. * global_vars_f90_init.f90: Ditto. * global_vars_f90_init_driver.c: Ditto. * interop_params.f03: Ditto. * iso_c_binding_only.f03: Ditto. * iso_c_binding_rename_1.f03: Ditto. * iso_c_binding_rename_1_driver.c: Ditto. * iso_c_binding_rename_2.f03: Ditto. * iso_c_binding_rename_2_driver.c: Ditto. * kind_tests_2.f03: Ditto. * kind_tests_3.f03: Ditto. * module_md5_1.f90: Ditto. * only_clause_main.c: Ditto. * print_c_kinds.f90: Ditto. * test_bind_c_parens.f03: Ditto. * test_c_assoc.c: Ditto. * test_com_block.f90: Ditto. * test_common_binding_labels.f03: Ditto. * test_common_binding_labels_2.f03: Ditto. * test_common_binding_labels_2_main.f03: Ditto. * test_common_binding_labels_3.f03: Ditto. * test_common_binding_labels_3_main.f03: Ditto. * test_only_clause.f90: Ditto. * use_iso_c_binding.f90: Ditto. * value_5.f90: Ditto. * value_test.f90: Ditto. * value_tests_f03.f90: Ditto. From-SVN: r126185
2007-07-02Daily bump.GCC Administrator1-1/+1
From-SVN: r126182
2007-07-01tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle constants and ohter ↵Daniel Berlin2-2/+23
expected operations explicitly... 2007-07-01 Daniel Berlin <dberlin@dberlin.org> * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle constants and ohter expected operations explicitly, change default to gcc_unreachable. From-SVN: r126179
2007-07-01arm.c (arm_cannot_copy_insn_p): Do not expect a PARALLEL.Daniel Jacobowitz6-15/+54
* config/arm/arm.c (arm_cannot_copy_insn_p): Do not expect a PARALLEL. * config/arm/arm.md (pic_add_dot_plus_four, pic_add_dot_plus_eight) (tls_load_dot_plus_eight): Move the label number into the unspec. * config/arm/thumb2.md (pic_load_dot_plus_four): Likewise. * gcc.dg/tls/opt-14.c: New. From-SVN: r126178
2007-07-01name-lookup.c (ambiguous_decl): Fix case when new->value is hidden.Ollie Wild7-75/+115
* name-lookup.c (ambiguous_decl): Fix case when new->value is hidden. (select_decl): Remove function. (unqualified_namespace_lookup): Populate binding by calling ambiguous_decl. Remove select_decl call. (lookup_qualified_name): Remove select_decl call. * decl.c (lookup_and_check_tag): Check for ambiguous references. * parser.c (cp_parser_elaborated_type_specifier): Skip redundant error generation when name lookup is ambiguous. * g++.dg/lookup/using16.C: New test. * g++.dg/lookup/using17.C: New test. From-SVN: r126177
2007-07-01re PR fortran/32239 (optimize power in loops, use __builtin_powi instead of ↵Janne Blomqvist5-5/+50
_gfortran_pow_r4_i4) gcc/fortran: 2007-07-01 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/32239 * trans-expr.c (gfc_conv_power_op): Use builtin_powi for real**int4 powers. * f95-lang.c (gfc_init_builtin_functions): Add builtin_powi to the builtins table. libgfortran: 2007-07-01 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/32239 * Makefile.am: Don't generate real**int4 pow functions. * gfortran.map: Remove real**int4 pow symbols. * Makefile.in: Regenerated. testsuite 2007-07-01 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/32239 * gfortran.fortran-torture/execute/intrinsic_fraction_exponent.f90 (test_4): Use proper test for floating point equality. (test_8): Likewise. From-SVN: r126175
2007-07-01re PR fortran/32554 ([4.2 Only] Bug in P formatting)Jerry DeLisle2-0/+18
2007-06-29 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libgfortran/32554 * gfortran.dg/fmt_p_1.f90: New test. From-SVN: r126174
2007-07-01* dwarf2out.c (initial_return_save): Define only if used.Andreas Schwab2-0/+8
From-SVN: r126170
2007-07-01[multiple changes]Richard Sandiford2-24/+52
2007-07-01 Richard Sandiford <richard@codesourcery.com> Unreverting Richard's Revert of: 2007-06-27 Richard Sandiford <richard@codesourcery.com> * dce.c (deletable_insn_p_1): New function, split out from... (deletable_insn_p): ...here. Only treat bare USEs and CLOBBERs specially, not those inside PARALLELs. Remove BODY argument and adjust recursive call accordingly. (prescan_insns_for_dce): Update call to delete_insn_p. From-SVN: r126168
2007-07-01Fix missed initialization of scc_nodes.Vladimir Yanovsky2-0/+7
Co-Authored-By: Revital Eres <eres@il.ibm.com> From-SVN: r126167
2007-07-01fortran frontend:Janne Blomqvist4-40/+19
2007-07-01 Janne Blomqvist <jb@gcc.gnu.org> * trans.h: Remove decls for 64-bit allocation functions. * trans-array.c (gfc_grow_array): Always pick the standard realloc function decl. (gfc_array_allocate): Likewise. * trans-decl.c: Remove trees for 64-bit allocation functions. (gfc_build_builtin_function_decls): Don't build fndecls for 64-bit allocations functions, use index_int_type for normal allocation functions. libgfortran changelog: 2007-07-01 Janne Blomqvist <jb@gcc.gnu.org> * runtime/memory.c (internal_realloc): Use index_type for size argument instead of GFC_INTEGER_4. (allocate_array): Likewise. (allocate): Likewise, add ifdef around unnecessary check. (internal_reallo64): Remove. (allocate_array64): Remove. (allocate64): Remove. * gfortran.map: Remove symbols for 64-bit allocation functions. From-SVN: r126166
2007-07-01vect-strided-store-u16-i4.c: Remove abort() from input initialization and ↵Ira Rosen2-3/+8
fix dg-final check - the... * gcc.dg/vect/vect-strided-store-u16-i4.c: Remove abort() from input initialization and fix dg-final check - the initialization loop is vectorizable. From-SVN: r126165
2007-07-01re PR middle-end/32559 (ICE with vector arithmetic)Uros Bizjak4-20/+44
PR middle-end/32559 * fold-const.c (fold-binary) [PLUS_EXPR]: Convert ~X + X to 1 or X + ~X to 1 only for INTEGRAL_TYPE_P type. testsuite/ChangeLog: PR middle-end/32559 * gcc.dg/pr32559.c: New test. From-SVN: r126164
2007-07-01re PR tree-optimization/25371 (-ftree-vectorize results in internal compiler ↵Uros Bizjak2-0/+17
error on AMD64) PR tree-optimization/25371 * gcc.dg/vect/pr25371.c: New test. From-SVN: r126163