aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
AgeCommit message (Collapse)AuthorFilesLines
2007-09-05re PR fortran/31564 (Error: Type/rank mismatch in argument)Paul Thomas3-3/+61
2007-09-05 Paul Thomas <pault@gcc.gnu.org> PR fortran/31564 * primary.c (gfc_match_rvalue): Make expressions that refer to derived type parameters that have array references into variable expressions. Remove references to use association from the symbol. PR fortran/33241 * decl.c (add_init_expr_to_sym): Provide assumed character length parameters with the length of the initialization expression, if a constant, or that of the first element of an array. 2007-09-05 Paul Thomas <pault@gcc.gnu.org> PR fortran/31564 * gfortran.dg/derived_comp_array_ref_2.f90: New test. PR fortran/33241 * gfortran.dg/char_length_10.f90: New test. From-SVN: r128130
2007-09-04decl.c (match_procedure_decl,match_procedure_in_interface, [...]): Handle ↵Janus Weil8-6/+393
PROCEDURE statements. 2007-09-04 Janus Weil <jaydub66@gmail.com> Paul Thomas <pault@gcc.gnu.org> * decl.c (match_procedure_decl,match_procedure_in_interface, gfc_match_procedure): Handle PROCEDURE statements. * gfortran.h (struct gfc_symbol): New member "gfc_symbol *interface". (enum gfc_statement): New element "ST_PROCEDURE". (strcut symbol_attribute): New member "unsigned procedure". * interface.c (check_interface0): Extended error checking. * match.h: Add gfc_match_procedure prototype. * parse.c (decode_statement,next_statement,gfc_ascii_statement, parse_derived,parse_interface): Implement PROCEDURE statements. * resolve.c (resolve_symbol): Ditto. * symbol.c (check_conflict): Ditto. (gfc_add_proc): New function for setting the procedure attribute. (copy_formal_args): New function for copying formal argument lists. 2007-09-04 Janus Weil <jaydub66@gmail.com> Tobias Burnus <burnus@net-b.de> * gfortran.dg/proc_decl_1.f90: New. * gfortran.dg/proc_decl_2.f90: New. * gfortran.dg/proc_decl_3.f90: New. * gfortran.dg/proc_decl_4.f90: New. Co-Authored-By: Paul Thomas <pault@gcc.gnu.org> Co-Authored-By: Tobias Burnus <burnus@net-b.de> From-SVN: r128081
2007-09-04* Makefile.in (DRIVER_DEFINES, gcc.o, gccspec.o, protoize.o)Daniel Jacobowitz2-2/+5
(unprotoize.o): Remove SHLIB_MULTILIB. * Make-lang.in (jvspec.o): Remove SHLIB_MULTILIB. * Make-lang.in (g++spec.o): Remove SHLIB_MULTILIB. * Make-lang.in (gfortranspec.o): Remove SHLIB_MULTILIB. From-SVN: r128066
2007-09-03system.h (CONST_CAST2, [...]): New macros for type-specific casts.Kaveh R. Ghazi5-4/+11
* system.h (CONST_CAST2, CONST_CAST_TREE, CONST_CAST_RTX, CONST_CAST_BB): New macros for type-specific casts. (CONST_CAST): Add a TYPE parameter and define it in terms of CONST_CAST2. * c-decl.c (c_make_fname_decl): Supply a TYPE for CONST_CAST. * c-lex.c (cb_ident, lex_string): Likewise, * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise, * config/i386/i386.c (ix86_function_regparm, ix86_function_sseregparm): Use CONST_CAST_TREE. * config/mmix/mmix.c (mmix_encode_section_info): Supply a TYPE for CONST_CAST. * gcc.c (set_spec, read_specs, for_each_path, execute, do_spec_1, give_switch, set_multilib_dir): Likewise, * gengtype-parse.c (string_seq, typedef_name): Likewise, * gimple-low.c (block_may_fallthru): Use CONST_CAST_TREE. * jump.c (reversed_comparison_code_parts): Use CONST_CAST_RTX. * passes.c (execute_one_pass): Supply a TYPE for CONST_CAST. * prefix.c (update_path): Likewise, * pretty-print.c (pp_base_destroy_prefix): Likewise, * rtlanal.c (keep_with_call_p): Use CONST_CAST_RTX. * tree-cfg.c (tree_can_merge_blocks_p, tree_block_ends_with_condjump_p): Use CONST_CAST_BB. * tree-eh.c (lookup_stmt_eh_region_fn): USe CONST_CAST_TREE. * tree.c (build_string): Supply a TYPE for CONST_CAST. (attribute_list_contained): Use CONST_CAST_TREE. cp: * call.c (name_as_c_string): Supply a TYPE for CONST_CAST. * decl.c (cp_make_fname_decl): Likewise, * parser.c (cp_parser_string_literal): Likewise, * tree.c (pod_type_p, zero_init_p): Use CONST_CAST_TREE. * typeck.c (cp_type_quals, cp_type_readonly, cp_has_mutable_p): Likewise, fortran: * gfortranspec.c (lang_specific_driver): Use CONST_CAST2. * options.c (gfc_post_options): Supply a TYPE for CONST_CAST. * parse.c (parse_omp_structured_block): Likewise, * st.c (gfc_free_statement): Likewise, java: * jcf-parse.c (read_class, java_parse_file): Supply a TYPE for CONST_CAST. * jcf.h (JCF_FINISH): Likewise. From-SVN: r128051
2007-09-03re PR fortran/31675 (Fortran front-end and libgfortran should have a common ↵Francois-Xavier Coudert11-121/+168
header file) PR fortran/31675 * libgfortran.h: New file. * iso-fortran-env.def: Use macros in the new header instead of hardcoded integer constants. * Make-lang.in (F95_PARSER_OBJS, GFORTRAN_TRANS_DEPS): Add fortran/libgfortran.h. * gfortran.h (GFC_STD_*, GFC_FPE_*, options_convert, ioerror_codes): Remove. * trans.c (ERROR_ALLOCATION): Remove. (gfc_call_malloc, gfc_allocate_with_status, gfc_allocate_array_with_status): Use LIBERROR_ALLOCATION. * trans-types.h (GFC_DTYPE_*): Remove. * trans-decl.c (gfc_generate_function_code): Use GFC_CONVERT_NATIVE instead of CONVERT_NATIVE. * trans-io.c (set_parameter_value, set_parameter_ref): Use LIBERROR_* macros instead of IOERROR_ macros. * trans-intrinsic.c (gfc_conv_intrinsic_function): Use LIBERROR_END and LIBERROR_EOR instead of hardcoded constants. * options.c (gfc_init_options): Use GFC_CONVERT_NATIVE instead of CONVERT_NATIVE. (gfc_handle_option): Use GFC_CONVERT_* macros instead of CONVERT_*. * libgfortran.h: Include gcc/fortran/libgfortran.h. Remove M_PI, GFC_MAX_DIMENSIONS, GFC_DTYPE_*, GFC_NUM_RANK_BITS, error_codes, GFC_STD_*, GFC_FPE_* and unit_convert. * runtime/environ.c (variable_table): Use GFC_*_UNIT_NUMBER instead of hardcoded constants. (do_parse, init_unformatted): Use GFC_CONVERT_* macros instead of CONVERT_*. * runtime/string.c (find_option): Use LIBERROR_BAD_OPTION instead of ERROR_BAD_OPTION. * runtime/error.c (translate_error, generate_error): Use LIBERROR_* macros instead of ERROR_*. * io/file_pos.c (formatted_backspace, unformatted_backspace, st_backspace, st_rewind, st_flush): Rename macros. * io/open.c (convert_opt, edit_modes, new_unit, already_open, st_open): Likewise. * io/close.c (st_close): Likewise. * io/list_read.c (next_char, convert_integer, parse_repeat, read_logical, read_integer, read_character, parse_real, check_type, list_formatted_read_scalar, namelist_read, nml_err_ret): Likewise. * io/read.c (convert_real, read_l, read_decimal, read_radix, read_f): Likewise. * io/inquire.c (inquire_via_unit): Likewise. * io/unit.c (get_internal_unit): Likewise. * io/transfer.c (read_sf, read_block, read_block_direct, write_block, write_buf, unformatted_read, unformatted_write, formatted_transfer_scalar, us_read, us_write, data_transfer_init, skip_record, next_record_r, write_us_marker, next_record_w_unf, next_record_w, finalize_transfer, st_read, st_write_done): Likewise. * io/format.c (format_error): Likewise. From-SVN: r128050
2007-09-03invoke.texi: Fix the -frange-checking option entry.Steven G. Kargl2-3/+7
2007-09-02 Steven G. Kargl <kargl@gcc.gnu.org> * invoke.texi: Fix the -frange-checking option entry. From-SVN: r128036
2007-09-02decl.c (match_string_p): New helper function to explicitly match a string of ↵Roger Sayle4-129/+180
characters. * decl.c (match_string_p): New helper function to explicitly match a string of characters. (match_attr_spec): Remove no longer needed DECL_COLON from decl_types. Delete decls array and peek_char. Rewrite decl attribute parser to avoid calling gfc_match_strings. * match.c (gfc_match_strings): Delete unused function. * match.h (gfc_match_strings): Delete prototype. From-SVN: r128028
2007-09-02dump-parse-tree.c (show_char_const): New function.Tobias Schlüter3-28/+40
fortran/ * dump-parse-tree.c (show_char_const): New function. (gfc_show_expr): Use it. * expr.c (find_substring_ref): Rework to not keep characters dangling beyond end of string. testsuite/ * gfortran.dg/substr_6.f90: New test. From-SVN: r128027
2007-09-02re PR fortran/33276 (465.tonto in SPEC CPU 2006 fails to compile)H.J. Lu2-0/+6
gcc/fortran/ 2007-09-02 H.J. Lu <hongjiu.lu@intel.com> PR fortran/33276 * array.c (expand_iterator): Initialize frame.prev. gcc/testsuite/ 2007-09-02 H.J. Lu <hongjiu.lu@intel.com> PR fortran/33276 * gfortran.fortran-torture/compile/pr33276.f90: New. From-SVN: r128024
2007-08-31re PR fortran/33232 (Diagnose comma in "read()," and "write(),")Tobias Burnus2-3/+7
2007-08-31 Tobias Burnus <burnus@net-b.de> PR fortran/33232 * io.c (match_io): Also diagnose extra comma for READ. 2007-08-31 Tobias Burnus <burnus@net-b.de> PR fortran/33232 * gfortran.dg/eor_handling_2.f90: Add dg-warnings. * gfortran.dg/read_1.f90: New. From-SVN: r127997
2007-08-31* intrinsic.texi (LGAMMA): Remove empty @cindex line.Joseph Myers2-1/+4
From-SVN: r127964
2007-08-30re PR fortran/31879 (ICE with function having array of character variables ↵Paul Thomas8-111/+229
argument) 2007-08-31 Paul Thomas <pault@gcc.gnu.org> PR fortran/31879 PR fortran/31197 PR fortran/31258 PR fortran/32703 * gfortran.h : Add prototype for gfc_resolve_substring_charlen. * resolve.c (gfc_resolve_substring_charlen): New function. (resolve_ref): Call gfc_resolve_substring_charlen. (gfc_resolve_character_operator): New function. (gfc_resolve_expr): Call the new functions in cases where the character length is missing. * iresolve.c (cshift, eoshift, merge, pack, reshape, spread, transpose, unpack): Call gfc_resolve_substring_charlen for source expressions that are character and have a reference. * trans.h (gfc_trans_init_string_length) Change name to gfc_conv_string_length; modify references in trans-expr.c, trans-array.c and trans-decl.c. * trans-expr.c (gfc_trans_string_length): Handle case of no backend_decl. (gfc_conv_aliased_arg): Remove code for treating substrings and replace with call to gfc_trans_string_length. * trans-array.c (gfc_conv_expr_descriptor): Remove code for treating strings and call gfc_trans_string_length instead. 2007-08-31 Paul Thomas <pault@gcc.gnu.org> PR fortran/31879 * gfortran.dg/char_length_7.f90: New test. * gfortran.dg/char_length_9.f90: New test. * gfortran.dg/char_assign_1.f90: Add extra warning. PR fortran/31197 PR fortran/31258 * gfortran.dg/char_length_8.f90: New test. From-SVN: r127939
2007-08-30re PR fortran/33228 (Accepts use-associated functions in MODULE PROCEDURE)Tobias Burnus2-7/+16
2007-08-30 Tobias Burnus <burnus@net-b.de> PR fortran/33228 * interface.c (check_interface0): Improve error for external procs. (check_sym_interfaces): Fix checking of module procedures. 2007-08-30 Tobias Burnus <burnus@net-b.de> PR fortran/33228 * gfortran.dg/generic_9.f90: Update error message. * gfortran.dg/generic_14.f90: New. From-SVN: r127925
2007-08-29re PR libfortran/32989 (GETARG intrinsic)Francois-Xavier Coudert6-15/+58
PR fortran/32989 * iresolve.c (gfc_resolve_getarg): Handle non-default integer kinds. * check.c (gfc_check_getarg): New function * intrinsic.h: Add prototype for gfc_check_getarg. * intrinsic.c (add_subroutines): Add reference to gfc_check_getarg. * intrinsic.texi (GETARG): Adjust documentation. * gfortran.fortran-torture/execute/getarg_1.f90: Add check for non-default integer kind arguments. From-SVN: r127905
2007-08-29re PR fortran/33105 (F2003: Support is_iostat_end & is_iostat_eor intrinsics)François-Xavier Coudert5-0/+143
PR fortran/33105 * intrinsic.c (add_functions): Add IS_IOSTAT_END and IS_IOSTAT_EOR intrinsics. * gfortran.h (gfc_isym_id): Add GFC_ISYM_IS_IOSTAT_END and GFC_ISYM_IS_IOSTAT_EOR. * trans-intrinsic.c (gfc_conv_has_intvalue): New function. (gfc_conv_intrinsic_function): Call gfc_conv_has_intvalue for GFC_ISYM_IS_IOSTAT_END and GFC_ISYM_IS_IOSTAT_EOR. * intrinsic.texi: Add IS_IOSTAT_END and IS_IOSTAT_EOR. * gfortran.dg/is_iostat_end_eor_1.f90: New test. From-SVN: r127903
2007-08-29re PR fortran/33215 (Bind(C): Bugs with empty "name=": Creates wrong result ↵Tobias Burnus2-11/+21
and accepts invalid) 2007-08-29 Christopher D. Rickett <crickett@lanl.gov> PR fortran/33215 * decl.c (build_sym): Pass number of identifiers on line to set_binding_label. (set_binding_label): Verify that only one identifier given if NAME= specified, even if the given binding label has zero length. (gfc_match_bind_c): Remove declaration for has_name_equals because it hides the static global one that is needed. 2007-08-29 Christopher D. Rickett <crickett@lanl.gov> PR fortran/33215 * gfortran.dg/binding_label_tests_15.f03: New test case. * gfortran.dg/binding_label_tests_16.f03: Ditto. From-SVN: r127898
2007-08-29builtin-types.def (BT_FN_PTR_PTR_SIZE): New type.Francois-Xavier Coudert7-74/+426
* builtin-types.def (BT_FN_PTR_PTR_SIZE): New type. * builtins.def (BUILT_IN_REALLOC): New builtin. * trans-array.c (gfc_grow_array): Use gfc_call_realloc. (gfc_array_allocate): Use gfc_allocate_with_status and gfc_allocate_array_with_status. (gfc_array_deallocate): Use gfc_deallocate_with_status. (gfc_trans_dealloc_allocated): Use gfc_deallocate_with_status. * trans-stmt.c (gfc_trans_allocate): Use gfc_allocate_with_status. (gfc_trans_deallocate): Use gfc_deallocate_with_status. * trans.c (gfc_allocate_with_status, gfc_allocate_array_with_status, gfc_deallocate_with_status, gfc_call_realloc): New functions. * trans.h (gfc_allocate_with_status, gfc_allocate_array_with_status, gfc_deallocate_with_status, gfc_call_realloc): New prototypes. (gfor_fndecl_internal_realloc, gfor_fndecl_allocate, gfor_fndecl_allocate_array, gfor_fndecl_deallocate): Remove. * f95-lang.c (gfc_init_builtin_functions): Create decl for BUILT_IN_REALLOC. * trans-decl.c (gfor_fndecl_internal_realloc, gfor_fndecl_allocate, gfor_fndecl_allocate_array, gfor_fndecl_deallocate): Remove function decls. (gfc_build_builtin_function_decls): Likewise. * runtime/memory.c (internal_realloc, allocate, allocate_array, deallocate): Remove functions. * gfortran.map (_gfortran_allocate, _gfortran_allocate_array, _gfortran_deallocate, _gfortran_internal_realloc): Remove symbols. * libgfortran.h (error_codes): Add comment. * gfortran.dg/alloc_comp_basics_1.f90: Update check. * gfortran.dg/alloc_comp_constructor_1.f90: Update check. From-SVN: r127897
2007-08-29Fix ChangeLog.Jerry DeLisle1-0/+5
From-SVN: r127881
2007-08-29re PR libfortran/33055 (Runtime error in INQUIRE unit existance with ↵Jerry DeLisle1-35/+2
-fdefault-integer-8) 2007-08-28 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR fortran/33055 Revert previous patch. From-SVN: r127877
2007-08-28re PR fortran/22244 (dimension information is lost for multi-dimension array)Jakub Jelinek3-2/+29
PR fortran/22244 * Make-lang.in (fortran/trans-types.o): Depend on $(FLAGS_H). * trans-types.c: Include flags.h. (gfc_get_nodesc_array_type): Add TYPE_DECL TYPE_NAME with correct bounds and dimensions for packed arrays. From-SVN: r127864
2007-08-27simplify.c (gfc_simplify_lgamma): Fix mpfr_lgamma call.Tobias Burnus2-1/+6
2007-08-27 Tobias Burnus <burnus@net-b.de> * simplify.c (gfc_simplify_lgamma): Fix mpfr_lgamma call. From-SVN: r127829
2007-08-26re PR libfortran/33055 (Runtime error in INQUIRE unit existance with ↵Jerry DeLisle2-2/+43
-fdefault-integer-8) 2007-08-26 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR fortran/33055 * trans-io.c (create_dummy_iostat): New function to create a unique dummy variable expression to use with IOSTAT. (gfc_trans_inquire): Use the new function to pass unit number error info to run-time library if a regular IOSTAT variable was not given. PR libfortran/33055 * io/inquire.c (inquire_via_unit): If inquiring by unit, check for an error condition from the IOSTAT variable and set EXIST to false if there was a bad unit number. From-SVN: r127817
2007-08-26gfortran.h (gfc_isym_id): Add GFC_ISYM_GAMMA and GFC_ISYM_LGAMMA.H.J. Lu2-0/+7
2007-08-26 H.J. Lu <hongjiu.lu@intel.com> * gfortran.h (gfc_isym_id): Add GFC_ISYM_GAMMA and GFC_ISYM_LGAMMA. From-SVN: r127814
2007-08-26gfortran.h (gfc_option_t): Add flag_recursive.Asher Langton5-9/+77
2007-08-26 Asher Langton <langton2@llnl.gov> Tobias Burnus <burnus@net-b.de> * gfortran.h (gfc_option_t): Add flag_recursive. * lang.opt: Add -frecursive option and update -fopenmp. * invoke.texi (-frecursive): Document new option. (-fopenmp,-fno-automatic,-fmax-stack-var-size): Update. * options.c (gfc_init_options, gfc_post_options, gfc_handle_option): Add -frecursive and modify -fopenmp. (gfc_post_options): Add warning for conflicting flags. 2007-08-26 Asher Langton <langton2@llnl.gov> * gfortran.dg/recursive_stack.f90: New. * gfortran.dg/openmp_stack.f90: New. Co-Authored-By: Tobias Burnus <burnus@net-b.de> From-SVN: r127813
2007-08-26re PR fortran/31298 ([F03] use mod, operator(+) => operator(.userOp.) not ↵Tobias Burnus2-13/+43
supported) 2007-08-26 Tobias Burnus <burnus@net-b.de> PR fortran/31298 * module.c (mio_symbol_ref,mio_interface_rest): Return pointer_info. (load_operator_interfaces): Support multible loading of an operator. 2007-08-26 Tobias Burnus <burnus@net-b.de> PR fortran/31298 * gfortran.dg/use_10.f90: New. From-SVN: r127812
2007-08-26re PR fortran/32985 (COMMON checking: TYPE with(out) SEQUENCE/bind(C), ↵Tobias Burnus3-46/+54
ALLOCATABLE) 2007-08-26 Tobias Burnus <burnus@net-b.de> PR fortran/32985 * match.c (gfc_match_common): Remove SEQUENCE diagnostics. * resolve.c (resolve_common_blocks): Add SEQUENCE diagnostics; fix walking through the tree. 2007-08-26 Tobias Burnus <burnus@net-b.de> PR fortran/32985 * gfortran.dg/namelist_14.f90: Make test case valid. * gfortran.dg/common_10.f90: New. From-SVN: r127811
2007-08-26re PR fortran/32980 (Vendor extension: Intrinsic functions (D)GAMMA, LGAMMA ↵Tobias Burnus7-0/+215
(ALGAMA/DLGAMA)) 2007-08-26 Tobias Burnus <burnus@net-b.de> PR fortran/32980 * intrinsic.h (gfc_simplify_gamma,gfc_simplify_lgamma, gfc_resolve_gamma,gfc_resolve_lgamma): New function declations. * mathbuiltins.def: Define GAMMA and LGAMMA. * intrinsic.c (add_functions): Add GAMMA, DGAMMA, LGAMMA, ALGAMA and DLGAMA. * simplify.c (gfc_simplify_gamma,gfc_simplify_lgamma): New functions. * iresolve.c (gfc_resolve_gamma,gfc_resolve_lgamma): New functions. * intrinsic.texi: Add documentation for GAMMA and LGAMMA. 2007-08-26 Tobias Burnus <burnus@net-b.de> PR fortran/32980 * gfortran.dg/gamma_1.f90: New. * gfortran.dg/gamma_2.f90: New. * gfortran.dg/gamma_3.f90: New. From-SVN: r127809
2007-08-26re PR fortran/33188 (Fortran 2003: Type declarations without componends)Tobias Burnus2-5/+11
2007-08-26 Tobias Burnus <burnus@net-b.de> PR fortran/33188 * parse.c (parse_derived): Support empty derived type definitions for Fortran 2003. 2007-08-26 Tobias Burnus <burnus@net-b.de> PR fortran/33188 * gfortran.dg/used_types_18.f90: New. From-SVN: r127808
2007-08-25c-common.c (vector_types_convertible_p, [...]): Constify.Kaveh R. Ghazi3-2/+7
* c-common.c (vector_types_convertible_p, decl_with_nonnull_addr_p, c_promoting_integer_type_p, self_promoting_args_p): Constify. * c-common.h (has_c_linkage, decl_with_nonnull_addr_p, c_promoting_integer_type_p, self_promoting_args_p, anon_aggr_type_p, vector_types_convertible_p): Likewise. * c-decl.c (anon_aggr_type_p): Likewise. * * c-dump.c (dump_stmt): Likewise. * c-objc-common.c (has_c_linkage): Likewise. * c-tree.h (same_translation_unit_p): Likewise. * c-typeck.c (null_pointer_constant_p, tagged_types_tu_compatible_p, function_types_compatible_p, type_lists_compatible_p, lvalue_or_else, lvalue_p, comptypes_internal, struct tagged_tu_seen_cache, same_translation_unit_p, alloc_tagged_tu_seen_cache, c_size_in_bytes): Likewise. * ggc-common.c (compare_ptr_data, hash_descriptor, eq_descriptor, hash_ptr, eq_ptr): Likewise. * langhooks-def.h (lhd_decl_ok_for_sibcall, LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE): Likewise. * langhooks.c (lhd_decl_ok_for_sibcall): Likewise. * langhooks.h (ok_for_sibcall, omp_privatize_by_reference): Likewise. * optabs.c (optab_for_tree_code): Likewise. * optabs.h (optab_for_tree_code): Likewise. * rtl.h (simplify_rtx): Likewise. * simplify-rtx.c (simplify_rtx): Likewise. * tree-dump.c (queue, queue_and_dump_index, queue_and_dump_type, dump_flag, dump_node): Likewise. * tree-dump.h (struct dump_info, dump_stmt, queue_and_dump_index, queue_and_dump_type, dump_flag): Likewise. * tree-flow.h (vect_can_force_dr_alignment_p): Likewise. * tree-pass.h (dump_node): Likewise. * tree-vectorizer.c (vect_can_force_dr_alignment_p, supportable_narrowing_operation): Likewise. * tree-vectorizer.h (vect_can_force_dr_alignment_p, supportable_narrowing_operation): Likewise. * tree-vrp.c (needs_overflow_infinity, supports_overflow_infinity, is_negative_overflow_infinity, is_positive_overflow_infinity, is_overflow_infinity, vrp_val_is_max, vrp_val_is_min, nonnull_arg_p, get_value_range, vrp_operand_equal_p, update_value_range, add_equivalence, ssa_name_nonnegative_p, ssa_name_nonzero_p, fp_predicate): Likewise. * tree.c (auto_var_in_fn_p, empty_body_p): Likewise. * tree.h (empty_body_p, auto_var_in_fn_p, ssa_name_nonzero_p, ssa_name_nonnegative_p): Likewise. cp: * call.c (sufficient_parms_p): Constify. * class.c (same_signature_p): Likewise. * cp-gimplify.c (is_invisiref_parm, cxx_omp_privatize_by_reference): Likewise. * cp-objcp-common.c (has_c_linkage): Likewise. * cp-tree.h (NON_THUNK_FUNCTION_CHECK, THUNK_FUNCTION_CHECK, sufficient_parms_p, same_signature_p, copy_fn_p, move_fn_p, grok_ctor_properties, nothrow_libfn_p, skip_artificial_parms_for, num_artificial_parms_for, comp_template_parms, template_parameter_pack_p, any_dependent_template_arguments_p, any_type_dependent_arguments_p, any_value_dependent_elements_p, repo_export_class_p, cxx_omp_privatize_by_reference, pod_type_p, zero_init_p, member_p, cp_lvalue_kind, builtin_valid_in_constant_expr_p, decl_anon_ns_mem_p, varargs_function_p, is_dummy_object, special_function_kind, string_conv_p, type_unknown_p, comp_except_specs, compparms, comp_cv_qualification, is_bitfield_expr_with_lowered_type, unlowered_expr_type, ptr_reasonably_similar, cp_type_readonly, cp_has_mutable_p, at_least_as_qualified_p, invalid_nonstatic_memfn_p, lvalue_or_else, lvalue_p): Likewise. * decl.c (copy_fn_p, move_fn_p, grok_ctor_properties): Likewise. * except.c (nothrow_libfn_p): Likewise. * method.c (skip_artificial_parms_for, num_artificial_parms_for): Likewise. * pt.c (comp_template_parms, template_parameter_pack_p, any_type_dependent_arguments_p, any_value_dependent_elements_p, any_dependent_template_arguments_p): Likewise. * repo.c (repo_export_class_p): Likewise. * semantics.c (anon_aggr_type_p): Likewise. * tree.c (lvalue_p_1, real_lvalue_p, lvalue_p, builtin_valid_in_constant_expr_p, decl_anon_ns_mem_p, varargs_function_p, member_p, is_dummy_object, pod_type_p, zero_init_p, special_function_p): Likewise. * typeck.c (comp_array_types, type_unknown_p, comp_except_specs, comp_array_types, at_least_as_qualified_p, comp_cv_qualification, compparms, invalid_nonstatic_memfn_p, is_bitfield_expr_with_lowered_type, unlowered_expr_type, string_conv_p, ptr_reasonably_similar, cp_type_readonly, cp_has_mutable_p, lvalue_or_else): Likewise. fortran: * trans-openmp.c (gfc_omp_privatize_by_reference): Constify. * trans.h (gfc_omp_privatize_by_reference): Likewise. java: * lang.c (java_decl_ok_for_sibcall): Likewise. From-SVN: r127799
2007-08-24re PR fortran/33178 (-std=f95: SIGN with integer arguments rejected as ↵Tobias Burnus2-6/+10
initialization expression) 2007-08-24 Tobias Burnus <burnus@net-b.de> PR fortran/33178 * intrinsic.c (gfc_intrinsic_func_interface): Fix initialization expression check. 2007-08-24 Tobias Burnus <burnus@net-b.de> PR fortran/33178 * gfortran.dg/initialization_4.f90: Update dg-error. * gfortran.dg/initialization_13.f90: New. From-SVN: r127786
2007-08-24re PR libfortran/32972 (performance of pack/unpack)Thomas Koenig2-17/+8
2007-08-24 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/32972 * iresolve.c: Don't convert array masks. 2007-08-24 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/32972 * libgfortran.h: Remove GFOR_POINTER_L8_TO_L4 macro. Add GFOR_POINTER_TO_L1 macro. * m4/iforeach.m4(`m'name`'rtype_qual`_'atype_code): Change argument 'mask' to gfc_array_l1. Adjust prototype. Change mask pointer to GFC_LOGICAL_1. Multiply strides by kind of mask * m4/ifunction.m4: Likewise. * intrinsics/pack_generic.c(pack_internal): Likewise. * intrinsics/unpack_generic.c(unpack_internal): Likewise. * m4/matmull.m4: Switch to GFC_LOGICAL_1. Multiply strides by kind of logical arguments a and b. * generated/matmul_l16.c: Regenerated. * generated/matmul_l4.c: Regenerated. * generated/matmul_l8.c: Regenerated. * generated/maxloc0_16_i1.c: Regenerated. * generated/maxloc0_16_i16.c: Regenerated. * generated/maxloc0_16_i2.c: Regenerated. * generated/maxloc0_16_i4.c: Regenerated. * generated/maxloc0_16_i8.c: Regenerated. * generated/maxloc0_16_r10.c: Regenerated. * generated/maxloc0_16_r16.c: Regenerated. * generated/maxloc0_16_r4.c: Regenerated. * generated/maxloc0_16_r8.c: Regenerated. * generated/maxloc0_4_i1.c: Regenerated. * generated/maxloc0_4_i16.c: Regenerated. * generated/maxloc0_4_i2.c: Regenerated. * generated/maxloc0_4_i4.c: Regenerated. * generated/maxloc0_4_i8.c: Regenerated. * generated/maxloc0_4_r10.c: Regenerated. * generated/maxloc0_4_r16.c: Regenerated. * generated/maxloc0_4_r4.c: Regenerated. * generated/maxloc0_4_r8.c: Regenerated. * generated/maxloc0_8_i1.c: Regenerated. * generated/maxloc0_8_i16.c: Regenerated. * generated/maxloc0_8_i2.c: Regenerated. * generated/maxloc0_8_i4.c: Regenerated. * generated/maxloc0_8_i8.c: Regenerated. * generated/maxloc0_8_r10.c: Regenerated. * generated/maxloc0_8_r16.c: Regenerated. * generated/maxloc0_8_r4.c: Regenerated. * generated/maxloc0_8_r8.c: Regenerated. * generated/maxloc1_16_i1.c: Regenerated. * generated/maxloc1_16_i16.c: Regenerated. * generated/maxloc1_16_i2.c: Regenerated. * generated/maxloc1_16_i4.c: Regenerated. * generated/maxloc1_16_i8.c: Regenerated. * generated/maxloc1_16_r10.c: Regenerated. * generated/maxloc1_16_r16.c: Regenerated. * generated/maxloc1_16_r4.c: Regenerated. * generated/maxloc1_16_r8.c: Regenerated. * generated/maxloc1_4_i1.c: Regenerated. * generated/maxloc1_4_i16.c: Regenerated. * generated/maxloc1_4_i2.c: Regenerated. * generated/maxloc1_4_i4.c: Regenerated. * generated/maxloc1_4_i8.c: Regenerated. * generated/maxloc1_4_r10.c: Regenerated. * generated/maxloc1_4_r16.c: Regenerated. * generated/maxloc1_4_r4.c: Regenerated. * generated/maxloc1_4_r8.c: Regenerated. * generated/maxloc1_8_i1.c: Regenerated. * generated/maxloc1_8_i16.c: Regenerated. * generated/maxloc1_8_i2.c: Regenerated. * generated/maxloc1_8_i4.c: Regenerated. * generated/maxloc1_8_i8.c: Regenerated. * generated/maxloc1_8_r10.c: Regenerated. * generated/maxloc1_8_r16.c: Regenerated. * generated/maxloc1_8_r4.c: Regenerated. * generated/maxloc1_8_r8.c: Regenerated. * generated/maxval_i1.c: Regenerated. * generated/maxval_i16.c: Regenerated. * generated/maxval_i2.c: Regenerated. * generated/maxval_i4.c: Regenerated. * generated/maxval_i8.c: Regenerated. * generated/maxval_r10.c: Regenerated. * generated/maxval_r16.c: Regenerated. * generated/maxval_r4.c: Regenerated. * generated/maxval_r8.c: Regenerated. * generated/minloc0_16_i1.c: Regenerated. * generated/minloc0_16_i16.c: Regenerated. * generated/minloc0_16_i2.c: Regenerated. * generated/minloc0_16_i4.c: Regenerated. * generated/minloc0_16_i8.c: Regenerated. * generated/minloc0_16_r10.c: Regenerated. * generated/minloc0_16_r16.c: Regenerated. * generated/minloc0_16_r4.c: Regenerated. * generated/minloc0_16_r8.c: Regenerated. * generated/minloc0_4_i1.c: Regenerated. * generated/minloc0_4_i16.c: Regenerated. * generated/minloc0_4_i2.c: Regenerated. * generated/minloc0_4_i4.c: Regenerated. * generated/minloc0_4_i8.c: Regenerated. * generated/minloc0_4_r10.c: Regenerated. * generated/minloc0_4_r16.c: Regenerated. * generated/minloc0_4_r4.c: Regenerated. * generated/minloc0_4_r8.c: Regenerated. * generated/minloc0_8_i1.c: Regenerated. * generated/minloc0_8_i16.c: Regenerated. * generated/minloc0_8_i2.c: Regenerated. * generated/minloc0_8_i4.c: Regenerated. * generated/minloc0_8_i8.c: Regenerated. * generated/minloc0_8_r10.c: Regenerated. * generated/minloc0_8_r16.c: Regenerated. * generated/minloc0_8_r4.c: Regenerated. * generated/minloc0_8_r8.c: Regenerated. * generated/minloc1_16_i1.c: Regenerated. * generated/minloc1_16_i16.c: Regenerated. * generated/minloc1_16_i2.c: Regenerated. * generated/minloc1_16_i4.c: Regenerated. * generated/minloc1_16_i8.c: Regenerated. * generated/minloc1_16_r10.c: Regenerated. * generated/minloc1_16_r16.c: Regenerated. * generated/minloc1_16_r4.c: Regenerated. * generated/minloc1_16_r8.c: Regenerated. * generated/minloc1_4_i1.c: Regenerated. * generated/minloc1_4_i16.c: Regenerated. * generated/minloc1_4_i2.c: Regenerated. * generated/minloc1_4_i4.c: Regenerated. * generated/minloc1_4_i8.c: Regenerated. * generated/minloc1_4_r10.c: Regenerated. * generated/minloc1_4_r16.c: Regenerated. * generated/minloc1_4_r4.c: Regenerated. * generated/minloc1_4_r8.c: Regenerated. * generated/minloc1_8_i1.c: Regenerated. * generated/minloc1_8_i16.c: Regenerated. * generated/minloc1_8_i2.c: Regenerated. * generated/minloc1_8_i4.c: Regenerated. * generated/minloc1_8_i8.c: Regenerated. * generated/minloc1_8_r10.c: Regenerated. * generated/minloc1_8_r16.c: Regenerated. * generated/minloc1_8_r4.c: Regenerated. * generated/minloc1_8_r8.c: Regenerated. * generated/minval_i1.c: Regenerated. * generated/minval_i16.c: Regenerated. * generated/minval_i2.c: Regenerated. * generated/minval_i4.c: Regenerated. * generated/minval_i8.c: Regenerated. * generated/minval_r10.c: Regenerated. * generated/minval_r16.c: Regenerated. * generated/minval_r4.c: Regenerated. * generated/minval_r8.c: Regenerated. * generated/product_c10.c: Regenerated. * generated/product_c16.c: Regenerated. * generated/product_c4.c: Regenerated. * generated/product_c8.c: Regenerated. * generated/product_i1.c: Regenerated. * generated/product_i16.c: Regenerated. * generated/product_i2.c: Regenerated. * generated/product_i4.c: Regenerated. * generated/product_i8.c: Regenerated. * generated/product_r10.c: Regenerated. * generated/product_r16.c: Regenerated. * generated/product_r4.c: Regenerated. * generated/product_r8.c: Regenerated. * generated/sum_c10.c: Regenerated. * generated/sum_c16.c: Regenerated. * generated/sum_c4.c: Regenerated. * generated/sum_c8.c: Regenerated. * generated/sum_i1.c: Regenerated. * generated/sum_i16.c: Regenerated. * generated/sum_i2.c: Regenerated. * generated/sum_i4.c: Regenerated. * generated/sum_i8.c: Regenerated. * generated/sum_r10.c: Regenerated. * generated/sum_r16.c: Regenerated. * generated/sum_r4.c: Regenerated. * generated/sum_r8.c: Regenerated. From-SVN: r127774
2007-08-24re PR fortran/33139 (array pointer assignment gives incorrect dimensions)Tobias Burnus2-7/+15
2007-08-24 Tobias Burnus <burnus@net-b.de> PR fortran/33139 * trans-array.c (gfc_conv_expr_descriptor): Copy bounds for whole-array pointer assignments. 2007-08-24 Tobias Burnus <burnus@net-b.de> PR fortran/33139 * gfortran.dg/pointer_assign_4.f90: New. * gfortran.dg/shape_2.f90: Fix test case. * gfortran.dg/char_result_4.f90: Ditto. From-SVN: r127770
2007-08-24decl.c (variable_decl): Don't share charlen structs if length == NULL.Jakub Jelinek3-22/+14
* decl.c (variable_decl): Don't share charlen structs if length == NULL. * trans-decl.c (create_function_arglist): Assert f->sym->ts.cl->backend_decl is NULL instead of unsharing charlen struct here. * gfortran.dg/assumed_charlen_sharing.f90: New test. From-SVN: r127748
2007-08-23re PR fortran/33095 (MAX with optional arguments gives run-time error)Francois-Xavier Coudert2-54/+19
PR fortran/33095 * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Remove runtime error checking. * gfortran.dg/min_max_optional_5.f90: New test. * gfortran.dg/min_max_optional_2.f90: Remove. * gfortran.dg/min_max_optional_3.f90: Remove. * gfortran.dg/min_max_optional_4.f90: Remove. From-SVN: r127732
2007-08-23match.c (intrinsic_operators): Delete.Roger Sayle2-39/+222
2007-08-22 Roger Sayle <roger@eyesopen.com> Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> * match.c (intrinsic_operators): Delete. (gfc_match_intrinsic_op): Rewrite matcher to avoid calling gfc_match_strings. Co-Authored-By: Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> From-SVN: r127727
2007-08-22re PR fortran/33020 (Bind(C): c_f_pointer: type/rank mismatch error with ↵Christopher D. Rickett2-12/+6
integer(8) SHAPE) 2007-08-22 Christopher D. Rickett <crickett@lanl.gov> PR fortran/33020 * resolve.c (gfc_iso_c_sub_interface): Remove setting of type and kind for optional SHAPE parameter of C_F_POINTER. 2007-08-22 Christopher D. Rickett <crickett@lanl.gov> PR fortran/33020 * gfortran.dg/c_f_pointer_shape_tests_2.f03: Update test to include multiple kinds for SHAPE parameter within a single namespace. * gfortran.dg/c_f_pointer_shape_tests_2_driver.c: Ditto. * gfortran.dg/c_f_pointer_shape_tests_3.f03: New test case. From-SVN: r127719
2007-08-22decl.c (match_attr_spec): Pass on errors from gfc_match_bind_c.Janus Weil2-3/+15
2007-08-22 Janus Weil <jaydub66@gmail.com> * decl.c (match_attr_spec): Pass on errors from gfc_match_bind_c. (gfc_match_bind_c): Bugfix in check for NAME= with abstract interfaces. (gfc_match_mopdproc): Bugfix to reject module procedures in abstract interfaces. 2007-08-22 Janus Weil <jaydub66@gmail.com> * interface_abstract_1.f90: Extended test case. * interface_abstract_3.f90: New test. From-SVN: r127718
2007-08-22[PATCH Fortran] bootstrap failure by wrong sizetype.Kai Tietz2-1/+14
From-SVN: r127704
2007-08-21configure.ac: Add --with-pkgversion and --with-bugurl.Paul Brook4-3/+13
gcc: 2007-08-21 Paul Brook <paul@codesourcery.com> Nathan Sidwell <nathan@codesourcery.com> Mark Mitchell <mark@codesourcery.com> Joseph Myers <joseph@codesourcery.com> * configure.ac: Add --with-pkgversion and --with-bugurl. * configure: Regenerate. * doc/install.texi: Document them. * version.c (version_string): Remove VERSUFFIX. (VERSUFFIX): Remove. (pkgversion_string): New. (bug_report_url): Do not hard-code initializer. * version.h (pkgversion_string): Declare. * Makefile.in (PKGVERSION_s, BUGURL_s, PKGVERSION, BUGURL_TEXI): Define. (version.o): Define PKGVERSION and BUGURL. (gcc-vers.texi): Define VERSION_PACKAGE and BUGURL. (%.pod): Define BUGURL. * gcc.c (process_command, main): Use pkgversion_string. * toplev.c (compile_file, print_version): Likewise. * protoize.c (main): Likewise. * gcov.c (print_version): Likewise. Update copyright date. * gcov-dump.c (print_version): Likewise. Update copyright date. * mips-tdump.c (main): Likewise. Update copyright date. * mips-tfile.c (main): Likewise. Update copyright date. * doc/include/gcc-common.texi: Include VERSION_PACKAGE as subtitle. * doc/bugreport.texi: Use BUGURL for bug-reporting instructions; shorten description. * doc/gcc.texi: Include VERSION_PACKAGE in version description. * doc/gccint.texi: Likewise. * doc/invoke.texi: Use BUGURL for bug-reporting instructions. Update copyright date. gcc/fortran: 2007-08-21 Paul Brook <paul@codesourcery.com> Nathan Sidwell <nathan@codesourcery.com> Mark Mitchell <mark@codesourcery.com> Joseph Myers <joseph@codesourcery.com> * gfortranspec.c (lang_specific_driver): Use pkgversion_string. * Make-lang.in (gfortran.pod): Define BUGURL. * invoke.texi: Use BUGURL for bug-reporting instructions. gcc/java: 2007-08-21 Paul Brook <paul@codesourcery.com> Nathan Sidwell <nathan@codesourcery.com> Mark Mitchell <mark@codesourcery.com> Joseph Myers <joseph@codesourcery.com> * jcf-dump.c (version): Use pkgversion_string. Update copyright date. gcc/treelang: 2007-08-21 Paul Brook <paul@codesourcery.com> Nathan Sidwell <nathan@codesourcery.com> Mark Mitchell <mark@codesourcery.com> Joseph Myers <joseph@codesourcery.com> * tree1.c (treelang_handle_option): Use pkgversion_string. * treelang.texi (which-treelang): Define to use VERSION_PACKAGE. maintainer-scripts: 2007-08-21 Paul Brook <paul@codesourcery.com> Nathan Sidwell <nathan@codesourcery.com> Mark Mitchell <mark@codesourcery.com> Joseph Myers <joseph@codesourcery.com> * gcc_release: Do not include copies of bugs.html in releases. * update_web_docs_svn: Set VERSION_PACKAGE and BUGURL in gcc-vers.texi. Co-Authored-By: Joseph Myers <joseph@codesourcery.com> Co-Authored-By: Mark Mitchell <mark@codesourcery.com> Co-Authored-By: Nathan Sidwell <nathan@codesourcery.com> From-SVN: r127667
2007-08-20match.c (intrinsic_operators): Make static.Roger Sayle3-9/+84
* match.c (intrinsic_operators): Make static. (gfc_op2string): New function for converting a gfc_intrinsic_op to to a "const char*", replacing the macro of the same name. * gfortran.h (intrinsic_operators): Delete prototype. (gfc_op2string): Replace macro with function prototype. From-SVN: r127636
2007-08-19[multiple changes]Tobias Burnus6-20/+40
2007-08-18 Tobias Burnus <burnus@net-b.de> * gfortran.h (gfc_is_intrinsic_typename): Add declaration. * symbol.c (gfc_is_intrinsic_typename): New function. * parse.c (decode_statement): Check for space in ABSTRACT INTERFACE. (parse_interface): Use gfc_is_intrinsic_typename. * decl.c (gfc_match_derived_decl): Ditto. * module.c (gfc_match_use): Use gcc_unreachable() for INTERFACE_ABSTRACT in switch(). 2007-08-19 Tobias Burnus <burnus@net-b.de> * gfortran.dg/interface_abstract_2.f90: New. * gfortran.dg/interface_abstract_1.f90: Fix typo. From-SVN: r127626
2007-08-19primary.c (match_logical_constant_string): New function to match a ".true." ↵Roger Sayle2-7/+42
or a ".false.". * primary.c (match_logical_constant_string): New function to match a ".true." or a ".false.". (match_logical_constant): Use it instead of gfc_match_strings. From-SVN: r127620
2007-08-18[multiple changes]Tobias Burnus9-6/+90
2007-08-18 Paul Thomas <pault@gcc.gnu.org> Janus Weil <jaydub66@gmail.com> * interface.c (gfc_match_interface,gfc_match_abstract_interface, gfc_match_end_interface,gfc_add_interface): Add abstract interface. * dump-parse-tree.c (gfc_show_attr): Ditto. * gfortran.h (interface_type,symbol_attribute): Ditto. * module.c (gfc_match_use,ab_attribute,attr_bits, mio_symbol_attribute): Ditto. * resolve.c (resolve_function): Ditto. * match.h: Ditto. * parse.c (decode_statement): Ditto. (parse_interface): Ditto, check for C1203 (name of abstract interface cannot be the same as an intrinsic type). * decl.c (gfc_match_bind_c): Check for NAME= with abstract interfaces. (access_attr_decl): Handle Abstract interfaces. 2007-08-17 Tobias Burnus <burnus@net-b.de> * gfortran.dg/interface_abstract_1.f90: New. From-SVN: r127612
2007-08-18re PR fortran/32881 (PURE attribute escapes from contained procedure)Paul Thomas2-1/+8
2007-08-18 Paul Thomas <pault@gcc.gnu.org> PR fortran/32881 * expr.c (gfc_check_pointer_assign): If the rhs is the initialization expression for the rhs, there is no error. 2007-08-18 Paul Thomas <pault@gcc.gnu.org> PR fortran/32881 * gfortran.dg/pure_initializer_1.f90: New test. From-SVN: r127611
2007-08-18re PR fortran/32875 (Not Implemented: complex character array constructor)Paul Thomas2-0/+13
2007-08-18 Paul Thomas <pault@gcc.gnu.org> PR fortran/32875 * trans-array.c (get_array_ctor_strlen): Set the character length of a zero length array to zero. 2007-08-18 Paul Thomas <pault@gcc.gnu.org> PR fortran/32875 * gfortran.dg/array_constructor_18.f90: New test. From-SVN: r127608
2007-08-16re PR fortran/33072 ("use mod, only: operator(.sub.)" matches any procedure ↵Tobias Burnus2-16/+32
"sub") 2007-08-16 Tobias Burnus <burnus@net-b.de> PR fortran/33072 * module.c (gfc_match_use): Mark user operators as such. (find_use_name_n): Distinguish between operators and other symbols. (find_use_name,number_use_names,mio_namelist, load_operator_interfaces,load_generic_interfaces,read_module, write_generic): Update find_use_name_n calls. 2007-08-16 Tobias Burnus <burnus@net-b.de> PR fortran/33072 * gfortran.dg/use_9.f90: New. From-SVN: r127564
2007-08-15re PR fortran/29459 (Spurious warnings about anonymous variables)Francois-Xavier Coudert2-1/+15
PR fortran/29459 * trans.c (gfc_create_var_np): Do not emit warnings for anonymous variables. From-SVN: r127513
2007-08-14re PR fortran/33066 ("type, bind(C) t": Diagnose missing "::")Francois-Xavier Coudert2-2/+11
PR fortran/33066 * decl.c (gfc_get_type_attr_spec): Fix whitespace. (gfc_match_derived_decl): Fix logic. * gfortran.dg/use_8.f90: New test. * gfortran.dg/c_loc_tests_2.f03: Fix code. From-SVN: r127497
2007-08-14re PR fortran/33073 (Type mismatch in build_fixbound_expr())Francois-Xavier Coudert2-20/+10
PR fortran/33073 * trans-intrinsic.c (build_fixbound_expr): Convert to result type in all cases. From-SVN: r127494
2007-08-14re PR fortran/32594 (substring simplification leads to ICE)Francois-Xavier Coudert3-10/+31
PR fortran/32594 * trans-expr.c (gfc_conv_substring_expr): Only call gfc_conv_substring if expr->ref is not NULL. * expr.c (gfc_is_constant_expr): If e->ref is NULL, the substring expression might be a constant. (gfc_simplify_expr): Handle missing start and end, as well as missing ref. * gfortran.dg/substr_5.f90: New test. From-SVN: r127478