Steven G. Kargl
b814a64ea1
gfortran.h: Remove GFC_MPFR_TOO_OLD.
...
2006-10-27 Steven G. Kargl <kargl@gcc.gnu.org>
* gfortran.h: Remove GFC_MPFR_TOO_OLD.
* arith.c (arctangent2): Remove function
(gfc_check_real_range): Remove subnormal kludge.
* arith.h: Remove arctangent2 prototype.
* simplify.c: (gfc_simplify_atan2): Remove use of arctangent2.
(gfc_simplify_exponent, gfc_simplify_log, gfc_simplify_nearest,
gfc_simplify_rrspacing, gfc_simplify_spacing): Remove mpfr kludges.
From-SVN: r118120
2006-10-28 23:31:22 +00:00
Steven G. Kargl
cc6d3bde5a
re PR fortran/15441 (RRSPACING broken for denormals)
...
2006-10-06 Steven G. Kargl <kargl@gcc.gnu.org>
* gfortran.h: Define GFC_MPFR_TOO_OLD via mpfr version info.
* arith.c (arctangent, gfc_check_real_range): Use it.
* simplify.c (gfc_simplify_atan2, gfc_simplify_exponent,
gfc_simplify_log, gfc_simplify_nearest): Use it.
PR fortran/15441
PR fortran/29312
* iresolve.c (gfc_resolve_rrspacing): Give rrspacing library
routine hidden precision argument.
(gfc_resolve_spacing): Give spacing library routine hidden
precision, emin - 1, and tiny(x) arguments.
* simplify.c (gfc_simplify_nearest): Remove explicit subnormalization.
(gfc_simplify_rrspacing): Implement formula from Fortran 95 standard.
(gfc_simplify_spacing): Implement formula from Fortran 2003 standard.
* trans-intrinsic.c (gfc_intrinsic_map_t) Declare rrspacing and
spacing via LIBF_FUNCTION
(prepare_arg_info, call_builtin_clz, gfc_conv_intrinsic_spacing,
gfc_conv_intrinsic_rrspacing): Remove functions.
(gfc_conv_intrinsic_function): Remove calls to
gfc_conv_intrinsic_spacing and gfc_conv_intrinsic_rrspacing.
* f95-lang.c (gfc_init_builtin_functions): Remove __builtin_clz,
__builtin_clzl and __builtin_clzll
2006-10-06 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/15441
PR fortran/29312
* configure.ac: Add HAVE_LDEXPF, HAVE_LDEXP, and HAVE_LDEXPL
* m4/spacing.m4: New file. Use new HAVE_* defines.
* m4/rrspacing.m4: Ditto.
* Makefile.am: Handle new files.
* configure: Regenerated.
* Makefile.in: Ditto.
* config.h.in: Ditto.
* generated/spacing_r4.c: Generated.
* generated/spacing_r8.c: Ditto.
* generated/spacing_r10.c: Ditto.
* generated/spacing_r16.c: Ditto.
* generated/rrspacing_r4.c: Ditto.
* generated/rrspacing_r8.c: Ditto.
* generated/rrspacing_r10.c: Ditto.
* generated/rrspacing_r16.c: Ditto.
From-SVN: r117584
2006-10-09 20:55:29 +00:00
Steven G. Kargl
77b558e2d3
arith.c (gfc_check_real_range): Use correct exponent range for subnormal numbers.
...
2006-10-03 Steven G. Kargl <kargl@gcc.gnu.org>
* arith.c (gfc_check_real_range): Use correct exponent range for
subnormal numbers.
From-SVN: r117414
2006-10-03 21:28:05 +00:00
Steven G. Kargl
a40e443fe8
arith.c (gfc_check_integer_range): Disable range checking via -fno-range-check.
...
2006-09-28 Steven G. Kargl <kargl@gcc.gnu.org>
fortran/29147
* arith.c (gfc_check_integer_range): Disable range checking via
-fno-range-check.
From-SVN: r117297
2006-09-29 04:51:53 +00:00
Steven G. Kargl
48c7b142f9
arith.c: Change conditional test for inclusion of arctangent().
...
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
2006-09-28 19:31:37 +00:00
Steven G. Kargl
e48d66a949
re PR fortran/28276 (EXPONENT() broken for real constants)
...
* 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-09-27 20:15:22 +00:00
Steven G. Kargl
7bee49dcaa
data_1.f90: Fix integer oveflow in integer literal constant.
...
2006-09-07 Steven G. Kargl <kargls@comcast.net>
* gfortran.fortran-torture/compile/data_1.f90: Fix integer oveflow
in integer literal constant.
* gfortran.dg/enum_8.f90: Ditto.
* gfortran.dg/g77/20030326-1.f: Ditto.
2006-09-07 Steven G. Kargl <kargls@comcast.net>
* gfortran.h (gfc_integer_info): Eliminate max_int.
* arith.c (gfc_arith_init_1): Remove initialization of max_int.
(gfc_arith_done_1): Remove clearing of max_int.
(gfc_check_integer_range): Fix range chekcing of overflow.
* simplify.c (gfc_simplify_not): Construct mask that was max_int.
From-SVN: r116753
2006-09-07 16:48:18 +00:00
Steven G. Kargl
52ccd5770a
arith.h: Update Copyright dates.
...
2006-08-26 Steven G. Kargl <kargls@comcast.net>
* arith.h: Update Copyright dates. Fix whitespace.
* arith.c: Update Copyright dates. Fix whitespace. Fix comments.
(gfc_arith_done_1): Clean up pedantic_min_int and subnormal.
From-SVN: r116480
2006-08-26 21:55:28 +00:00
Jerry DeLisle
545548257d
re PR fortran/19310 ([4.1 Only] unnecessary error for overflowing results)
...
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
2006-06-18 06:36:45 +00:00
Thomas Koenig
47fe00d8f5
re PR fortran/27715 (Extented ASCII characters lead to wrong "CASE" selection)
...
2006-06-01 Thomas Koenig <Thomas.Koenig@online.de>
PR fortran/27715
* arith.c: Cast the characters from the strings to unsigned
char to avoid values less than 0 for extended ASCII.
2006-06-01 Thomas Koenig <Thomas.Koenig@online.de>
PR fortran/27715
* gfortran.dg/extended_char_comparison_1.f: New test.
From-SVN: r114317
2006-06-01 19:23:56 +00:00
Tobias Schlüter
083cc29303
re PR fortran/14771 (frontend doesn't record parentheses)
...
fortran/
PR fortran/14771
* arith.c (eval_intrinsic): Accept INTRINSIC_PARENTHESES.
* expr.c (check_intrinsic_op): Likewise.
* module.c (mio_expr): Likewise.
testsuite/
PR fortran/14771
* gfortran.dg/parens_4.f90: New.
* gfortran.dg/parens_5.f90: New.
From-SVN: r110840
2006-02-10 19:08:27 +01:00
Tobias Schlüter
25d8f0a283
arith.c (gfc_enum_initializer): New function.
...
fortran/
2005-10-30 Gaurav Gautam <gauravga@noida.hcltech.com>
Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
* arith.c (gfc_enum_initializer): New function.
(gfc_check_integer_range): Made extern.
* decl.c (enumerator_history): New typedef.
(last_initializer, enum_history, max_enum): New variables.
(create_enum_history, gfc_free_enum_history): New functions.
(add_init_expr_to_sym): Call create_enum_history if parsing ENUM.
(variable_decl): Modified to parse enumerator definition.
(match_attr_spec): Add PARAMETER attribute to ENUMERATORs.
(gfc_match_data_decl): Issues error, if match_type_spec do not
return desired return values.
(set_enum_kind, gfc_match_enum, gfc_match_enumerator_def): New
functions.
(gfc_match_end): Deal with END ENUM.
* gfortran.h (gfc_statement): ST_ENUM, ST_ENUMERATOR, ST_END_ENUM
added.
(symbol_attribute): Bit field for enumerator added.
(gfc_options): Add fshort_enums.
(gfc_enum_initializer, gfc_check_integer_range): Add prototypes.
* options.c: Include target.h
(gfc_init_options): Initialize fshort_enums.
(gfc_handle_option): Deal with fshort_enums.
* parse.c (decode_statement): Match ENUM and ENUMERATOR statement.
(gfc_ascii_statement): Deal with the enumerator statements.
(parse_enum): New function to parse enum construct.
(parse_spec): Added case ST_ENUM.
* parse.h (gfc_compile_state): COMP_ENUM added.
(gfc_match_enum, gfc_match_enumerator_def, gfc_free_enum_history):
Prototype added.
* symbol.c (gfc_copy_attr): Copy enumeration attribute.
* lang.opt (fshort-enums): Option added.
testsuite/
2005-10-30 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
* gfortran.dg/enum_10.f90, gfortran.dg/enum_10.c: New test.
2005-10-30 Gaurav Gautam <gauravga@noida.hcltech.com>
* gfortran.dg/enum_1.f90, gfortran.dg/enum_2.f90,
gfortran.dg/enum_3.f90, gfortran.dg/enum_4.f90,
gfortran.dg/enum_5.f90, gfortran.dg/enum_6.f90,
gfortran.dg/enum_7.f90, gfortran.dg/enum_8.f90,
gfortran.dg/enum_9.f90,
gfortran.fortran-torture/compile/enum_1.f90,
gfortran.fortran-torture/execute/enum_1.f90,
gfortran.fortran-torture/execute/enum_2.f90,
gfortran.fortran-torture/execute/enum_3.f90,
gfortran.fortran-torture/execute/enum_4.f90: New tests.
From-SVN: r106246
2005-10-30 19:09:55 +01:00
Francois-Xavier Coudert
4c93c95ac5
re PR fortran/15586 (gfortran should support i18n in its compiler messages)
...
PR fortran/15586
* arith.c (gfc_arith_error): Change message to include locus.
(check_result, eval_intrinsic, gfc_int2int, gfc_real2real,
gfc_real2complex, gfc_complex2real, gfc_complex2complex): Use
the new gfc_arith_error.
(arith_error): Rewrite full error messages instead of building
them from pieces.
* check.c (must_be): Removed.
(type_check, numeric_check, int_or_real_check, real_or_complex_check,
kind_check, double_check, logical_array_check, array_check,
scalar_check, same_type_check, rank_check, kind_value_check,
variable_check, gfc_check_allocated, gfc_check_associated,
gfc_check_cmplx, gfc_check_dcmplx, gfc_check_dot_product,
gfc_check_index, gfc_check_kind, gfc_check_matmul, gfc_check_null,
gfc_check_pack, gfc_check_precision, gfc_check_present,
gfc_check_spread): Rewrite full error messages instead of
building them from pieces.
* decl.c (gfc_match_entry): Rewrite full error messages instead
of building them from pieces.
* parse.c (gfc_state_name): Remove.
* parse.h: Remove prototype for gfc_state_name.
From-SVN: r105844
2005-10-24 09:11:51 +00:00
Francois-Xavier Coudert
31043f6cfc
re PR fortran/15586 (gfortran should support i18n in its compiler messages)
...
PR fortran/15586
* arith.c (gfc_arith_error): Add translation support
for error messages.
* array.c (gfc_match_array_ref): Likewise.
(gfc_match_array_spec): Likewise.
* check.c (must_be): Add msgid convention to third argument.
(same_type_check): Add translation support for error message.
(rank_check): Likewise.
(kind_value_check): Likewise.
(gfc_check_associated): Correct typo.
(gfc_check_reshape): Add translation support for error message.
(gfc_check_spread): Likewise.
* error.c (error_printf): Add nocmsgid convention to argument.
(gfc_warning, gfc_notify_std, gfc_warning_now, gfc_warning_check)
(gfc_error, gfc_error_now): Likewise.
(gfc_status): Add cmsgid convention to argument.
* expr.c (gfc_extract_int): Add translation support
for error messages.
(gfc_check_conformance): Add msgid convention to argument.
(gfc_check_pointer_assign): Correct tabbing.
* gfortran.h: Include intl.h header. Remove prototype
for gfc_article.
* gfortranspec.c: Include intl.h header.
(lang_specific_driver): Add translation support for --version.
* io.c (check_format): Add translation support for
error message.
(format_item_1): Likewise.
(data_desc): Likewise.
* matchexp.c: Likewise.
* misc.c (gfc_article): Remove function.
* module.c (bad_module): Use msgid convention. Add
translation support for error messages.
(require_atom): Add translation support for error messages.
* parse.c (gfc_ascii_statement): Likewise.
(gfc_state_name): Likewise.
* primary.c (match_boz_constant): Reorganise error
messages for translations.
* resolve.c (resolve_entries): Likewise.
(resolve_operator): Add translation support for error messages.
(gfc_resolve_expr): Use msgid convention. Reorganise error
messages for translations.
(resolve_symbol): Add translation support for error messages.
* symbol.c (gfc_add_procedure): Remove use of gfc_article function.
* trans-const.c (gfc_build_string_const): Use msgid convention.
* exgettext: Add a new nocmsgid convention for arguments
that should be marked as no-c-format.
* gcc.pot: Regenerate.
From-SVN: r104372
2005-09-17 18:58:01 +00:00
Feng Wang
d3642f893a
For the 60th anniversary of Chinese people��s Anti-Japan war victory.
...
2005-07-07 Feng Wang <fengwang@nudt.edu.cn>
PR fortran/16531
PR fortran/15966
PR fortran/18781
* arith.c (gfc_hollerith2int, gfc_hollerith2real,
gfc_hollerith2complex, gfc_hollerith2character, gfc_hollerith2logical):
New functions.
(eval_intrinsic): Don't evaluate if Hollerith constant arguments exist.
* arith.h (gfc_hollerith2int, gfc_hollerith2real,
gfc_hollerith2complex, gfc_hollerith2character, gfc_hollerith2logical):
Add prototypes.
* expr.c (free_expr0): Free memery allocated for Hollerith constant.
(gfc_copy_expr): Allocate and copy string if Expr is from Hollerith.
(gfc_check_assign): Enable conversion from Hollerith to other.
* gfortran.h (bt): Add BT_HOLLERITH.
(gfc_expr): Add from_H flag.
* intrinsic.c (gfc_type_letter): Return 'h' for BT_HOLLERITH.
(add_conversions): Add conversions from Hollerith constant to other.
(do_simplify): Don't simplify if Hollerith constant arguments exist.
* io.c (resolve_tag): Enable array in FORMAT tag under GFC_STD_GNU.
* misc.c (gfc_basetype_name): Return "HOLLERITH" for BT_HOLLERITH.
(gfc_type_name): Print "HOLLERITH" for BT_HOLLERITH.
* primary.c (match_hollerith_constant): New function.
(gfc_match_literal_constant): Add match Hollerith before Integer.
* simplify.c (gfc_convert_constant): Add conversion from Hollerith
to other.
* trans-const.c (gfc_conv_constant_to_tree): Use VIEW_CONVERT_EXPR to
convert Hollerith constant to tree.
* trans-io.c (gfc_convert_array_to_string): Get array's address and
length to set string expr.
(set_string): Deal with array assigned Hollerith constant and character
array.
* gfortran.texi: Document Hollerith constants as extention support.
2005-07-07 Feng Wang <fengwang@nudt.edu.cn>
PR fortran/16531
PR fortran/15966
PR fortran/18781
* gfortran.dg/hollerith.f90: New.
* gfortran.dg/hollerith2.f90: New.
* gfortran.dg/hollerith3.f90: New.
* gfortran.dg/hollerith4.f90: New.
* gfortran.dg/hollerith_f95.f90: New.
* gfortran.dg/hollerith_legacy.f90: New.
* gfortran.dg/g77/cpp4.F: New. Port from g77.
2005-07-07 Feng Wang <fengwang@nudt.edu.cn>
PR fortran/16531
* io/transfer.c (formatted_transfer): Enable FMT_A on other types to
support Hollerith constants.
From-SVN: r101688
2005-07-07 07:54:58 +00:00
Kelley Cook
ab57747bb0
Update FSF address.
...
From-SVN: r101310
2005-06-25 00:40:37 +00:00
Roger Sayle
c3a29423de
intrinsic.c (add_conv): No longer take a "simplify" argument as its always gfc_convert_constant...
...
* 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
2005-06-01 19:17:37 +00:00
Steven G. Kargl
cd66d1a11b
arith.c (gfc_arith_init_1): Fix off by one problem;
...
* arith.c (gfc_arith_init_1): Fix off by one problem;
(gfc_check_integer_range): Chop extra bits in subnormal numbers.
From-SVN: r100299
2005-05-28 18:28:31 +00:00
Steven G. Kargl
2d0aa65f1e
gfortran.h (gfc_real_info): Add subnormal struct member.
...
* gfortran.h (gfc_real_info): Add subnormal struct member.
* arith.c (gfc_arith_init_1): Set it.
(gfc_check_real_range): Use it.
* simplify.c (gfc_simplify_nearest): Fix nearest(0.,1.).
From-SVN: r98141
2005-04-14 16:29:31 +00:00
Steven G. Kargl
4c54501beb
Fix illogical logic.
...
From-SVN: r97082
2005-03-26 18:33:53 +00:00
Tobias Schlüter
0de27aacb6
gfortran.h (arith): Remove ARITH_0TO0.
...
* gfortran.h (arith): Remove ARITH_0TO0.
* arith.c (gfc_arith_error): Remove handling of ARITH_0TO0.
(gfc_arith_power): Remove special casing of zero to integral
power zero.
From-SVN: r96737
2005-03-19 20:23:04 +01:00
Steven G. Kargl
5a95dfde57
arith.c (gfc_check_real_range): Remove multiple returns
...
* arith.c (gfc_check_real_range): Remove multiple returns
(check_result): New function.
(gfc_arith_uminus,gfc_arith_plus,gfc_arith_times,
gfc_arith_divide,gfc_arith_power,gfc_arith_minus): Use it.
From-SVN: r95624
2005-02-27 17:32:26 +00:00
Tobias Schlüter
58b03ab29f
gfortran.h (gfc_expr): Move 'operator'...
...
* gfortran.h (gfc_expr): Move 'operator', 'op1', 'op2', and 'uop'
fields into new struct 'op' inside the 'value' union.
* arith.c (eval_intrinsic): Adapt all users.
* dependency.c (gfc_check_dependency): Likewise.
* dump-parse-tree.c (gfc_show_expr): Likewise.
* expr.c (gfc_get_expr): Don't clear removed fields.
(free_expr0, gfc_copy_expr, gfc_type_convert_binary,
gfc_is_constant_expr, simplify_intrinsic_op, check_init_expr,
check_intrinsic_op): Adapt to new field names.
* interface.c (gfc_extend_expr): Likewise. Also explicitly
nullify 'esym' and 'isym' fields of new function call.
* iresolve.c (gfc_resolve_dot_product, gfc_resolve_matmul):
Adapt to renamed structure fields.
* matchexp.c (build_node, match_level_1, match_expr): Likewise.
* module.c (mio_expr): Likewise.
* resolve.c (resolve_operator): Likewise.
(gfc_find_forall_index): Likewise. Only look through operands
if dealing with EXPR_OP
* trans-array.c (gfc_walk_op_expr): Adapt to renamed fields.
* trans-expr.c (gfc_conv_unary_op, gfc_conv_power_op,
gfc_conv_concat_op, gfc_conv_expr_op): Likewise.
From-SVN: r95471
2005-02-23 22:34:11 +01:00
Paul Brook
69029c61aa
re PR fortran/17941 (gfortran: parser chokes on complex literal constant)
...
2004-01-23 Paul Brook <paul@codesourcery.com>
Steven G. Kargl <kargls@comcast.net>
PR fortran/17941
* arith.c (gfc_convert_real): Remove sign handling.
* primary.c (match_digits): Allow whitespace after initial sign.
(match_real_const): Handle signs here. Allow whitespace after
initial sign. Remove dead code.
(match_const_complex_part): Remove.
(match_complex_part): Use match_{real,integer}_const.
(match_complex_constant): Cross-promote integer types.
testsuite/
* gfortran.dg/real_const_1.f: New test.
* gfortran.dg/real_const_2.f90: New test.
* gfortran.dg/complex_int_1.f90: New test.
From-SVN: r94127
2005-01-23 22:29:41 +00:00
Kazu Hirata
ec3781807e
arith.c, [...]: Update copyright.
...
* arith.c, array.c, check.c, decl.c, expr.c, f95-lang.c,
gfortran.h, interface.c, intrinsic.c, io.c, iresolve.c,
match.c, matchexp.c, misc.c, module.c, options.c, parse.c,
scanner.c, simplify.c, symbol.c, trans-array.c, trans-expr.c,
trans-io.c, trans-stmt.c, trans.c: Update copyright.
From-SVN: r93830
2005-01-18 12:11:56 +00:00
Tobias Schlüter
27dfc9c46d
arith.c (arctangent2, [...]): Fix whitespace issues.
...
* arith.c (arctangent2, gfc_arith_init_1, gfc_arith_done_1,
gfc_constant_result, gfc_range_check, gfc_arith_power,
eval_type_intrinsic0, eval_intrinsic_f2, gfc_real2real,
gfc_real2complex, gfc_complex2int, gfc_complex2real,
gfc_complex2complex): Fix whitespace issues.
check.c (must_be, type_check, numeric_check, int_or_real_check,
logical_array_check, array_check, scalar_check, nonoptional_check,
variable_check, dim_check, check_a_kind, gfc_check_a_ikind,
gfc_check_a_xkind, gfc_check_abs, gfc_check_all_any,
gfc_check_allocated, gfc_check_a_p, gfc_check_besn,
gfc_check_btest, gfc_check_char, gfc_check_cmplx, gfc_check_count,
gfc_check_cshift, gfc_check_dcmplx, gfc_check_dble,
gfc_check_digits, gfc_check_dot_product, gfc_check_eoshift,
gfc_check_fnum, gfc_check_g77_math1, gfc_check_huge, gfc_check_i,
gfc_check_iand, gfc_check_ibclr, gfc_check_ibits, gfc_check_ibset,
gfc_check_idnint, gfc_check_ieor, gfc_check_index, gfc_check_int,
gfc_check_ior, gfc_check_ishft, gfc_check_ishftc, gfc_check_kind,
gfc_check_lbound, gfc_check_logical, min_max_args,
gfc_check_min_max_integer, gfc_check_min_max_real,
gfc_check_min_max_double, gfc_check_matmul,
gfc_check_minval_maxval, gfc_check_merge, gfc_check_nearest,
gfc_check_pack, gfc_check_precision, gfc_check_radix,
gfc_check_range, gfc_check_real, gfc_check_repeat,
gfc_check_scale, gfc_check_scan, gfc_check_selected_real_kind,
gfc_check_set_exponent): Fix formatting issues.
(gfc_check_size, gfc_check_sign): Alphabetize function order,
remove whitespace-only line.
(gfc_check_fstat, gfc_check_fstat_sub, gfc_check_stat,
gfc_check_stat_sub, gfc_check_transfer, gfc_check_transpose,
gfc_check_ubound, gfc_check_unpack, gfc_check_verify, gfc_check_x,
gfc_check_cpu_time, gfc_check_date_and_time, gfc_check_mvbits,
gfc_check_random_number, gfc_check_random_seed,
gfc_check_second_sub, gfc_check_system_clock,
gfc_check_getcwd_sub, gfc_check_exit, gfc_check_flush,
gfc_check_umask, gfc_check_umask_sub, gfc_check_unlink,
gfc_check_unlink_sub): Fix formatting issues.
From-SVN: r93093
2005-01-08 23:40:47 +01:00
Kazu Hirata
f7b529fae7
arith.c, [...]: Fix comment formatting.
...
* arith.c, array.c, decl.c, expr.c, f95-lang.c, gfortran.h,
gfortranspec.c, interface.c, intrinsic.c, iresolve.c, match.c,
module.c, parse.c, parse.h, primary.c, resolve.c, scanner.c,
trans-array.c, trans-array.h, trans-expr.c, trans-intrinsic.c,
trans-io.c, trans-stmt.c, trans.h: Fix comment formatting.
From-SVN: r90266
2004-11-08 14:56:41 +00:00
Scott Robert Ladd
14df574739
Added pedantic_min_int to gfc_integer_info Added ARITH_ASYMMETRIC to arith...
...
Added pedantic_min_int to gfc_integer_info
Added ARITH_ASYMMETRIC to arith
Added support for an "asymmetric integer" warning when compiling with pedantic
Set minimum integer values to reflect realities of two's complement signed integers
From-SVN: r89785
2004-10-28 21:43:46 +00:00
Tobias Schlüter
268107218c
* arith.c: Fix formatting issues.
...
From-SVN: r88779
2004-10-08 20:53:13 +02:00
Tobias Schlüter
9d64df18fd
gfortran.h (gfc_default_*_kind): Remove prototypes, add extern variable declaration of same name.
...
* gfortran.h (gfc_default_*_kind): Remove prototypes, add extern
variable declaration of same name.
* arith.c, check.c, decl.c, dump_parse_tree.c, expr.c,
intrinsic.c, io.c, iresolve.c, match.c, options.c, primary.c,
resolve.c, simplify.c, symbol.c, trans-const.c, trans-io.c:
Replace all calls to gfc_default_*_kind with variable accesses.
* trans-types.c: Same as above.
(gfc_default_*_kind_1): Rename to gfc_default_*_kind, remove
static qualifier. Replace all occurences.
(gfc_default_*_kind): Remove functions.
From-SVN: r86662
2004-08-27 16:49:35 +02:00
Richard Henderson
5e8e542ff8
arith.c: Include system.h, not real system headers.
...
* arith.c: Include system.h, not real system headers.
(MPZ_NULL, MPF_NULL, DEF_GFC_INTEGER_KIND, DEF_GFC_LOGICAL_KIND,
DEF_GFC_REAL_KIND, GFC_SP_KIND, GFC_SP_PREC, GFC_SP_EMIN, GFC_SP_EMAX,
GFC_DP_KIND, GFC_DP_PREC, GFC_DP_EMIN, GFC_DP_EMAX, GFC_QP_KIND,
GFC_QP_PREC, GFC_QP_EMIN, GFC_QP_EMAX): Remove.
(gfc_integer_kinds, gfc_logical_kinds, gfc_real_kinds,
gfc_index_integer_kind, gfc_default_integer_kind,
gfc_default_real_kind,gfc_default_double_kind,
gfc_default_character_kind, gfc_default_logical_kind,
gfc_default_complex_kind, validate_integer, validate_real,
validate_logical, validate_character,
gfc_validate_kind): Move to trans-types.c.
(gfc_set_model_kind): Use gfc_validate_kind.
(gfc_set_model): Just copy the current precision to default.
(gfc_arith_init_1): Use mpfr precision 128 for integer setup.
* f95-lang.c (gfc_init_decl_processing): Invoke gfc_init_kinds.
* gfortran.h: Update file commentary.
* trans-types.c (MAX_INT_KINDS, MAX_REAL_KINDS): New.
(gfc_default_integer_kind_1, gfc_default_real_kind_1,
gfc_default_double_kind_1, gfc_default_character_kind_1,
gfc_default_logical_kind_1, gfc_default_complex_kind_1): New.
(gfc_init_kinds): New.
(gfc_init_types): Don't set gfc_index_integer_kind here.
* trans-types.h (gfc_init_kinds): Declare.
* doc/invoke.texi: Clarify DOUBLE PRECISION behaviour wrt -r8.
From-SVN: r86637
2004-08-26 15:19:23 -07:00
Richard Henderson
e7a2d5fb77
arith.c (gfc_validate_kind): Add may_fail argument; abort if false and we don't validate the kind.
...
* arith.c (gfc_validate_kind): Add may_fail argument; abort if
false and we don't validate the kind.
(gfc_check_integer_range, gfc_check_real_range): Update to match.
* check.c (kind_check): Likewise.
* decl.c (gfc_match_old_kind_spec, gfc_match_kind_spec): Likewise.
(match_char_spec, match_logical_spec): Likewise.
* gfortran.h (gfc_validate_kind): Likewise.
* options.c (gfc_handle_option): Likewise.
* primary.c (match_integer_constant, match_real_constant,
match_string_constant, match_logical_constant,
match_const_complex_part): Likewise.
* simplify.c (get_kind, gfc_simplify_bit_size, gfc_simplify_digits,
gfc_simplify_epsilon, gfc_simplify_huge, gfc_simplify_ibclr,
gfc_simplify_ibset, gfc_simplify_ishft, gfc_simplify_ishftc,
gfc_simplify_maxexponent, gfc_simplify_minexponent,
gfc_simplify_nearest, gfc_simplify_not, gfc_simplify_precision,
gfc_simplify_radix, gfc_simplify_range, gfc_simplify_rrspacing,
gfc_simplify_scale, gfc_simplify_spacing, gfc_simplify_tan,
gfc_simplify_tiny): Likewise.
* trans-intrinsic.c (gfc_conv_intrinsic_aint, gfc_conv_intrinsic_mod,
gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_minmaxval,
prepare_arg_info): Likewise.
From-SVN: r86608
2004-08-25 23:07:52 -07:00
Paul Brook
9ca2b0db57
re PR fortran/17190 (MPFR semantics for mpfr_get_z_exp changed)
...
PR fortran/17190
* arith.c (gfc_mpfr_to_mpz): Workaround mpfr bug.
From-SVN: r86581
2004-08-25 21:04:49 +00:00
Steven G. Kargl
f8e566e525
arith.c: Add #define for model numbers.
...
2004-08-06 Steven G. Kargl <kargls@comcast.net>
* arith.c: Add #define for model numbers. Remove global GMP variables.
(natural_logarithm,common_logarithm,exponential,sine,
cosine,arctangent,hypercos,hypersine ): Remove.
(gfc_mpfr_to_mpz,gfc_set_model_kind,gfc_set_model): New functions.
(arctangent2,gfc_arith_init_1,gfc_arith_done_1
gfc_check_real_range, gfc_constant_result, gfc_range_check,
gfc_arith_uminus,gfc_arith_plus, gfc_arith_minus, gfc_arith_times,
gfc_arith_divide,complex_reciprocal,complex_pow_ui,
gfc_arith_power,gfc_compare_expr,compare_complex,gfc_convert_real,
gfc_convert_complex,gfc_int2real,gfc_int2complex,
gfc_real2int,gfc_real2real,gfc_real2complex,
gfc_complex2int,gfc_complex2real,gfc_complex2complex): Convert GMP
to MPFR, use new functions.
* arith.h: Remove extern global variables.
(natural_logarithm,common_logarithm,exponential, sine, cosine,
arctangent,hypercos,hypersine): Remove prototypes.
(arctangent2): Update prototype from GMP to MPFR.
(gfc_mpfr_to_mpz, gfc_set_model_kind,gfc_set_model): Add prototypes.
* dump-parse-tree.c (gfc_show_expr): Convert GMP to MPFR.
* expr.c (free_expr0,gfc_copy_expr): Convert GMP to MPFR.
* gfortran.h (GFC_REAL_BITS): Remove.
(arith): Add ARITH_NAN.
Include mpfr.h. Define GFC_RND_MODE.
Rename GCC_GFORTRAN_H GFC_GFC_H.
(gfc_expr): Convert GMP to MPFR.
* module.c: Add arith.h, correct type in comment.
(mio_gmp_real): Convert GMP to MPFR.
(mio_expr): Use gfc_set_model_kind().
* primary.c: Update copyright date with 2004.
(match_real_constant,match_const_complex_part): Convert GMP to MPFR.
* simplify.c: Remove global GMP variables
(gfc_simplify_abs,gfc_simplify_acos,gfc_simplify_aimag,
gfc_simplify_aint,gfc_simplify_dint,gfc_simplify_anint,
gfc_simplify_dnint,gfc_simplify_asin,gfc_simplify_atan,
gfc_simplify_atan2,gfc_simplify_ceiling,simplify_cmplx,
gfc_simplify_conjg,gfc_simplify_cos,gfc_simplify_cosh,
gfc_simplify_dim,gfc_simplify_dprod,gfc_simplify_epsilon,
gfc_simplify_exp,gfc_simplify_exponent,gfc_simplify_floor,
gfc_simplify_fraction,gfc_simplify_huge,gfc_simplify_int,
gfc_simplify_ifix,gfc_simplify_idint,gfc_simplify_log,
gfc_simplify_log10,simplify_min_max,gfc_simplify_mod,
gfc_simplify_modulo,gfc_simplify_nearest,simplify_nint,
gfc_simplify_rrspacing,gfc_simplify_scale,
gfc_simplify_set_exponent,gfc_simplify_sign,gfc_simplify_sin,
gfc_simplify_sinh,gfc_simplify_spacing,gfc_simplify_sqrt,
gfc_simplify_tan,gfc_simplify_tanh,gfc_simplify_tiny,
gfc_simplify_init_1,gfc_simplify_done_1): Convert GMP to MPFR.
Use new functions.
* trans-const.c (gfc_conv_mpfr_to_tree): Rename from
gfc_conv_mpf_to_tree. Convert it to use MPFR
(gfc_conv_constant_to_tree): Use it.
* trans-const.h: Update prototype for gfc_conv_mpfr_to_tree().
* trans-intrinsic.c: Add arith.h, remove gmp.h
(gfc_conv_intrinsic_aint,gfc_conv_intrinsic_mod): Convert GMP to MPFR.
From-SVN: r85652
2004-08-06 20:36:05 +00:00
Steven G. Kargl
160874e4cd
arith.c (gfc_range_check): correct complex underflow.
...
2004-06-20 Steven G. Kargl <kargls@comcast.net>
* arith.c (gfc_range_check): correct complex underflow.
From-SVN: r83417
2004-06-20 20:34:25 +02:00
Steven G. Kargl
2d8b59dfd5
invoke.texi: Document -Wunderflow and spell check.
...
* invoke.texi: Document -Wunderflow and spell check.
* lang.opt: Add Wunderflow.
* gfortran.h (gfc_option_t): Add warn_underflow option.
* options.c (gfc_init_options, set_Wall): Use it.
* primary.c (match_real_constant): Explicitly handle UNDERFLOW.
* arith.c (gfc_arith_uminus, gfc_arith_plus, gfc_arith_minus,
gfc_arith_times, gfc_arith_divide, gfc_arith_power, gfc_real2real,
gfc_real2complex, gfc_complex2real, gfc_complex2complex): Ditto.
* arith.c (common_logarithm): Fix typo in comment.
From-SVN: r82130
2004-05-22 11:03:17 +00:00
Steve Kargl
e332b68d76
arith.c (gfc_int2complex): Fix incorrect range checking.
...
2004-05-17 Steve Kargl <kargls@comcast.net>
* arith.c (gfc_int2complex): Fix incorrect range checking.
From-SVN: r81985
2004-05-18 13:09:29 +02:00
Steve Kargl
f12f786b86
arith.c (gfc_arith_power): Complex number raised to 0 power is 1.
...
2004-05-17 Steve Kargl <kargls@comcast.net>
* arith.c (gfc_arith_power): Complex number raised to 0 power is 1.
From-SVN: r81959
2004-05-18 01:54:09 +02:00
Steve Kargl
e876acbd25
arith.c (gfc_real2complex): Range checking wrong part of complex number.
...
2004-05-17 Steve Kargl <kargls@comcast.net>
* arith.c (gfc_real2complex): Range checking wrong part of complex
number.
From-SVN: r81957
2004-05-18 01:19:47 +02:00
Paul Brook
67a459f37c
* arith.c (gfc_range_check): Fix logic error.
...
From-SVN: r81918
2004-05-16 18:01:38 +00:00
Steve Kargl
1ab106cdc4
* arith.c: Fix comment typos.
...
From-SVN: r81912
2004-05-16 11:26:25 +00:00
Tobias Schlüter
9fc4d79ba4
Make-lang.in, [...]: Update copyright years and boilerplate.
...
* Make-lang.in, arith.c, arith.h, array.c, bbt.c, check.c,
decl.c, dependency.c, dependency.h, dump-parse-tree.c, error.c,
expr.c, f95-lang.c, gfortran.h, interface.c, intrinsic.c,
intrinsic.h, io.c, iresolve.c, lang-specs.h, match.c, match.h,
matchexp.c, misc.c, module.c, options.c, parse.c, parse.h,
primary.c, resolve.c, scanner.c, simplify.c, st.c, symbol.c,
trans-array.c, trans-array.h, trans-common.c, trans-const.c,
trans-const.h, trans-decl.c, trans-expr.c, trans-intrinsic.c,
trans-io.c, trans-stmt.c, trans-stmt.h, trans-types.c,
trans-types.h, trans.c, trans.h: Update copyright years and
boilerplate.
* data.c: Likewise, also removed two whitespace-only lines.
* gfortranspec.c, lang.opt: Update copyright years.
From-SVN: r81839
2004-05-14 15:00:04 +02:00
Diego Novillo
6de9cd9a88
Merge tree-ssa-20020619-branch into mainline.
...
From-SVN: r81764
2004-05-13 02:41:07 -04:00