Commit Graph

533 Commits

Author SHA1 Message Date
Steven G. Kargl
4010308ce5 spacing.m4: Use scalbn[f,l] if ldexp[f,l] is unavailable.
2006-10-13  Steven G. Kargl  <kargl@gcc.gnu.org>

        * m4/spacing.m4: Use scalbn[f,l] if ldexp[f,l] is unavailable.
        * m4/rrspacing.m4: Ditto.
        * generated/spacing_r4.c: Regenerated.
        * 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: r117703
2006-10-13 19:08:37 +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
François-Xavier Coudert
ca0551f028 Makefile.am: Add intrinsics/move_alloc.c, ommited in Paul's previous commit.
* Makefile.am: Add intrinsics/move_alloc.c, ommited in Paul's
	previous commit.
	* Makefile.in: Regenerate.

From-SVN: r117561
2006-10-08 19:07:29 +00:00
Francois-Xavier Coudert
456d9b174d hyper.c: Remove file.
* intrinsics/hyper.c: Remove file.
	* intrinsics/c99_functions.c: Add fallback functions asinhf,
	acoshf and atanhf.
	* Makefile.am: Remove file intrinsics/hyper.c.
	* Makefile.in: Regenerate.

From-SVN: r117560
2006-10-08 18:39:18 +00:00
Francois-Xavier Coudert
22ae47e29c c99_protos.h: Correctly protect definitions of prototypes for asinhf...
* c99_protos.h: Correctly protect definitions of prototypes for
	asinhf, acoshf and atanhf to be the same as in intrinsics/hyper.c.

From-SVN: r117559
2006-10-08 17:16:38 +00:00
Paul Thomas
5046aff56b [multiple changes]
2006-10-05  Erik Edelmann <edelmann@gcc.gnu.org>
	    Paul Thomas <pault@gcc.gnu.org>

	PR fortran/20541
	* interface.c (gfc_compare_derived_types): Add comparison of
	the allocatable field.
	* intrinsic.c (add_subroutines): Add MOVE_ALLOC.
	* trans-expr.c (gfc_conv_aliased_arg, gfc_trans_subarray_assign,
	gfc_trans_subcomponent_assign, gfc_conv_string_parameter,
	gfc_trans_scalar_assign): Add extra arguments l_is_temp
	and r_is_var to references to latter function.
	(gfc_conv_function_call): Add enum for types of argument and
	an associated variable parm_kind. Deallocate components of
	INTENT(OUT) and non-variable arrays.
	(gfc_trans_subcomponent_assign): Add block to assign arrays
	to allocatable components.
	(gfc_trans_scalar_assign): Add block to handle assignments of
	derived types with allocatable components, using the above new
	arguments to control allocation/deallocation of memory and the
	copying of allocated arrays.
	* trans-array.c (gfc_array_allocate): Remove old identification 
	of pointer and replace with that of an allocatable array. Add
	nullify of structures with allocatable components. 
	(gfc_conv_array_initializer): Treat EXPR_NULL.
	(gfc_conv_array_parameter): Deallocate allocatable components
	of non-variable structures.
	(gfc_trans_dealloc_allocated): Use second argument of library
	deallocate to inhibit, without error, freeing NULL pointers.
	(get_full_array_size): New function to return the size of a
	full array.
	(gfc_duplicate_allocatable): New function to allocate and copy
	allocated data.
	(structure_alloc_comps): New recursive function to deallocate,
	nullify or copy allocatable components.
	(gfc_nullify_alloc_comp, gfc_deallocate_alloc_comp,
	gfc_copy_alloc_comp): New interface functions to call previous.
	(gfc_trans_deferred_array): Add the code to nullify allocatable
	components, when entering scope, and to deallocate them on
	leaving. Do not call gfc_trans_static_array_pointer and return
	for structures with allocatable components and default
	initializers.
	* symbol.c (gfc_set_component_attr): Set allocatable field.
	(gfc_get_component_attr): Set the allocatable attribute.
	* intrinsic.h : Prototype for gfc_check_move_alloc.
	* decl.c (build_struct): Apply TR15581 constraints for
	allocatable components.
	(variable_decl): Default initializer is always NULL for
	allocatable components.
	(match_attr_spec): Allow, or not, allocatable components,
	according to the standard in force.
	* trans-array.h : Prototypes for gfc_nullify_alloc_comp,
	gfc_deallocate_alloc_comp, gfc_copy_alloc_comp and
	gfc_duplicate_allocatable.
	* gfortran.texi : Add mention of TR15581 extensions.
	* gfortran.h : Add attribute alloc_comp, add
	gfc_components field allocatable and add the prototype
	for gfc_expr_to_initialize.
	* trans-stmt.c (generate_loop_for_temp_to_lhs,
	generate_loop_for_rhs_to_temp, gfc_trans_where_assign,
	gfc_trans_where_3): Add extra arguments to calls to
	gfc_trans_scalar_assign and set appropriately.
	(gfc_trans_allocate): Nullify allocatable components.
	(gfc_trans_deallocate): Deallocate to ultimate allocatable
	components but stop at ultimate pointer components.
	* module.c (mio_symbol_attribute, mio_symbol_attribute,
	mio_component): Add module support for allocatable
	components.
	* trans-types.c (gfc_get_derived_type): Treat allocatable
	components.
	* trans.h : Add two boolean arguments to
	gfc_trans_scalar_assign.
	* resolve.c (resolve_structure_cons): Check conformance of
	constructor element and the component.
	(resolve_allocate_expr): Add expression to nullify the
	constructor expression for allocatable components.
	(resolve_transfer): Inhibit I/O of derived types with
	allocatable components.
	(resolve_fl_derived): Skip check of bounds of allocatable
	components.
	* trans-decl.c (gfc_get_symbol_decl): Add derived types
	with allocatable components to deferred variable.
	(gfc_trans_deferred_vars): Make calls for derived types
	with allocatable components to gfc_trans_deferred_array.
	(gfc_generate_function_code): Nullify allocatable
	component function result on entry.
	* parse.c (parse_derived): Set symbol attr.allocatable if
	allocatable components are present.
	* check.c (gfc_check_allocated): Enforce attr.allocatable
	for intrinsic arguments.
	(gfc_check_move_alloc): Check arguments of move_alloc.
	* primary.c (gfc_variable_attr): Set allocatable attribute.
	* intrinsic.texi : Add index entry and section for
	for move_alloc.

	PR fortran/29115
	* resolve.c (resolve_structure_cons): It is an error if the
	pointer component elements of a derived type constructor are
	not pointer or target.


	PR fortran/29211
	* trans-stmt.c (generate_loop_for_temp_to_lhs,
	generate_loop_for_rhs_to_temp): Provide a string length for
	the temporary by copying that of the other side of the scalar
	assignment.


2006-10-05  Paul Thomas  <pault@gcc.gnu.org>
	    Erik Edelmann  <edelmann@gcc.gnu.org>

	PR libgfortran/20541
	* Makefile.in : Add move_alloc.
	* intrinsics/move_alloc.c: New function.
	* Makefile.am : Add move_alloc.



2006-10-05  Erik Edelmann  <edelmann@gcc.gnu.org>
	    Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/20541
	* gfortran.dg/alloc_comp_basics_1.f90: New test.
	* gfortran.dg/alloc_comp_basics_2.f90: New test.
	* gfortran.dg/alloc_comp_assign_1.f90: New test.
	* gfortran.dg/alloc_comp_assign_2.f90: New test.
	* gfortran.dg/alloc_comp_assign_3.f90: New test.
	* gfortran.dg/alloc_comp_assign_4.f90: New test.
	* gfortran.dg/alloc_comp_constraint_1.f90: New test.
	* gfortran.dg/alloc_comp_constraint_2.f90: New test.
	* gfortran.dg/alloc_comp_constraint_3.f90: New test.
	* gfortran.dg/alloc_comp_constructor_1.f90: New test.
	* gfortran.dg/alloc_comp_constructor_2.f90: New test.
	* gfortran.dg/alloc_comp_initializer_1.f90: New test.
	* gfortran.dg/alloc_comp_std.f90: New test.
	* gfortran.dg/move_alloc.f90: New test.

	PR fortran/29115
	* gfortran.dg/derived_constructor_comps_2.f90: New test.

	PR fortran/29211
	* gfortran.dg/forall_char_dependencies_1.f90: New test.

From-SVN: r117558
2006-10-08 16:21:55 +00:00
Francois-Xavier Coudert
28f8c9e97b re PR libfortran/26540 ([4.1 only] intrinsics/signal.c warnings)
PR libfortran/26540
	* intrinsics/signal.c (signal_sub, signal_sub_int): Use intptr_t
	if available to cast function pointers to int and back.
	* configure.ac: Check for intptr_t.
	* config.h.in: Regenerate.
	* configure: Regenerate.

From-SVN: r117556
2006-10-08 14:27:22 +00:00
François-Xavier Coudert
0e7e7e6e82 re PR fortran/16580 ([4.1 only] gfortran ICE on test g77.f-torture/execute/intrinsic77.f)
PR fortran/16580
	PR fortran/29288

	* gcc/fortran/intrinsic.c (add_sym): Define the actual_ok when a
	gfc_intrinsic_sym structure is filled.
	(gfc_intrinsic_actual_ok): New function.
	(add_sym_0s, add_sym_1s, add_sym_2s, add_sym_3s, add_sym_4s,
	add_sym_5s): Intrinsic subroutines are not allowed as actual
	arguments, so we remove argument actual_ok.
	(add_functions): Correct the values for actual_ok of all intrinsics.
	(add_subroutines): Remove the actual_ok argument, which was never used.
	* gcc/fortran/intrinsic.h (gfc_intrinsic_actual_ok): New prototype.
	* gcc/fortran/gfortran.h (gfc_resolve_index_func): New prototype.
	* gcc/fortran/resolve.c (resolve_actual_arglist): Check whether
	an intrinsic used as an argument list is allowed there.
	* gcc/fortran/iresolve.c (gfc_resolve_index_func): New function.
	(gfc_resolve_len): Change intrinsic function name to agree with
	libgfortran.
	* gcc/fortran/trans-decl.c (gfc_get_extern_function_decl): Add
	new case, because some specific intrinsics take 3 arguments.
	* gcc/fortran/intrinsic.texi: DIMAG is a GNU extension.

	* libgfortran/Makefile.am: Add the new files to the build
	process, and rules to build them.
	* libgfortran/Makefile.in: Regenerate.
	* libgfortran/m4/misc_specifics.m4: New file.
	* libgfortran/m4/specific.m4: Add new special cases for function
	with complex argument and real result, like abs_c* and aimag_c*.
	* libgfortran/intrinsics/f2c_specifics.F90: Add specifics for
	AIMAG, ASINH, ACOSH and ATANH.
	* libgfortran/generated/_aimag_c4.F90: New file.
	* libgfortran/generated/_aimag_c8.F90: New file.
	* libgfortran/generated/_asinh_r10.F90: New file.
	* libgfortran/generated/_acosh_r16.F90: New file.
	* libgfortran/generated/_aimag_c10.F90: New file.
	* libgfortran/generated/_atanh_r16.F90: New file.
	* libgfortran/generated/_acosh_r4.F90: New file.
	* libgfortran/generated/_acosh_r8.F90: New file.
	* libgfortran/generated/_asinh_r4.F90: New file.
	* libgfortran/generated/_asinh_r8.F90: New file.
	* libgfortran/generated/_asinh_r16.F90: New file.
	* libgfortran/generated/_atanh_r4.F90: New file.
	* libgfortran/generated/_atanh_r8.F90: New file.
	* libgfortran/generated/_acosh_r10.F90: New file.
	* libgfortran/generated/misc_specifics.F90: New file.
	* libgfortran/generated/_aimag_c16.F90: New file.
	* libgfortran/generated/_atanh_r10.F90: New file.

	* gcc/testsuite/gfortran.fortran-torture/execute/specifics.f90:
	Add tests for using all possible intrinsics as actual arguments.
	* gcc/testsuite/gfortran.dg/specifics_1.f90: Add tests for using
	all possible intrinsics as actual arguments.
	* gcc/testsuite/gfortran.dg/specifics_2.f90: New file.
	* gcc/testsuite/gfortran.dg/specifics_3.f90: New file.

From-SVN: r117534
2006-10-07 13:34:16 +00:00
Danny Smith
76be85be9c acinclude.m4 (HAVE_ATTRIBUTE_ALIAS): Remove __USER_LABEL_PREFIX__ from test.
* acinclude.m4 (HAVE_ATTRIBUTE_ALIAS): Remove __USER_LABEL_PREFIX__ from test.
	* configure: Regenerate.

From-SVN: r117489
2006-10-06 08:21:49 +00:00
Danny Smith
16a314a996 acinclude.m4 (HAVE_ATTRIBUTE_ALIAS): Remove __USER_LABEL_PREFIX__ from test.
* acinclude.m4 (HAVE_ATTRIBUTE_ALIAS): Remove __USER_LABEL_PREFIX__ from test.
	* configure: Regenerate.

From-SVN: r117488
2006-10-06 08:21:22 +00:00
Steven G. Kargl
2c3c88ec20 Makefile.am: Use $(M4) instead of m4.
2006-10-05  Steven G. Kargl  <kargl@gcc.gnu.org>

	* Makefile.am: Use $(M4) instead of m4.
	* Makefile.in: Regenerated.

From-SVN: r117467
2006-10-05 21:21:53 +00:00
Francois-Xavier Coudert
f53c2bfab1 * libgfortran.h: Add prototype for internal_unpack_c16.
From-SVN: r117345
2006-10-01 07:54:09 +00:00
Francois-Xavier Coudert
5da8d27d97 f2c_specifics.F90: Special-case conjg functions so that their suffices are _4 and _8 instead of...
* intrinsics/f2c_specifics.F90: Special-case conjg functions so
	that their suffices are _4 and _8 instead of _c4 and _c8.

From-SVN: r117335
2006-09-30 22:32:41 +00:00
Steven G. Kargl
d68d3a3d4b cpu_time.c: Add cpu_time_10 and cpu_time_16 routines.
2006-09-29  Steven G. Kargl  <kargl@gcc.gnu.org>
 
	* intrinsics/cpu_time.c:  Add cpu_time_10 and cpu_time_16 routines.

From-SVN: r117320
2006-09-29 22:21:53 +00:00
Francois-Xavier Coudert
4a44c1a228 re PR libfortran/18791 (CABS specifics declared of wrong type)
PR fortran/18791

        * gfortran.dg/specifics_1.f90: New test.
        * gfortran.fortran-torture/execute/specifics.f90: Add tests for
        complex specifics.

        * m4/specific.m4: Special-case cabs so that its return type is
        real. Special-case conjg so that their suffices are _4, _8, _10 and
        _16 instead of _c4, _c8, _c10 and _c16.
        * intrinsics/f2c_specifics.F90: Special-case conjg functions so
        that their suffices are _4 and _8 instead of _c4 and _c8.
        * generated/_conjg_c4.F90: Regenerate.
        * generated/_conjg_c8.F90: Regenerate.
        * generated/_conjg_c10.F90: Regenerate.
        * generated/_conjg_c16.F90: Regenerate.
        * generated/_abs_c4.F90: Regenerate.
        * generated/_abs_c8.F90: Regenerate.
        * generated/_abs_c10.F90: Regenerate.
        * generated/_abs_c16.F90: Regenerate.

From-SVN: r117317
2006-09-29 20:41:11 +00:00
Francois-Xavier Coudert
f3ed85f6eb Makefile.am: Install libgfortranbegin inside compiler libraries directory instead of system...
* Makefile.am: Install libgfortranbegin inside compiler libraries
	directory instead of system libraries directory.
	* Makefile.in: Regenerate.

From-SVN: r117273
2006-09-28 05:39:00 +00:00
Francois-Xavier Coudert
41e41397de Makefile.am: Remove dependency on gfortypes.h.
* Makefile.am: Remove dependency on gfortypes.h.
	* Makefile.in: Regenerate.

From-SVN: r117178
2006-09-24 08:55:52 +00:00
Danny Smith
6a7c793f3e re PR libfortran/27964 (Wrong line ends on windows (XP))
PR libfortran/27964
	* configure.ac: Check for setmode() function.
	* configure: Regenerate.
	* config.h.in: Regenerate.
	* io/unix.c (output_stream): Force stdout to binary mode. 
	(error_stream): Force stderr to binary mode.

From-SVN: r117166
2006-09-23 01:56:55 +00:00
Jerry DeLisle
f49d5a7eca re PR libfortran/29099 (secnds intrinsic gives wrong result)
2006-09-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/29099
	* intrinsics/date_and_time.c (secnds): Fix case of zero time.

From-SVN: r116975
2006-09-15 16:03:52 +00:00
Jerry DeLisle
701306112e re PR fortran/29053 (Consecutive STREAM I/O file positions mixed up)
2006-09-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/29053
	* io.h (gfc_unit): Add variable, strm_pos, to track
	STREAM I/O file position.
	* file_pos.c (st_rewind): Set strm_pos to beginning.
	* open.c (new_unit): Initialize strm_pos.
	* read.c (read_x): Bump strm_pos.
	* inquire.c (inquire_via_unit): Return strm_pos value.
	* transfer.c (read_block),(read_block_direct),(write_block)
	(write_buf): Seek to strm_pos - 1.  Update strm_pos when done.
	(pre_position): Initialize strm_pos.
	(data_transfer_init): Set strm_pos if DT_HAS_REC.
	(finalize_transfer): Flush file, no need to update strm_pos.

From-SVN: r116970
2006-09-15 13:16:15 +00:00
Andrew Pinski
455ad79239 Fix some whitespace issues in the changelog.
From-SVN: r116879
2006-09-12 00:44:52 -07:00
Paul Thomas
f0e871d647 re PR fortran/28947 (Double MATMUL() uses wrong array elements)
2006-09-10  Paul Thomas  <pault@gcc.gnu.org>

	PR libfortran/28947
	* m4/matmul.m4: For the case where the second input argument is
	transposed, ensure that the case with rank (a) == 1 is
	correctly calculated.
	* 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-09-10  Paul Thomas  <pault@gcc.gnu.org>

	PR libfortran/28947
	gfortran.dg/matmul_4.f90: New test.

From-SVN: r116817
2006-09-10 17:21:44 +00:00
Jerry DeLisle
20e1580fad re PR libfortran/28354 ([4.1 Only] 0.99999 printed as 0. instead of 1. by format(f3.0))
2006-08-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/28354
	* io/write.c: Check for special case of zero precision in format
	and pre-round the real value.

From-SVN: r116502
2006-08-28 05:14:05 +00:00
Jerry DeLisle
91b30ee5b9 re PR fortran/25828 ([f2003] ACCESS='STREAM' io support)
2006-08-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/25828
	* libgfortran.h: Rename GFC_LARGE_IO_INT to GFC_IO_INT.
	* io/file_pos.c (st_backspace): Ignore if access=STREAM.
	(st_rewind): Handle case of access=STREAM.
	* io/open.c (access_opt): Add STREAM_ACCESS.
	(edit_modes): Set current_record to zero only if not STREAM.
	(new_unit): Initialize maxrec, recl, and last_record for STREAM.
	* io/read.c (read_x): Advance file position for STREAM.
	* io/io.h (enum unit_access): Align IOPARM flags with frontend.
	Add ACCESS_STREAM. Add prototype for is_stream_io () function.
	Use GFC_IO_INT.
	* io/inquire.c (inquire_via_unit): Add text for access = "STREAM".
	* io/unit.c (is_stream_io): New function to return true if access =
	STREAM.
	* io/transfer.c (file_mode): Add modes for unformatted stream and
	formatted stream. (current_mode): Return appropriate file mode based
	on access flags.
	(read_block): Handle formatted stream reads.
	(read_block_direct): Handle unformatted stream reads.
	(write_block): Handle formatted stream writes.
	(write_buf): Handle unformatted stream writes.
	(unformatted_read): Fix up, use temporary for size.
	(pre_position): Position file for STREAM access.
	(data_transfer_init): Initialize for stream access, skip irrelevent
	error checks.
	(next_record_r),(next_record_w), and (next_record): Do nothing for
	stream I/O.
	(finalize_transfer): Flush when all done if stream I/O.

From-SVN: r116172
2006-08-15 23:06:44 +00:00
Francois-Xavier Coudert
aa2d15ab84 * intrinsics/bessel.c: Add prototypes for all functions.
From-SVN: r116098
2006-08-12 07:30:04 +00:00
Francois-Xavier Coudert
fd517dc661 * intrinsics/access.c (access_func): Remove export directive.
From-SVN: r115949
2006-08-05 13:37:52 +00:00
Thomas Koenig
73c9fbdf8c Makefile.in: Regenerate using automake 1.9.6.
2006-08-02  Thomas Koenig  <Thomas.Koenig@online.de>

        * Makefile.in:  Regenerate using automake 1.9.6.
        * aclocal.m4:  Revert to previous version.

From-SVN: r115881
2006-08-02 20:05:23 +00:00
Thomas Koenig
6785c63582 re PR libfortran/28452 (__gfortran_random_r10 not found)
2006-08-01  Thomas Koenig  <Thomas.Koenig@online.de>

	PR libfortran/28452
	* libgfortran/ChangeLog:  Correct PR number.
	* gcc/testsuite/ChangeLog:  Likewise.

From-SVN: r115859
2006-08-01 17:29:50 +00:00
Thomas Koenig
cdc5524fc8 re PR libfortran/28452 (__gfortran_random_r10 not found)
2006-08-01  Thomas Koenig  <Thomas.Koenig@online.de>

	PR libfortran/28542
	* Makefile.am:  Remove normalize.c.
	* aclocal.m4:  Regenerate using aclocal 1.9.3.
	* Makefile.in:  Regenerate using automake 1.9.3.
	* libgfortran.h:  #include <float.h>.
	Define GFC_REAL_*_DIGITS and GFC_REAL_*_RADIX.
	Remove prototypes for normalize_r4_i4 and normalize_r8_i8.
	* intrinsics/random.c (top level): Add prototypes for
	random_r10, arandom_r10, random_r16 and arandom_r16.
	(rnumber_4):  New static function.
	(rnumber_8):  New static function.
	(rnumber_10): New static function.
	(rnumber_16): New static function.
	(top level):  Set to kiss_size to 12 if we have
	REAL(KIND=16), to 8 otherwise.
	Define KISS_DEFAULT_SEED_1, KISS_DEFAULT_SEED_2 and
	KISS_DEFAULT_SEED_3.
	(kiss_random_kernel):  Take argument to differentiate
	between different random number generators.
	(random_r4):  Add argument to call to kiss_random_kernel,
	use rnumber_*.
	(random_r8):  Likewise.
	(random_r10):  New function.
	(random_r16):  New function.
	(arandom_r4):  Add argument to call to kiss_random_kernel,
	use_rnumber_*.
	(arandom_r8):  Likewise.
	(arandom_r10):  New function.
	(arandom_r16):  New function.
	* intrinsics/rand.c (rand):  Use shift and mask.
	* runtime/normalize.c:  Remove.

2006-08-01  Thomas Koenig  <Thomas.Koenig@online.de>

	PR libfortran/28542
	* gfortran.dg/random_3.f90:  New test.

From-SVN: r115858
2006-08-01 17:15:04 +00:00
Jerry DeLisle
e43c3311bd re PR fortran/28335 (flush() / write() statement on closed units - error?)
2006-07-30  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/28335
	* file_position.c (st_flush): Add clearer error when UNIT does not
	exist. Add reference to standard in comment.

From-SVN: r115835
2006-07-31 01:32:38 +00:00
Jerry DeLisle
b8d403b467 re PR fortran/28335 (flush() / write() statement on closed units - error?)
2006-07-30  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/28335
	* close.c (st_close): Revert previous patch and add comment.
	* file_position.c (st_flush): Revert previous patch and add comment.

From-SVN: r115829
2006-07-31 00:15:08 +00:00
François-Xavier Coudert
1672b39fbc ChangeLog: Commit ChangeLog forgotten in previous commit.
* libgfortran/ChangeLog: Commit ChangeLog forgotten in previous
	commit.
	* gcc/testsuite/ChangeLog: Likewise.

From-SVN: r115826
2006-07-30 20:49:15 +00:00
Francois-Xavier Coudert
a119fc1ca8 intrinsic.c (add_functions): Add ACCESS, CHMOD, RSHIFT, LSHIFT.
* intrinsic.c (add_functions): Add ACCESS, CHMOD, RSHIFT, LSHIFT.
	(add_subroutines): Add LTIME, GMTIME and CHMOD.
	* intrinsic.h (gfc_check_access_func, gfc_check_chmod,
	gfc_check_chmod_sub, gfc_check_ltime_gmtime, gfc_simplify_rshift,
	gfc_simplify_lshift, gfc_resolve_access, gfc_resolve_chmod,
	gfc_resolve_rshift, gfc_resolve_lshift, gfc_resolve_chmod_sub,
	gfc_resolve_gmtime, gfc_resolve_ltime): Add prototypes.
	* gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_ACCESS,
	GFC_ISYM_CHMOD, GFC_ISYM_LSHIFT, GFC_ISYM_RSHIFT.
	* iresolve.c (gfc_resolve_access, gfc_resolve_chmod,
	gfc_resolve_rshift, gfc_resolve_lshift, gfc_resolve_chmod_sub,
	gfc_resolve_gmtime, gfc_resolve_ltime): New functions.
	* check.c (gfc_check_access_func, gfc_check_chmod,
	gfc_check_chmod_sub, gfc_check_ltime_gmtime): New functions.
	* trans-intrinsic.c (gfc_conv_intrinsic_rlshift): New function.
	(gfc_conv_intrinsic_function): Add cases for the new GFC_ISYM_*.

	* intrinsics/date_and_time.c: Add functions for GMTIME and LTIME.
	* intrinsics/access.c: New file.
	* intrinsics/chmod.c: New file.
	* configure.ac: Add checks for <sys/wait.h>, access, fork,execl
	and wait.
	* Makefile.am: Add new files intrinsics/access.c and
	intrinsics/chmod.c.
	* configure: Regenerate.
	* config.h.in: Regenerate.
	* Makefile.in: Regenerate.

	* gcc/testsuite/gfortran.dg/chmod_3.f90: New test.
	* gcc/testsuite/gfortran.dg/ltime_gmtime_1.f90: New test.
	* gcc/testsuite/gfortran.dg/ltime_gmtime_2.f90: New test.
	* gcc/testsuite/gfortran.dg/lrshift_1.f90: New test.
	* gcc/testsuite/gfortran.dg/chmod_1.f90: New test.
	* gcc/testsuite/gfortran.dg/chmod_2.f90: New test.

From-SVN: r115825
2006-07-30 20:48:00 +00:00
Janne Blomqvist
6097a89729 transfer.c (transfer_array): Remove stride0 fix.
2006-07-30  Janne Blomqvist  <jb@gcc.gnu.org>

	* io/transfer.c (transfer_array): Remove stride0 fix.

From-SVN: r115818
2006-07-30 13:23:26 +03:00
François-Xavier Coudert
bf3fb7e43c intrinsic.c (add_functions): Add INT2, SHORT, INT8, LONG, LSTAT, MCLOCK and MCLOCK8 intrinsic functions.
* intrinsic.c (add_functions): Add INT2, SHORT, INT8, LONG,
	LSTAT, MCLOCK and MCLOCK8 intrinsic functions.
	(add_subroutines): Add LSTAT intrinsic subroutine.
	* gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_INT2,
	GFC_ISYM_INT8, GFC_ISYM_LONG, GFC_ISYM_LSTAT, GFC_ISYM_MCLOCK
	and GFC_ISYM_MCLOCK8.
	* iresolve.c (gfc_resolve_int2, gfc_resolve_int8,
	gfc_resolve_long, gfc_resolve_lstat, gfc_resolve_mclock,
	gfc_resolve_mclock8, gfc_resolve_lstat_sub): New functions.
	* check.c (gfc_check_intconv): New function.
	* trans-intrinsic.c (gfc_conv_intrinsic_function): Add cases for
	the added GFC_ISYM_*.
	* simplify.c (gfc_simplify_intconv, gfc_simplify_int2,
	gfc_simplify_int8, gfc_simplify_long): New functions.
	* intrinsic.h (gfc_check_intconv, gfc_simplify_int2,
	gfc_simplify_int8, gfc_simplify_long, gfc_resolve_int2,
	gfc_resolve_int8, gfc_resolve_long, gfc_resolve_lstat,
	gfc_resolve_mclock, gfc_resolve_mclock8, gfc_resolve_lstat_sub):
	Add prototypes.

	* gfortran.dg/mclock.f90: New test.
	* gfortran.dg/int_conv_1.f90: New test.
	* gfortran.dg/stat_1.f90: New test.
	* gfortran.dg/stat_2.f90: New test.

	* configure.ac: Check for function clock.
	* Makefile.am: Compile new file intrinsics/clock.c.
	* intrinsics/clock.c: New file.
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* config.h.in: Regenerate.
	* intrinsics/stat.c: Rename the old stat_i?_sub functions to
	helper functions stat_i?_sub_0, and use them for both STAT and
	LSTAT.

From-SVN: r115754
2006-07-26 11:58:48 +00:00
Jerry DeLisle
0fb2088c6a Fix typo in previous commit, pr number.
From-SVN: r115751
2006-07-26 01:48:41 +00:00
Jerry DeLisle
ca8d5bc6c6 2006-07-25 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/258335
	* close.c (st_close): Add error when UNIT does not exist.
	* file_position.c (st_flush): Add error when UNIT does not exist.

From-SVN: r115749
2006-07-26 01:40:29 +00:00
Paolo Bonzini
695cd757b9 re PR bootstrap/26188 (4.2.0 fails to compile on FreeBSD 4.11)
config:
2006-07-25  Paolo Bonzini  <bonzini@gnu.org>

	PR build/26188
        * stdint.m4: Test for uintptr_t even on systems with uint64_t or uint32_t.

libdecnumber:
2006-07-25  Paolo Bonzini  <bonzini@gnu.org>

	PR build/26188
	* configure: Regenerate.

libgfortran:
2006-07-25  Paolo Bonzini  <bonzini@gnu.org>

	PR build/26188
	* configure: Regenerate.

From-SVN: r115733
2006-07-25 08:30:38 +00:00
Jerry DeLisle
566ffce895 re PR libfortran/25289 (Cannot handle record numbers large than huge(0_4))
2006-07-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/25289
	* libgfortran.h: Add conditional definition of GFC_LARGE_IO_INT type.
	* io/io.h (st_parameter_dt): Define rec as type GFC_LARGE_IO_INT.

From-SVN: r115698
2006-07-24 00:17:52 +00:00
Jerry DeLisle
f8145d0e61 Fix typo in Changelog.
From-SVN: r115672
2006-07-22 03:21:10 +00:00
Jerry DeLisle
397bc09a65 re PR fortran/28339 (gfortran misses a record from a format statement)
2006-07-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/28339
	* io/transfer.c (next_record_w): Use next_array_record result to set
	END_FILE. (write_block): Test for END_FILE before the next write occurs.
	* io/unit.c (get_internal_unit): Initialize iunit->endfile for internal
	unit.

From-SVN: r115670
2006-07-22 03:14:27 +00:00
Janne Blomqvist
cf0d6f2e57 re PR libfortran/27919 (dot_product should be removed from the library)
2006-07-19  Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/27919
	* m4/dotprodc.m4: Remove.
	* m4/dotprodl.m4: Remove.
	* m4/dotprod.m4: Remove.
	* generated/dotprod_*.c: Remove.
	* Makefile.am: Remove any references to dot_product
	implementation.
	* Makefile.in: Regenerated.

From-SVN: r115594
2006-07-19 19:52:45 +03:00
Janne Blomqvist
dae2efc470 re PR libfortran/27919 (dot_product should be removed from the library)
2006-07-19  Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/27919
	* m4/dotprodc.m4: Remove.
	* m4/dotprodl.m4: Remove.
	* m4/dotprod.m4: Remove.
	* generated/dotprod_*.c: Remove.
	* Makefile.am: Remove any references to dot_product
	implementation.
	* Makefile.in: Regenerated.

From-SVN: r115593
2006-07-19 19:51:49 +03:00
Paolo Bonzini
57255173da Makefile.tpl (configure-stageN-MODULE): Pass --with-build-libsubdir for stages after the first.
2006-07-18  Paolo Bonzini  <bonzini@gnu.org>

        * Makefile.tpl (configure-stageN-MODULE): Pass --with-build-libsubdir
        for stages after the first.

config:
2006-07-18  Paolo Bonzini  <bonzini@gnu.org>

        * acx.m4: Support --with-build-libsubdir and AC_SUBST
        build_libsubdir.

gcc:
2006-07-18  Paolo Bonzini  <bonzini@gnu.org>

        * configure: Regenerate.
        * Makefile.in (build_libsubdir): New configure substitution
        (build_libobjdir): New variable.
        (BUILD_LIBIBERTY): Use it.

libgfortran:
2006-07-18  Paolo Bonzini  <bonzini@gnu.org>

        * configure: Regenerate.

libjava:
2006-07-18  Paolo Bonzini  <bonzini@gnu.org>

        * configure: Regenerate.

libobjc:
2006-07-18  Paolo Bonzini  <bonzini@gnu.org>

        * configure: Regenerate.

From-SVN: r115552
2006-07-18 11:48:36 +00:00
Steven G. Kargl
8daa14ad2a etime.c: Remove etime_
2006-07-15  Steven G. Kargl  <kargls@comcast.net>

    * intrinsics/etime.c: Remove etime_
    * libtool-version: Bump from libgfortran.so.1 to libgfortran.so.2

From-SVN: r115478
2006-07-15 16:12:15 +00:00
Francois-Xavier Coudert
b3eb1e0e9c re PR fortran/28163 (Calling libgfortran's copy_string is inefficient)
PR fortran/28163

	* trans-expr.c (gfc_trans_string_copy): Generate inline code
	to perform string copying instead of calling a library function.
	* trans-decl.c (gfc_build_intrinsic_function_decls): Don't build
	decl for copy_string.
	* trans.h (gfor_fndecl_copy_string): Remove prototype.

	* intrinsics/string_intrinsics.c (copy_string): Remove function.

From-SVN: r115372
2006-07-12 15:11:11 +00:00
Francois-Xavier Coudert
12197210b4 intrinsic.c (add_subroutines): Add ITIME and IDATE.
* intrinsic.c (add_subroutines): Add ITIME and IDATE.
	* intrinsic.h (gfc_check_itime_idate,gfc_resolve_idate,
	fc_resolve_itime): New protos.
	* iresolve.c (gfc_resolve_itime, gfc_resolve_idate): New functions.
	* check.c (gfc_check_itime_idate): New function.
	* intrinsic.texi: Document the new intrinsics.

	* intrinsics/date_and_time.c (itime0,idate0,itime_i4,itime_i8,
	idate_i4,idate_i8): New functions.

	* gfortran.dg/itime_idate_1.f: New test.
	* gfortran.dg/itime_idate_2.f: New test.

Co-Authored-By: Daniel Franke <franke.daniel@gmail.com>

From-SVN: r115173
2006-07-04 11:39:46 +00:00
Jerry DeLisle
2e4444278c re PR libfortran/27704 (Incorrect runtime error on multiple OPEN)
2006-07-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/27704
	* runtime/error.c (notify_std): Pass common flags into function. Use
	flags to show locus of error or warning.
	* libgfortran.h: Add enum try.  Add prototype for notify_std.
	* io/open.c (edit_modes): Allow status="old" and add extension to
	allow status="scratch"
	*io/list_read.c (nml_read_obj): Update call to notify_std.
	*io/io.h: Remove enum try and prototype for notify_std.
	*io/transfer.c (read_sf): Update call to notify_std.
	*io/format.c (parse_format_list): Update call to notify_std.

From-SVN: r115168
2006-07-04 01:36:31 +00:00
Francois-Xavier Coudert
ee4ac5b0b4 io.h: Move proto for unit_to_fd...
* io/io.h: Move proto for unit_to_fd...
	* libgfortran.h: ...here.

From-SVN: r114983
2006-06-25 08:46:09 +00:00
Francois-Xavier Coudert
7606c786fd ierrno.c: Don't include "io/io.h".
* intrinsics/ierrno.c: Don't include "io/io.h".
	* intrinsics/sleep.c: Likewise.
	* intrinsics/perror.c: Likewise.
	* intrinsics/stat.c: Likewise.
	* intrinsics/kill.c: Likewise.
	* intrinsics/time.c: Likewise.
	* intrinsics/fnum.c: Likewise.
	* intrinsics/rename.c: Likewise.
	* intrinsics/symlnk.c: Likewise.
	* intrinsics/chdir.c: Likewise.
	* intrinsics/link.c: Likewise.
	* intrinsics/random.c: Don't include "io/io.h". Include	<gthr.h>.
	* intrinsics/rand.c: Likewise.

From-SVN: r114962
2006-06-24 12:34:51 +00:00