OSDN Git Service

2007-01-26 Steven Bosscher <stevenb.gcc@gmail.com>
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
index 4a2936a..641d50d 100644 (file)
@@ -1,3 +1,509 @@
+2007-01-26  Steven Bosscher  <stevenb.gcc@gmail.com>
+           Steven G. Kargl <kargl@gcc.gnu.org>
+
+       * fortran/io.c (next_char): Deal with backslash escaped characters.
+       Issue warnings in non -std=gnu cases.
+       * fortran/primary.c (next_string_char): Issue warnings in non
+
+2007-01-26  Tobias Burnus  <burnus@net-b.de>
+
+       * lang-specs.h: Add support for .f03 and .F03 extensions.
+       * gfortran.texi: Document .f03 extension.
+       * options.c (form_from_filename): Recognize .f03.
+
+2007-01-25  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+       PR fortran/30437
+       * lang.opt (Wall): Remove RejectNegative.
+       * options.c (gfc_handle_option): Wall can be disabled.
+       (set_Wall): Add a parameter for disabling Wall.
+       
+2007-01-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR fortran/30532
+       * scanner.c (load_line): Remove check fot ctrl-z and don't gobble.
+       
+2007-01-23  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/30481
+       * match.c (gfc_match_namelist): Add check for assumed size character
+       in namelist and provide error if found.
+
+2007-01-21  Brooks Moses  <brooks.moses@codesourcery.com>
+
+       * intrinsic.texi (ACHAR): Added cross-references.
+       (CHAR): Put cross-references in alphabetical order.
+       (IACHAR): Added cross-references.
+       (ICHAR): Added cross-references.
+
+2007-01-20  Brooks Moses  <brooks.moses@codesourcery.com>
+
+       * intrinsic.texi: Edited all "Syntax" examples to a consistent form.
+       (MAXVAL): Corrected description of result characteristics.
+       (MINVAL): Same.
+       (UMASK): Added documentation.
+
+2007-01-20  Steven G. Kargl  <kargl@gcc.gnu.org>
+
+       * openmp.c, matchexp.c, module.c, scanner.c, resolve.c, st.c,
+       parse.c, primary.c, options.c, misc.c, simplify.c:  Next installment
+       in the massive whitespace patch.
+
+2007-01-20  Roger Sayle  <roger@eyesopen.com>
+
+       * module.c (mio_array_ref): The dimen_type fields of an array ref
+       are an enumerated type and can't be read/written directly with a
+       call to mio_integer.  Instead loop over and cast each element.
+
+2007-01-20  Roger Sayle  <roger@eyesopen.com>
+
+       * dependency.c (gfc_full_array_ref_p): Check that ref->next is NULL,
+       i.e. that the ARRAY_REF doesn't mention components.
+       * trans-array.c (gfc_constant_array_constructor_p): Export external
+       function renamed from constant_array_constructor_p.
+       (gfc_build_constant_array_constructor): Export.
+       (gfc_trans_array_constructor): Update call to the renamed function
+       constant_array_constructor_p.
+       * trans-array.h (gfc_constant_array_constructor_p): Prototype here.
+       (gfc_build_constant_array_constructor): Likewise.
+       * trans-expr.c (gfc_build_memcpy_call): New helper function split
+       out from gfc_trans_array_copy.
+       (gfc_trans_array_copy): Use gfc_build_memcpy_call.
+       (gfc_trans_array_constructor_copy): New function to optimize
+       assigning an entire array from a constant array constructor.
+       (gfc_trans_assignment): Call gfc_trans_array_constructor_copy
+       when appropriate.
+
+2007-01-20  Roger Sayle  <roger@eyesopen.com>
+
+       * trans-intrinsic.c (gfc_conv_intrinsic_sign): New branchless
+       implementation for the SIGN intrinsic with integral operands.
+       (gfc_conv_intrinsic_minmax): Fix whitespace.
+
+2007-01-20  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
+
+       * gfortran.h (gfc_options_t): Add flag_allow_leading_underscore.
+       * lang.opt: Add -fallow-leading-underscore.
+       * match.c (gfc_match_name): Allow leading underscore in symbol
+       name if -fallow-leading-underscore is used.
+       * symbol.c (gfc_get_default_type): Add special case for symbol
+       names beginning with an underscore.
+       * trans-decl.c (gfc_get_extern_function_decl,
+       gfc_build_intrinsic_function_decls): Add _gfortran prefix to
+       library symbols selected_int_kind, selected_real_kind and 
+       all specifics.
+       * options.c (gfc_init_options, gfc_handle_option): Handle the
+       new -fallow-leading-underscore option.
+
+2007-01-20  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
+
+       PR fortran/30446
+       * options.c (gfc_handle_module_path_options): Path used in -J
+       option is now added to the module search path.
+
+2007-01-20  Richard Guenther  <rguenther@suse.de>
+
+       PR fortran/30223
+       * f95-lang.c (gfc_init_builtin_functions): Provide cbrt and
+       cexpi builtins if we have TARGET_C99_FUNCTIONS.  Provide
+       sincos builtins if the target has sincos.
+
+2007-01-19  Brooks Moses  <brooks.moses@codesourcery.com>
+
+       * intrinsic.texi (MATMUL): Corrected a typo.
+       (MAX): Separated @var arguments.
+       (MIN): Separated @var arguments.
+
+2007-01-19  Brooks Moses  <brooks.moses@codesourcery.com>
+
+       * intrinsic.texi: general whitespace cleanup.
+       (menu): Added TIME8, removed UNMASK.
+       (AINT): Clarified argument requirement.
+       (ANINT): Clarified argument requirement.
+       (CEILING): Clarified argument requirement.
+       (CHAR): Clarified argument requirement.
+       (CMPLX): Clarified argument requirement.
+       (DCMPLX): Clarified argument requirement.
+       (FGET): Line rewrapping.
+       (FLOOR): Clarified argument requirement.
+       (GMTIME): Added documentation.
+       (IAND): Added cross-reference.
+       (IBCLR): Added cross-reference.
+       (IBSET): Added cross-reference.
+       (IEOR): Added cross-reference.
+       (INT): Collapsed examples, clarified argument requirement.
+       (IOR): Added cross-references.
+       (LEN_TRIM): Corrected result kind.
+       (LINK): Added cross-reference.
+       (LLT): Removed "documentation pending".
+       (LOGICAL): Added documentation.
+       (LSHIFT): Added documentation.
+       (LTIME): Added documentation.
+       (MATMUL): Added documentation.
+       (MAX): Added documentation.
+       (MAXLOC): Added documentation.
+       (MAXVAL): Added documentation.
+       (MERGE): Added documentation.
+       (MIN): Added documentation.
+       (MINLOC): Added documentation.
+       (MINVAL): Added documentation.
+       (MVBITS): Moved to correct place, added documentation.
+       (NOT): Added documentation.
+       (PERROR): Added documentation.
+       (RAN): Moved to correct place, added documentation.
+       (REAL): Clarified argument requirement.
+       (RENAME): Added documentation.
+       (RSHIFT): Clarified argument requirement.
+       (SIGN): Corrected table specification.
+       (SYMLNK): Added documentation.
+       (SYSTEM): Added documentation.
+       (TIME): Added documentation.
+       (TIME8): Added section and documentation.
+       (UNMASK): Removed erroneous section.
+
+2007-01-18  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * trans-stmt.c (compute_overall_iter_number): Fix a typo.
+
+2007-01-18  Roger Sayle  <roger@eyesopen.com>
+
+       * trans-expr.c (copyable_array_p): Consider user derived types without
+       allocatable components to be copyable.
+
+2007-01-18  Roger Sayle  <roger@eyesopen.com>
+
+       * trans-stmt.c (compute_overall_iter_number): Enhance to precompute
+       the number of interations in unconditional FORALL nests with constant
+       bounds.
+
+2007-01-18  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
+           Tobias Burnus  <burnus@net-b.de>
+
+       PR libfortran/29649
+       * gfortran.h (gfc_option_t): Add flag_dump_core.
+       * lang.opt: Add -fdump-core option.
+       * invoke.texi: Document the new options.
+       * trans-decl.c (gfc_build_builtin_function_decls): Add new
+         options to the call to set_std.
+       * options.c (gfc_init_options, gfc_handle_option): Set the
+         new options.
+
+2007-01-17  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/30476
+       * module.c (load_generic_interfaces): Make the marking of the
+       symbol as ambiguous conditional on the module names being
+       different.
+       (write_generic): Ensure that the generic interface has a
+       non-NULL module field.
+
+2007-01-16  Roger Sayle  <roger@eyesopen.com>
+
+       PR fortran/30404
+       * trans-stmt.c (forall_info): Remove pmask field.
+       (gfc_trans_forall_loop): Remove NVAR argument, instead assume that
+       NVAR covers all the interation variables in the current forall_info.
+       Add an extra OUTER parameter, which specified the loop header in
+       which to place mask index initializations.
+       (gfc_trans_nested_forall_loop): Remove NEST_FLAG argument.
+       Change the semantics of MASK_FLAG to only control the mask in the
+       innermost loop.
+       (compute_overall_iter_number): Optimize the trivial case of a
+       top-level loop having a constant number of iterations.  Update
+       call to gfc_trans_nested_forall_loop.  Calculate the number of
+       times the inner loop will be executed, not to size of the 
+       iteration space.
+       (allocate_temp_for_forall_nest_1): Reuse SIZE as BYTESIZE when
+       sizeof(type) == 1.  Tidy up.
+       (gfc_trans_assign_need_temp): Remove NEST_FLAG argument from calls
+       to gfc_trans_nested_forall_loop.
+       (gfc_trans_pointer_assign_need_temp): Likewise.
+       (gfc_trans_forall_1): Remove unused BYTESIZE, TMPVAR, SIZEVAR and
+       LENVAR local variables.  Split mask allocation into a separate
+       hunk/pass from mask population.  Use allocate_temp_for_forall_nest
+       to allocate the FORALL mask with the correct size.  Update calls
+       to gfc_trans_nested_forall_loop.
+       (gfc_evaluate_where_mask): Update call to
+       gfc_trans_nested_forall_loop.
+       (gfc_trans_where_2): Likewise.
+
+2007-01-15  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/28172
+       * trans-stmt.c (gfc_trans_call): If it does not have one, get
+       a backend_decl for an alternate return.
+
+       PR fortran/29389
+       * resolve.c (pure_function): Statement functions are pure. Note
+       that this will have to recurse to comply fully with F95.
+
+       PR fortran/29712
+       * resolve.c (resolve_function): Only a reference to the final
+       dimension of an assumed size array is an error in an inquiry
+       function.
+
+       PR fortran/30283
+       * resolve.c (resolve_function): Make sure that the function
+       expression has a type.
+
+2007-01-14  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/30410
+       * trans-decl.c (gfc_sym_mangled_function_id): Module, external
+       symbols must not have the module name prepended.
+
+2007-01-11  Thomas Koenig  <Thomas.Koenig@online.de>
+
+       PR libfortran/30415
+       * iresolve.c (gfc_resolve_maxloc):  If the rank
+       of the return array is nonzero and we process an
+       integer array smaller than default kind, coerce
+       the array to default integer.
+       * iresolve.c (gfc_resolve_minloc):  Likewise.
+
+2007-01-11  Brooks Moses  <brooks.moses@codesourcery.com>
+
+       * simplify.c: Update copyright to 2007.
+       * scanner.c: Same.
+
+2007-01-11  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
+
+       PR fortran/30430
+       * scanner.c (gfc_release_include_path): Free gfc_option.module_dir
+       only once!
+
+2007-01-09  Brooks Moses  <brooks.moses@codesourcery.com>
+
+       * simplify.c (gfc_simplify_ibclr): Fix POS comparison.
+       (gfc_simplify_ibset): Same.
+
+2007-01-09  Brooks Moses  <brooks.moses@codesourcery.com>
+
+       PR 30381
+       PR 30420
+       * simplify.c (convert_mpz_to_unsigned): New function.
+       (convert_mpz_to_signed): New function, largely based on
+       twos_complement().
+       (twos_complement): Removed.
+       (gfc_simplify_ibclr): Add conversions to and from an
+       unsigned representation before bit-twiddling.
+       (gfc_simplify_ibset): Same.
+       (gfc_simplify_ishftc): Add checks for overly large
+       constant arguments, only check the third argument if
+       it's present, carry over high bits into the result as
+       appropriate, and perform the final conversion back to
+       a signed representation using the correct sign bit.
+       (gfc_simplify_not): Removed unnecessary masking.
+
+2007-01-09  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/30408
+       * resolve.c (resolve_code): Use the code->expr character length
+       directly to set length of llen.
+
+2007-01-09  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR fortran/30408
+       * lang.opt: Add Wcharacter_truncation option.
+       * options.c (gfc_init_options): Initialize
+       gfc_option.warn_character_truncation to zero.
+       (gfc_handle_option): Add case for OPT_Wcharacter_truncation.
+
+2007-01-08  Steven G. Kargl  <kargl@gcc.gnu.org>
+
+       * interface.c, intrinsic.c, gfortranspec.c, io.c, f95-lang.c,
+       iresolve.c, match.c:  Update Copyright years.  Whitespace.
+
+2007-01-08  Richard Guenther  <rguenther@suse.de>
+
+       * trans-io.c (transfer_array_desc): Use build_int_cst instead
+       of build_int_cstu.
+
+2007-01-08  Roger Sayle  <roger@eyesopen.com>
+
+       * trans-array.c (constant_array_constructor_p): New function to
+       determine whether an array constructor consists only of constant
+       elements, and if so return it's size.
+       (gfc_build_constant_array_constructor): Construct a statically
+       initialized gfortran array for a given EXPR_ARRAY.
+       (gfc_trans_constant_array_constructor): Efficiently scalarize
+       a constant array constructor.
+       (gfc_trans_array_constructor):  Tidy up use of CONST_STRING.
+       Special case scalarization of constant array constructors, all of
+       whose elements are specified, using constant_array_constructor_p 
+       and gfc_trans_constant_array_constructor.
+       (gfc_conv_scalarized_array_ref): Check whetger info->offset is zero
+       before adding it to index, to avoid creating a NON_LVALUE_EXPR.
+
+2007-01-08  Kazu Hirata  <kazu@codesourcery.com>
+
+       gfortran.texi: Fix typos.
+
+2007-01-07  Steven G. Kargl  <kargl@gcc.gnu.org>
+
+       * decl.c, dump-parse-tree.c, error.c, data.c, expr.c, dependency.c,
+       convert.c:  Update Copyright dates.  Fix whitespace.
+
+2007-01-07  Bernhard Fischer  <aldot@gcc.gnu.org>
+
+       * data.c (gfc_assign_data_value): Fix whitespace.
+
+2007-01-07  Bernhard Fischer  <aldot@gcc.gnu.org>
+
+       * trans-array.c (gfc_trans_create_temp_array, gfc_array_init_size):
+       Commentary typo fix.
+
+2007-01-07  Bernhard Fischer  <aldot@gcc.gnu.org>
+
+       PR fortran/27698
+       * match.c (gfc_match_name): Print diagnostics for invalid
+       character in names.
+
+2007-01-06  Steven G. Kargl  <kargl@gcc.gnu.org>
+
+       * array.c: Fix whitespace in comment table.
+
+2007-01-06  Steven G. Kargl  <kargl@gcc.gnu.org>
+
+       * array.c, bbt.c, check.c:  Update copyright years.  Whitespace.
+
+2007-01-06  Steven G. Kargl  <kargl@gcc.gnu.org>
+
+       * arith.c: Update copyright years.  Whitespace.
+
+2007-01-05  Roger Sayle  <roger@eyesopen.com>
+
+       * trans-expr.c (gfc_trans_assignment_1): New subroutine to scalarize
+       array assignments split out from gfc_trans_assignment.
+       (gfc_trans_array_copy): New function to implement array to array
+       copies via calls to __builtin_memcpy.
+       (copyable_array_p): New helper function to identify an array of
+       simple/POD types, that may be copied/assigned using memcpy.
+       (gfc_trans_assignment): Use gfc_trans_array_copy to handle simple
+       whole array assignments considered suitable by copyable_array_p.
+       Invoke gfc_trans_assignment_1 to perform the fallback scalarization.
+
+2007-01-05  Roger Sayle  <roger@eyesopen.com>
+
+       * trans-array.c (gfc_trans_array_constructor_value): Make the
+       static const "data" array as TREE_READONLY.
+       * trans-stmt.c (gfc_trans_character_select): Likewise.
+
+2007-01-05  Roger Sayle  <roger@eyesopen.com>
+
+       * trans-array.c (gfc_conv_loop_setup):  Test whether the loop
+       stride is one, to avoid fold_build2 introducing a useless
+       NON_LVALUE_EXPR node.
+
+2007-01-05  Tobias Burnus  <burnus@net-b.de>
+
+       * symbol.c (check_conflict): Fix error message.
+
+2007-01-05  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/23232
+       * decl.c (gfc_in_match_data, gfc_set_in_match_data): New
+       functions to signal that a DATA statement is being matched.
+       (gfc_match_data): Call gfc_set_in_match_data on entry and on
+       exit.
+       * gfortran.h : Add prototypes for above.
+       * expr.c (check_init_expr): Avoid check on parameter or
+       variable if gfc_in_match_data is true.
+       (gfc_match_init_expr): Do not call error on non-reduction of
+       expression if gfc_in_match_data is true.
+
+       PR fortran/27996
+       PR fortran/27998
+       * decl.c (gfc_set_constant_character_len): Add boolean arg to
+       flag array constructor resolution.  Warn if string is being
+       truncated.  Standard dependent error if string is padded. Set
+       new arg to false for all three calls to
+       gfc_set_constant_character_len.
+       * match.h : Add boolean arg to prototype for
+       gfc_set_constant_character_len.
+       * gfortran.h : Add warn_character_truncation to gfc_options.
+       * options.c (set_Wall): Set warn_character_truncation if -Wall
+       is set.
+       * resolve.c (resolve_code): Warn if rhs string in character
+       assignment has to be truncated.
+       * array.c (gfc_resolve_character_array_constructor): Set new
+       argument to true for call to gfc_set_constant_character_len.
+
+2007-01-05  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/29624
+       * interface.c (compare_parameter_intent): New function.
+         (check_intents): Support pointer intents.
+       * symbol.c (check_conflict): Support pointer intents,
+         better conflict_std message.
+       * expr.c (gfc_check_assign,gfc_check_pointer_assign):
+         Support pointer intents.
+       * resolve.c (resolve_deallocate_expr,resolve_allocate_expr):
+         Support pointer intents.
+
+2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
+
+       PR 30371
+       * check.c (gfc_check_kill_sub): Add checks for non-scalar
+       arguments.
+
+2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
+
+       * intrinsic.texi: Minor cleanup, reflowing overlong
+       paragraphs, and correcting whitespace.
+
+2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
+
+       * intrinsic.texi (LBOUND): Add documentation.
+       (LGE): Add documentation.
+       (LGT): Add documentation.
+       (LINK): Add documentation.
+       (LLE): Add documentation.
+       (LLT): Add documentation.
+       (LNBLNK): Add documentation.
+       (UBOUND): Add documentation.
+       (UNLINK): Add documentation.
+
+2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
+
+       * intrinsic.texi (IAND): Clarify argument specifications.
+       (IBCLR): Add documentation.
+       (IBITS): Add documentation.
+       (IBSET): Add documentation.
+       (IEOR): Add documentation.
+       (IERRNO): Add documentation.
+       (INDEX): Add documentation.
+       (IOR): Add documentation.
+       (ISHFT): Add documentation.
+       (ISHFTC): Add documentation.
+       (KILL): Add documentation.
+       (LEN_TRIM): Add documentation.
+
+2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
+
+       PR 30235
+       * interface.c (compare_actual_formal): check for
+       alternate returns when iterating over non-present
+       arguments.
+
+2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
+
+       * invoke.texi: Update manpage copyright to include 2007.
+
+2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
+
+       * gfortran.texi: Update copyright to include 2007.
+       * intrinsic.texi: Update copyright to include 2007.
+       * invoke.texi: Update copyright to include 2007.
+
+2007-01-02  Tobias Burnus  <burnus@net-b.de>
+           Jakub Jelinek  <jakub@redhat.com>
+
+       PR fortran/30276
+       * scanner.c (open_included_file): Revert patch.
+         (gfc_open_included_file): Support absolute pathnames.
+         (gfc_open_intrinsic_module): Support absolute pathnames.
+
 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
 
        * gfortran.texi (GNU Fortran and GCC): Rewrite