PR fortran/29391
PR fortran/29489
* simplify.c (simplify_bound): Fix the simplification of
LBOUND/UBOUND intrinsics.
* trans-intrinsic.c (simplify_bound): Fix the logic, and
remove an erroneous assert.
* gcc/testsuite/gfortran.dg/bound_2.f90: Add more checks.
* gcc/testsuite/gfortran.dg/bound_3.f90: New test.
From-SVN: r118888
2006-09-28 Steven G. Kargl <kargl@gcc.gnu.org>
* arith.c: Change conditional test for inclusion of arctangent().
(gfc_check_real_range): Change conditional test for use of
mpfr_subnormalize.
* simplify.c (gfc_simplify_atan2): Fix conditional for use of
mpfr_atan2() instead of arctangent().
(gfc_simplify_exponent): Fix conditional for use of mpfr_get_exp().
(gfc_simplify_log): Fix conditional for use of mpfr_atan2() instead
of arctangent().
(gfc_simplify_nearest): Fix conditional for use of mpfr_nextafter().
From-SVN: r117289
* configure.in: Check for GMP 4.1 or newer. Check for MPFR 2.2.0
or newer.
* configure: Regenerated.
* doc/install.texi: Document required versions of GMP and MPFR.
* fortran/arith.c: Conditionally include arctangent2().
(gfc_check_real_range): Use mpfr_subnormalize in preference to local
hack.
* fortran/trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl): Append
l for long double functions.
* fortran/simplify.c: Wrap Copyright to new line.
(gfc_simplify_atan2): Use mpfr_atan2 in preference to arctangent2().
(gfc_simplify_log): Ditto.
PR fortran/28276
* fortran/simplify.c (gfc_simplify_exponent): Use mpfr_get_exp in
preference to broken local hack.
PR fortran/27021
* fortran/simplify.c (gfc_simplify_nearest): Use mpfr_nexttoward and
mpfr_subnormalize to handle numbers near zero in preference to broken
local hack.
PR fortran/28276
* testsuite/gfortran.dg/exponent_1.f90: New test.
PR fortran/27021
* testsuite/gfortran.dg/nearest_1.f90: New test.
From-SVN: r117257
2006-06-20 Steven G. Kargl <kargls@comcast.net>
* simplify.c (gfc_simplify_rrspacing): Initialize and clear mpfr_t
variable.
* gfortran.dg/rrspacing_1.f90: New test.
From-SVN: r114821
2006-06-20 Paul Thomas <pault@gcc.gnu.org>
PR fortran/25049
PR fortran/25050
* check.c (non_init_transformational): New function.
(find_substring_ref): New function to signal use of disallowed
transformational intrinsic in an initialization expression.
(gfc_check_all_any): Call previous if initialization expr.
(gfc_check_count): The same.
(gfc_check_cshift): The same.
(gfc_check_dot_product): The same.
(gfc_check_eoshift): The same.
(gfc_check_minloc_maxloc): The same.
(gfc_check_minval_maxval): The same.
(gfc_check_gfc_check_product_sum): The same.
(gfc_check_pack): The same.
(gfc_check_spread): The same.
(gfc_check_transpose): The same.
(gfc_check_unpack): The same.
PR fortran/18769
*intrinsic.c (add_functions): Add gfc_simplify_transfer.
*intrinsic.h : Add prototype for gfc_simplify_transfer.
*simplify.c (gfc_simplify_transfer) : New function to act as
placeholder for eventual implementation. Emit error for now.
PR fortran/16206
* expr.c (find_array_element): Eliminate condition on length of
offset. Add bounds checking. Rearrange exit. Return try and
put gfc_constructor result as an argument.
(find_array_section): New function.
(find_substring_ref): New function.
(simplify_const_ref): Add calls to previous.
(simplify_parameter_variable): Return on NULL expr.
(gfc_simplify_expr): Only call gfc_expand_constructor for full
arrays.
PR fortran/20876
* match.c (gfc_match_forall): Add missing locus to gfc_code.
2006-06-20 Paul Thomas <pault@gcc.gnu.org>
PR libfortran/28005
* m4/matmul.m4: aystride = 1 does not uniquely detect the
presence of a temporary transpose; an array element in the
first dimension produces the same signature. Detect this
using the rank of a and add specific code.
* generated/matmul_r4.c: Regenerate.
* generated/matmul_r8.c: Regenerate.
* generated/matmul_r10.c: Regenerate.
* generated/matmul_r16.c: Regenerate.
* generated/matmul_c4.c: Regenerate.
* generated/matmul_c8.c: Regenerate.
* generated/matmul_c10.c: Regenerate.
* generated/matmul_c16.c: Regenerate.
* generated/matmul_i4.c: Regenerate.
* generated/matmul_i8.c: Regenerate.
* generated/matmul_i16.c: Regenerate.
2006-06-20 Paul Thomas <pault@gcc.gnu.org>
PR fortran/16206
* gfortran.dg/array_initializer_1.f90: New test.
PR fortran/28005
* gfortran.dg/matmul_3.f90: New test.
From-SVN: r114802
2006-06-18 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/19310
* arith.c (gfc_range_check): Return ARITH_OK if -fno-range-check. Add
return of ARITH_NAN, ARITH_UNDERFLOW, and ARITH_OVERFLOW.
(gfc_arith_divide): If -fno-range-check allow mpfr to divide by zero.
* gfortran.h (gfc_option_t): Add new flag.
* invoke.texi: Document new flag.
* lang.opt: Add option -frange-check.
* options.c (gfc_init_options): Initialize new flag.
(gfc_handle_options): Set flag if invoked.
* simplify.c (range_check): Add error messages for
overflow, underflow, and other errors.
* trans-const.c (gfc_conv_mpfr_to_tree): Build NaN and Inf from mpfr
result.
From-SVN: r114752
PR fortran/25681
* simplify.c (simplify_len): Character variables with constant
length can be simplified.
* gfortran.df/char_type_len.f90: New test.
From-SVN: r113376
2006-03-06 Steven G. Kargl <kargls@comcast.net>
* simplify.c (gfc_simplify_verify): Fix return when SET=''.
* gfortran.dg/verify_2.f90: New test.
From-SVN: r111791
fortran/
2006-01-09 Feng Wang <fengwang@nudt.edu.cn>
* simplify.c (gfc_simplify_char): Use UCHAR_MAX instead of literal
constant.
(gfc_simplify_ichar): Get the result from unsinged char and in the
range 0 to UCHAR_MAX instead of CHAR_MIN to CHAR_MAX.
Testsuite ChangeLog entry:
2006-01-09 Feng Wang <fengwang@nudt.edu.cn>
* gfortran.dg/intrinsic_i_char.f90: New test.
From-SVN: r109488
PR fortran/23912
* iresolve.c (gfc_resolve_dim, gfc_resolve_mod,
gfc_resolve_modulo): When arguments have different kinds, fold
the lower one to the largest kind.
* check.c (gfc_check_a_p): Arguments of different kinds is not
a hard error, but an extension.
* simplify.c (gfc_simplify_dim, gfc_simplify_mod,
gfc_simplify_modulo): When arguments have different kinds, fold
the lower one to the largest kind.
* gfortran.dg/modulo_1.f90: New test.
From-SVN: r107566
PR fortran/19269
* simplify.c (gfc_simplify_transpose): Set the result's typespec from
the source, not the first element of the return value.
From-SVN: r103982
2005-06-24 Jerry DeLisle <jvdelisle@verizon.net>
PR fortran/21915
* gfortran.h: Add symbols for new intrinsics
* intrinsic.c: Add acosh, asinh, and atanh
* intrinsic.h: Add prototypes
* iresolve.c (gfc_resolve_acosh): New function
(gfc_resolve_asinh): New
(gfc_resolve_atanh): New
* mathbuiltins.def: Add defines
* simplify.c (gfc_simplify_acosh): New function
(gfc_simplify_asinh): New
(gfc_simplify_atanh): New
From-SVN: r101304
* intrinsic.c (add_conv): No longer take a "simplify" argument as
its always gfc_convert_constant, instead take a "standard" argument.
(add_conversions): Change all existing calls of add_conv to pass
GFC_STD_F77 as appropriate. Additionally, if we're allowing GNU
extensions support integer-logical and logical-integer conversions.
(gfc_convert_type_warn): Warn about use the use of these conversions
as a extension when appropriate, i.e. with -pedantic.
* simplify.c (gfc_convert_constant): Add support for integer to
logical and logical to integer conversions, using gfc_int2log and
gfc_log2int.
* arith.c (gfc_log2int, gfc_int2log): New functions.
* arith.h (gfc_log2int, gfc_int2log): Prototype here.
* gfortran.texi: Document this new GNU extension.
* gfortran.dg/logint-1.f: New test case.
* gfortran.dg/logint-2.f: Likewise.
* gfortran.dg/logint-3.f: Likewise.
From-SVN: r100461
* check.c (gfc_check_selected_int_kind): New function.
* intrinsic.h: Prototype it.
* intrinsic.c (add_function): Use it.
* simplify (gfc_simplify_ceiling,gfc_simplify_floor): Change
BT_REAL to BT_INTEGER and use gfc_default_integer_kind.
From-SVN: r95291
2004-10-03 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
* simplify.c (range_check): Remove blank line at beginning of function.
(gfc_simplify_dint): Same at end of function.
(gfc_simplify_exponent, gfc_simplify_fraction): Simplify calculations.
(gfc_simplify_bound): Fix indentation.
(gfc_simplify_log10): Simplify calculation.
(gfc_simplify_min, gfc_simplify_max): Remove blank line at beginning
of function.
(gfc_simplify_nearest): Same at end of function.
(gfc_simplify_nint, gfc_simplify_idnint): Same at beginning of
function.
(gfc_simplify_rrspacing, gfc_simplify_set_exponent,
gfc_simplify_spacing): Simplify calulations.
From-SVN: r88447