2007-01-20 Brooks Moses * 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 * 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 * 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 * 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 * 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 * 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 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 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 * intrinsic.texi (MATMUL): Corrected a typo. (MAX): Separated @var arguments. (MIN): Separated @var arguments. 2007-01-19 Brooks Moses * 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 * trans-stmt.c (compute_overall_iter_number): Fix a typo. 2007-01-18 Roger Sayle * trans-expr.c (copyable_array_p): Consider user derived types without allocatable components to be copyable. 2007-01-18 Roger Sayle * 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 Tobias Burnus 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 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 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 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 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 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 * simplify.c: Update copyright to 2007. * scanner.c: Same. 2007-01-11 Francois-Xavier Coudert PR fortran/30430 * scanner.c (gfc_release_include_path): Free gfc_option.module_dir only once! 2007-01-09 Brooks Moses * simplify.c (gfc_simplify_ibclr): Fix POS comparison. (gfc_simplify_ibset): Same. 2007-01-09 Brooks Moses 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 PR fortran/30408 * resolve.c (resolve_code): Use the code->expr character length directly to set length of llen. 2007-01-09 Jerry DeLisle 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 * interface.c, intrinsic.c, gfortranspec.c, io.c, f95-lang.c, iresolve.c, match.c: Update Copyright years. Whitespace. 2007-01-08 Richard Guenther * trans-io.c (transfer_array_desc): Use build_int_cst instead of build_int_cstu. 2007-01-08 Roger Sayle * 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 gfortran.texi: Fix typos. 2007-01-07 Steven G. Kargl * 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 * data.c (gfc_assign_data_value): Fix whitespace. 2007-01-07 Bernhard Fischer * trans-array.c (gfc_trans_create_temp_array, gfc_array_init_size): Commentary typo fix. 2007-01-07 Bernhard Fischer PR fortran/27698 * match.c (gfc_match_name): Print diagnostics for invalid character in names. 2007-01-06 Steven G. Kargl * array.c: Fix whitespace in comment table. 2007-01-06 Steven G. Kargl * array.c, bbt.c, check.c: Update copyright years. Whitespace. 2007-01-06 Steven G. Kargl * arith.c: Update copyright years. Whitespace. 2007-01-05 Roger Sayle * 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 * 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 * 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 * symbol.c (check_conflict): Fix error message. 2007-01-05 Paul Thomas 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 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 PR 30371 * check.c (gfc_check_kill_sub): Add checks for non-scalar arguments. 2007-01-04 Brooks Moses * intrinsic.texi: Minor cleanup, reflowing overlong paragraphs, and correcting whitespace. 2007-01-04 Brooks Moses * 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 * 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 PR 30235 * interface.c (compare_actual_formal): check for alternate returns when iterating over non-present arguments. 2007-01-04 Brooks Moses * invoke.texi: Update manpage copyright to include 2007. 2007-01-04 Brooks Moses * 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 Jakub Jelinek 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 * gfortran.texi (GNU Fortran and GCC): Rewrite 2007-01-03 Brooks Moses * gfortran.texi (Introduction): Lower "Part I: Introduction" to a chapter, renumber Parts II and III to Parts I and II. * intrinsic.texi (Introduction): Rename to "Introduction to Intrinsics" to avoid conflict with the new chapter. 2007-01-03 Brooks Moses * intrinsic.texi (Introduction): Rewrite first paragraph. 2007-01-03 Brooks Moses * invoke.texi (OpenMP): Added index entry. * gfortran.texi (title page): Removed erroneous '*'. 2007-01-03 Brooks Moses * gfortran.texi (GFORTRAN_DEFAULT_RECL): Added units to description. (Extensions): Miscellaneous minor rewriting and copyediting. (BOZ-literal constants): Renamed from Hexadecimal constants. (Hollerith constants support): Added explanation and suggestions for standard-conforming modern equivalents. 2007-01-03 Brooks Moses * intrinsic.texi: Improvements to index entries; change @findex entries to @cindex entries. * invoke.texi: Standardize and improve index entries. * gfortran.texi: Fix @code in one index entry. 2007-01-03 Brooks Moses * invoke.texi: Change @code-type macros to appropriate variants (@command, @option, etc.) * gfortran.texi: Same. 2007-01-03 Brooks Moses * intrinsic.texi: Various minor cleanups. 2007-01-02 Steven G. Kargl * trans-intrinsic.c (gfc_conv_intrinsic_ibits): Fix call to build_int_cst. 2007-01-02 Tobias Burnus PR fortran/30276 * scanner.c (open_included_file): Support full-path filenames. 2007-01-02 Paul Thomas PR fortran/20896 * interface.c (check_sym_interfaces): Remove call to resolve_global_procedure. gfortran.h : Remove prototype for resolve_global_procedure. resolve.c (resolve_global_procedure): Add static attribute to function declaration. 2007-01-01 Steven G. Kargl * ChangeLog: Copy to ... * ChangeLog-2006: here.