Thomas Koenig
8e1d7686de
re PR libfortran/32972 (performance of pack/unpack)
...
2008-03-19 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/32972
* Makefile.am (in_pack_c): Add in_pack_i1.c, in_pack_i2.c,
in_pack_r4.c, in_pack_r8.c, in_pack_r10.c and in_pack_r16.c.
(in_unpack_c): Add in_unpack_i1.c, in_unpack_i2.c,
in_unpack_r4.c, in_unpack_r8.c, in_unpack_r10.c and
in_unpack_r16.c.
* Makefile.in: Regenerate.
* libgfortran.h: Add prototypes for internal_pack_1,
internal_pack_2, internal_pack_16, internal_pack_r4,
internal_pack_r8, internal_pack_r10, internal_pack_r16,
internal_pack_c10 and internal_pack_c16. Add prototypes for
internal_unpack_1, internal_unpack_2, internal_unpack_16,
internal_unpack_r4, internal_unpack_r8, internal_unpack_r10,
internal_unpack_r16, internal_unpack_c10 and
internal_unpack_c16.
* runtime/in_pack_generic.c (internal_pack): Use sizeof instead
of hardwired sizes.
Add calls to internal_pack_1, internal_pack_2,
internal_pack_16, internal_pack_r4, internal_pack_r8,
internal_pack_r10, internal_pack_r16, internal_pack_c10 and
internal_pack_c16.
* runtime/in_unpack_generic.c (internal_unpack): Use sizeof
instead of hardwired sizes.
Add calls to internal_unpack_1, internal_unpack_2,
internal_unpack_16, internal_unpack_r4, internal_unpack_r8,
internal_unpack_r10, internal_unpack_r16, internal_unpack_c10
and internal_unpack_c16.
* generated/in_pack_r4.c: New file.
* generated/in_pack_i2.c: New file.
* generated/in_unpack_i1.c: New file.
* generated/in_pack_r10.c: New file.
* generated/in_unpack_r4.c: New file.
* generated/in_unpack_i2.c: New file.
* generated/in_unpack_r16.c: New file.
* generated/in_pack_r8.c: New file.
* generated/in_unpack_r10.c: New file.
* generated/in_unpack_r8.c: New file.
* generated/in_pack_r16.c: New file.
* generated/in_pack_i1.c: New file.
2008-03-19 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/32972
* gfortran.dg/internal_pack_1.f90: New test case.
* gfortran.dg/internal_pack_2.f90: New test case.
* gfortran.dg/internal_pack_3.f90: New test case.
From-SVN: r133344
2008-03-19 15:42:55 +00:00
Francois-Xavier Coudert
5095283b2f
ifunction_logical.m4: Add casts to get rid of warnings.
...
* m4/ifunction_logical.m4: Add casts to get rid of warnings.
* generated/all_l1.c: Regenerate.
* generated/all_l2.c: Regenerate.
* generated/all_l4.c: Regenerate.
* generated/all_l8.c: Regenerate.
* generated/all_l16.c: Regenerate.
* generated/any_l1.c: Regenerate.
* generated/any_l2.c: Regenerate.
* generated/any_l4.c: Regenerate.
* generated/any_l8.c: Regenerate.
* generated/any_l16.c: Regenerate.
* generated/count_1_l.c: Regenerate.
* generated/count_2_l.c: Regenerate.
* generated/count_4_l.c: Regenerate.
* generated/count_8_l.c: Regenerate.
* generated/count_16_l.c: Regenerate.
From-SVN: r132619
2008-02-25 12:02:56 +00:00
Thomas Koenig
ee440dd05d
re PR libfortran/35001 (shape for negative sizes)
...
2008-02-02 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/35001
* m4/shape.m4: Return 0 for extents <= 0.
* generated/shape_i4.c: Regenerated.
* generated/shape_i8.c: Regenerated.
* generated/shape_i16.c: Regenerated.
2008-02-02 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/35001
* gfortran.dg/shape_4.f90: New test.
Fixed in regression-only mode by special dispense (see the PR).
From-SVN: r132070
2008-02-02 13:50:55 +00:00
Thomas Koenig
bc81405676
re PR libfortran/34980 (Segfault in shape given a scalar)
...
2008-01-27 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/34980
* m4/shape.m4: If return array is empty, return early.
* generated/shape_i4.c: Regenerated.
* generated/shape_i8.c: Regenerated.
* generated/shape_i16.c: Regenerated.
From-SVN: r131915
2008-01-28 19:02:47 +00:00
Thomas Koenig
90469382c0
re PR libfortran/34671 (any(kind=1) and all(kind=1))
...
2008-01-15 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/34671
* gfortran.am: Added _gfortran_all_l1, _gfortran_all_l2,
_gfortran_any_l1, _gfortran_any_l2, -28,15 _gfortran_count_1_l,
_gfortran_count_16_l, _gfortran_count_2_l, _gfortran_count_4_l and
_gfortran_count_8_l Removed _gfortran_count_16_l16,
_gfortran_count_16_l4, _gfortran_count_16_l8,
_gfortran_count_4_l16, _gfortran_count_4_l4, _gfortran_count_4_l8,
_gfortran_count_8_l16, _gfortran_count_8_l4 and
_gfortran_count_8_l8.
* Makefile.am: Added generated/any_l1.c and generated/any_l2.c to
i_any_c. Added generated/all_l1. and generated/all_l2.c to
i_all_c. Removed generated/count_4_l4.c, generated/count_8_l4.c,
generated/count_16_l4.c, generated/count_4_l8.c,
generated/count_8_l8.c, generated/count_16_l8.c,
generated/count_4_l16.c, generated/count_8_l16.c, and
generated/count_16_l16.c from i_count_c. Added count_1_l.c,
count_2_l.c, count_4_l.c, count_8_l.c and count_16_l.c to
i_count_c. I_M4_DEPS2 depends on ifunction_logical.m4, for
any of the files generated from all.m4, any.m4 and count.m4.
* Makefile.in: Regenerated.
* m4/ifunction_logical.m4: New file. Use
GFC_LOGICAL_1 pointer for access to source arrays.
* m4/any.m4: Include ifunction_logical.m4 instead of
ifunction.m4. Don't check atype_name.
* m4/all.m4: Likewise.
* m4/count.m4: Likewise.
* generated/any_l1.c: New file.
* generated/any_l2.c: New file.
* generated/all_l1.c: New file.
* generated/count_1_l.c: New file.
* generated/count_2_l.c: New file.
* generated/count_4_l.c: New file.
* generated/count_8_l.c: New file.
* generated/count_16_l.c: New file.
* generated/any_l4.c: Regenerated.
* generated/any_l8.c: Regenerated.
* generated/any_l16.c: Regenerated.
* generated/all_l4.c: Regenerated.
* generated/all_l8.c: Regenerated.
* generated/all_l16.c: Regenerated.
* generated/count_4_l4.c: Removed.
* generated/count_4_l8.c: Removed.
* generated/count_4_l16.c: Removed.
* generated/count_8_l4.c: Removed.
* generated/count_8_l8.c: Removed.
* generated/count_8_l16.c: Removed.
* generated/count_16_l4.c: Removed.
* generated/count_16_l8.c: Removed.
* generated/count_16_l16.c: Removed.
2008-01-15 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/34671
* iresolve.c (gfc_resolve_all): Call resolve_mask_arg.
(gfc_resolve_any): Likewise.
(gfc_resolve_count): Likewise. Don't append kind of
argument to function name.
2008-01-15 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/34671
* gfortran.dg/anyallcount_1.f90: New test.
From-SVN: r131553
2008-01-15 21:22:07 +00:00
Thomas Koenig
ccacefc7a6
re PR libfortran/34746 (wrong formats in libgfortran's runtime_error)
...
2008-01-13 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/34746
* m4/iforeach.m4 (name`'rtype_qual`_'atype_code): Use %ld
in printf format for all bounds checking; cast all
integer-like arguments to runtime_error() to long int.
(`m'name`'rtype_qual`_'atype_code): Likewise.
(`s'name`'rtype_qual`_'atype_code): Likewise.
* m4/ifunction.m4 (name`'rtype_qual`_'atype_code): Likewise.
(`m'name`'rtype_qual`_'atype_code): Likewise.
(`s'name`'rtype_qual`_'atype_code): Likewise.
* generated/all_l16.c: Regenerated.
* generated/all_l4.c: Regenerated.
* generated/all_l8.c: Regenerated.
* generated/any_l16.c: Regenerated.
* generated/any_l4.c: Regenerated.
* generated/any_l8.c: Regenerated.
* generated/count_16_l16.c: Regenerated.
* generated/count_16_l4.c: Regenerated.
* generated/count_16_l8.c: Regenerated.
* generated/count_4_l16.c: Regenerated.
* generated/count_4_l4.c: Regenerated.
* generated/count_4_l8.c: Regenerated.
* generated/count_8_l16.c: Regenerated.
* generated/count_8_l4.c: Regenerated.
* generated/count_8_l8.c: Regenerated.
* generated/maxloc0_16_i1.c: Regenerated.
* generated/maxloc0_16_i16.c: Regenerated.
* generated/maxloc0_16_i2.c: Regenerated.
* generated/maxloc0_16_i4.c: Regenerated.
* generated/maxloc0_16_i8.c: Regenerated.
* generated/maxloc0_16_r10.c: Regenerated.
* generated/maxloc0_16_r16.c: Regenerated.
* generated/maxloc0_16_r4.c: Regenerated.
* generated/maxloc0_16_r8.c: Regenerated.
* generated/maxloc0_4_i1.c: Regenerated.
* generated/maxloc0_4_i16.c: Regenerated.
* generated/maxloc0_4_i2.c: Regenerated.
* generated/maxloc0_4_i4.c: Regenerated.
* generated/maxloc0_4_i8.c: Regenerated.
* generated/maxloc0_4_r10.c: Regenerated.
* generated/maxloc0_4_r16.c: Regenerated.
* generated/maxloc0_4_r4.c: Regenerated.
* generated/maxloc0_4_r8.c: Regenerated.
* generated/maxloc0_8_i1.c: Regenerated.
* generated/maxloc0_8_i16.c: Regenerated.
* generated/maxloc0_8_i2.c: Regenerated.
* generated/maxloc0_8_i4.c: Regenerated.
* generated/maxloc0_8_i8.c: Regenerated.
* generated/maxloc0_8_r10.c: Regenerated.
* generated/maxloc0_8_r16.c: Regenerated.
* generated/maxloc0_8_r4.c: Regenerated.
* generated/maxloc0_8_r8.c: Regenerated.
* generated/maxloc1_16_i1.c: Regenerated.
* generated/maxloc1_16_i16.c: Regenerated.
* generated/maxloc1_16_i2.c: Regenerated.
* generated/maxloc1_16_i4.c: Regenerated.
* generated/maxloc1_16_i8.c: Regenerated.
* generated/maxloc1_16_r10.c: Regenerated.
* generated/maxloc1_16_r16.c: Regenerated.
* generated/maxloc1_16_r4.c: Regenerated.
* generated/maxloc1_16_r8.c: Regenerated.
* generated/maxloc1_4_i1.c: Regenerated.
* generated/maxloc1_4_i16.c: Regenerated.
* generated/maxloc1_4_i2.c: Regenerated.
* generated/maxloc1_4_i4.c: Regenerated.
* generated/maxloc1_4_i8.c: Regenerated.
* generated/maxloc1_4_r10.c: Regenerated.
* generated/maxloc1_4_r16.c: Regenerated.
* generated/maxloc1_4_r4.c: Regenerated.
* generated/maxloc1_4_r8.c: Regenerated.
* generated/maxloc1_8_i1.c: Regenerated.
* generated/maxloc1_8_i16.c: Regenerated.
* generated/maxloc1_8_i2.c: Regenerated.
* generated/maxloc1_8_i4.c: Regenerated.
* generated/maxloc1_8_i8.c: Regenerated.
* generated/maxloc1_8_r10.c: Regenerated.
* generated/maxloc1_8_r16.c: Regenerated.
* generated/maxloc1_8_r4.c: Regenerated.
* generated/maxloc1_8_r8.c: Regenerated.
* generated/maxval_i1.c: Regenerated.
* generated/maxval_i16.c: Regenerated.
* generated/maxval_i2.c: Regenerated.
* generated/maxval_i4.c: Regenerated.
* generated/maxval_i8.c: Regenerated.
* generated/maxval_r10.c: Regenerated.
* generated/maxval_r16.c: Regenerated.
* generated/maxval_r4.c: Regenerated.
* generated/maxval_r8.c: Regenerated.
* generated/minloc0_16_i1.c: Regenerated.
* generated/minloc0_16_i16.c: Regenerated.
* generated/minloc0_16_i2.c: Regenerated.
* generated/minloc0_16_i4.c: Regenerated.
* generated/minloc0_16_i8.c: Regenerated.
* generated/minloc0_16_r10.c: Regenerated.
* generated/minloc0_16_r16.c: Regenerated.
* generated/minloc0_16_r4.c: Regenerated.
* generated/minloc0_16_r8.c: Regenerated.
* generated/minloc0_4_i1.c: Regenerated.
* generated/minloc0_4_i16.c: Regenerated.
* generated/minloc0_4_i2.c: Regenerated.
* generated/minloc0_4_i4.c: Regenerated.
* generated/minloc0_4_i8.c: Regenerated.
* generated/minloc0_4_r10.c: Regenerated.
* generated/minloc0_4_r16.c: Regenerated.
* generated/minloc0_4_r4.c: Regenerated.
* generated/minloc0_4_r8.c: Regenerated.
* generated/minloc0_8_i1.c: Regenerated.
* generated/minloc0_8_i16.c: Regenerated.
* generated/minloc0_8_i2.c: Regenerated.
* generated/minloc0_8_i4.c: Regenerated.
* generated/minloc0_8_i8.c: Regenerated.
* generated/minloc0_8_r10.c: Regenerated.
* generated/minloc0_8_r16.c: Regenerated.
* generated/minloc0_8_r4.c: Regenerated.
* generated/minloc0_8_r8.c: Regenerated.
* generated/minloc1_16_i1.c: Regenerated.
* generated/minloc1_16_i16.c: Regenerated.
* generated/minloc1_16_i2.c: Regenerated.
* generated/minloc1_16_i4.c: Regenerated.
* generated/minloc1_16_i8.c: Regenerated.
* generated/minloc1_16_r10.c: Regenerated.
* generated/minloc1_16_r16.c: Regenerated.
* generated/minloc1_16_r4.c: Regenerated.
* generated/minloc1_16_r8.c: Regenerated.
* generated/minloc1_4_i1.c: Regenerated.
* generated/minloc1_4_i16.c: Regenerated.
* generated/minloc1_4_i2.c: Regenerated.
* generated/minloc1_4_i4.c: Regenerated.
* generated/minloc1_4_i8.c: Regenerated.
* generated/minloc1_4_r10.c: Regenerated.
* generated/minloc1_4_r16.c: Regenerated.
* generated/minloc1_4_r4.c: Regenerated.
* generated/minloc1_4_r8.c: Regenerated.
* generated/minloc1_8_i1.c: Regenerated.
* generated/minloc1_8_i16.c: Regenerated.
* generated/minloc1_8_i2.c: Regenerated.
* generated/minloc1_8_i4.c: Regenerated.
* generated/minloc1_8_i8.c: Regenerated.
* generated/minloc1_8_r10.c: Regenerated.
* generated/minloc1_8_r16.c: Regenerated.
* generated/minloc1_8_r4.c: Regenerated.
* generated/minloc1_8_r8.c: Regenerated.
* generated/minval_i1.c: Regenerated.
* generated/minval_i16.c: Regenerated.
* generated/minval_i2.c: Regenerated.
* generated/minval_i4.c: Regenerated.
* generated/minval_i8.c: Regenerated.
* generated/minval_r10.c: Regenerated.
* generated/minval_r16.c: Regenerated.
* generated/minval_r4.c: Regenerated.
* generated/minval_r8.c: Regenerated.
* generated/product_c10.c: Regenerated.
* generated/product_c16.c: Regenerated.
* generated/product_c4.c: Regenerated.
* generated/product_c8.c: Regenerated.
* generated/product_i1.c: Regenerated.
* generated/product_i16.c: Regenerated.
* generated/product_i2.c: Regenerated.
* generated/product_i4.c: Regenerated.
* generated/product_i8.c: Regenerated.
* generated/product_r10.c: Regenerated.
* generated/product_r16.c: Regenerated.
* generated/product_r4.c: Regenerated.
* generated/product_r8.c: Regenerated.
* generated/sum_c10.c: Regenerated.
* generated/sum_c16.c: Regenerated.
* generated/sum_c4.c: Regenerated.
* generated/sum_c8.c: Regenerated.
* generated/sum_i1.c: Regenerated.
* generated/sum_i16.c: Regenerated.
* generated/sum_i2.c: Regenerated.
* generated/sum_i4.c: Regenerated.
* generated/sum_i8.c: Regenerated.
* generated/sum_r10.c: Regenerated.
* generated/sum_r16.c: Regenerated.
* generated/sum_r4.c: Regenerated.
* generated/sum_r8.c: Regenerated.
From-SVN: r131514
2008-01-13 22:13:52 +00:00
Thomas Koenig
fd6590f8c8
re PR libfortran/34670 (bounds checking for array intrinsics)
...
2008-01-11 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/34670
* m4/iparm.m4 (upcase): New macro (copied from the m4 manual).
(u_name): New macro for the upper case name of the intrinsic.
* m4/iforeach.m4 (name`'rtype_qual`_'atype_code): Add
bounds checking and rank check, depending on
compile_options.bounds_check.
(`m'name`'rtype_qual`_'atype_code): Likewise.
(`s'name`'rtype_qual`_'atype_code): Likewise.
* m4/ifunction.m4 (name`'rtype_qual`_'atype_code): Add
bounds checking and rank check, depending on
compile_options.bounds_check.
(`m'name`'rtype_qual`_'atype_code): Likewise.
(`s'name`'rtype_qual`_'atype_code): Likewise.
* generated/all_l16.c: Regenerated.
* generated/all_l4.c: Regenerated.
* generated/all_l8.c: Regenerated.
* generated/any_l16.c: Regenerated.
* generated/any_l4.c: Regenerated.
* generated/any_l8.c: Regenerated.
* generated/count_16_l16.c: Regenerated.
* generated/count_16_l4.c: Regenerated.
* generated/count_16_l8.c: Regenerated.
* generated/count_4_l16.c: Regenerated.
* generated/count_4_l4.c: Regenerated.
* generated/count_4_l8.c: Regenerated.
* generated/count_8_l16.c: Regenerated.
* generated/count_8_l4.c: Regenerated.
* generated/count_8_l8.c: Regenerated.
* generated/maxloc0_16_i1.c: Regenerated.
* generated/maxloc0_16_i16.c: Regenerated.
* generated/maxloc0_16_i2.c: Regenerated.
* generated/maxloc0_16_i4.c: Regenerated.
* generated/maxloc0_16_i8.c: Regenerated.
* generated/maxloc0_16_r10.c: Regenerated.
* generated/maxloc0_16_r16.c: Regenerated.
* generated/maxloc0_16_r4.c: Regenerated.
* generated/maxloc0_16_r8.c: Regenerated.
* generated/maxloc0_4_i1.c: Regenerated.
* generated/maxloc0_4_i16.c: Regenerated.
* generated/maxloc0_4_i2.c: Regenerated.
* generated/maxloc0_4_i4.c: Regenerated.
* generated/maxloc0_4_i8.c: Regenerated.
* generated/maxloc0_4_r10.c: Regenerated.
* generated/maxloc0_4_r16.c: Regenerated.
* generated/maxloc0_4_r4.c: Regenerated.
* generated/maxloc0_4_r8.c: Regenerated.
* generated/maxloc0_8_i1.c: Regenerated.
* generated/maxloc0_8_i16.c: Regenerated.
* generated/maxloc0_8_i2.c: Regenerated.
* generated/maxloc0_8_i4.c: Regenerated.
* generated/maxloc0_8_i8.c: Regenerated.
* generated/maxloc0_8_r10.c: Regenerated.
* generated/maxloc0_8_r16.c: Regenerated.
* generated/maxloc0_8_r4.c: Regenerated.
* generated/maxloc0_8_r8.c: Regenerated.
* generated/maxloc1_16_i1.c: Regenerated.
* generated/maxloc1_16_i16.c: Regenerated.
* generated/maxloc1_16_i2.c: Regenerated.
* generated/maxloc1_16_i4.c: Regenerated.
* generated/maxloc1_16_i8.c: Regenerated.
* generated/maxloc1_16_r10.c: Regenerated.
* generated/maxloc1_16_r16.c: Regenerated.
* generated/maxloc1_16_r4.c: Regenerated.
* generated/maxloc1_16_r8.c: Regenerated.
* generated/maxloc1_4_i1.c: Regenerated.
* generated/maxloc1_4_i16.c: Regenerated.
* generated/maxloc1_4_i2.c: Regenerated.
* generated/maxloc1_4_i4.c: Regenerated.
* generated/maxloc1_4_i8.c: Regenerated.
* generated/maxloc1_4_r10.c: Regenerated.
* generated/maxloc1_4_r16.c: Regenerated.
* generated/maxloc1_4_r4.c: Regenerated.
* generated/maxloc1_4_r8.c: Regenerated.
* generated/maxloc1_8_i1.c: Regenerated.
* generated/maxloc1_8_i16.c: Regenerated.
* generated/maxloc1_8_i2.c: Regenerated.
* generated/maxloc1_8_i4.c: Regenerated.
* generated/maxloc1_8_i8.c: Regenerated.
* generated/maxloc1_8_r10.c: Regenerated.
* generated/maxloc1_8_r16.c: Regenerated.
* generated/maxloc1_8_r4.c: Regenerated.
* generated/maxloc1_8_r8.c: Regenerated.
* generated/maxval_i1.c: Regenerated.
* generated/maxval_i16.c: Regenerated.
* generated/maxval_i2.c: Regenerated.
* generated/maxval_i4.c: Regenerated.
* generated/maxval_i8.c: Regenerated.
* generated/maxval_r10.c: Regenerated.
* generated/maxval_r16.c: Regenerated.
* generated/maxval_r4.c: Regenerated.
* generated/maxval_r8.c: Regenerated.
* generated/minloc0_16_i1.c: Regenerated.
* generated/minloc0_16_i16.c: Regenerated.
* generated/minloc0_16_i2.c: Regenerated.
* generated/minloc0_16_i4.c: Regenerated.
* generated/minloc0_16_i8.c: Regenerated.
* generated/minloc0_16_r10.c: Regenerated.
* generated/minloc0_16_r16.c: Regenerated.
* generated/minloc0_16_r4.c: Regenerated.
* generated/minloc0_16_r8.c: Regenerated.
* generated/minloc0_4_i1.c: Regenerated.
* generated/minloc0_4_i16.c: Regenerated.
* generated/minloc0_4_i2.c: Regenerated.
* generated/minloc0_4_i4.c: Regenerated.
* generated/minloc0_4_i8.c: Regenerated.
* generated/minloc0_4_r10.c: Regenerated.
* generated/minloc0_4_r16.c: Regenerated.
* generated/minloc0_4_r4.c: Regenerated.
* generated/minloc0_4_r8.c: Regenerated.
* generated/minloc0_8_i1.c: Regenerated.
* generated/minloc0_8_i16.c: Regenerated.
* generated/minloc0_8_i2.c: Regenerated.
* generated/minloc0_8_i4.c: Regenerated.
* generated/minloc0_8_i8.c: Regenerated.
* generated/minloc0_8_r10.c: Regenerated.
* generated/minloc0_8_r16.c: Regenerated.
* generated/minloc0_8_r4.c: Regenerated.
* generated/minloc0_8_r8.c: Regenerated.
* generated/minloc1_16_i1.c: Regenerated.
* generated/minloc1_16_i16.c: Regenerated.
* generated/minloc1_16_i2.c: Regenerated.
* generated/minloc1_16_i4.c: Regenerated.
* generated/minloc1_16_i8.c: Regenerated.
* generated/minloc1_16_r10.c: Regenerated.
* generated/minloc1_16_r16.c: Regenerated.
* generated/minloc1_16_r4.c: Regenerated.
* generated/minloc1_16_r8.c: Regenerated.
* generated/minloc1_4_i1.c: Regenerated.
* generated/minloc1_4_i16.c: Regenerated.
* generated/minloc1_4_i2.c: Regenerated.
* generated/minloc1_4_i4.c: Regenerated.
* generated/minloc1_4_i8.c: Regenerated.
* generated/minloc1_4_r10.c: Regenerated.
* generated/minloc1_4_r16.c: Regenerated.
* generated/minloc1_4_r4.c: Regenerated.
* generated/minloc1_4_r8.c: Regenerated.
* generated/minloc1_8_i1.c: Regenerated.
* generated/minloc1_8_i16.c: Regenerated.
* generated/minloc1_8_i2.c: Regenerated.
* generated/minloc1_8_i4.c: Regenerated.
* generated/minloc1_8_i8.c: Regenerated.
* generated/minloc1_8_r10.c: Regenerated.
* generated/minloc1_8_r16.c: Regenerated.
* generated/minloc1_8_r4.c: Regenerated.
* generated/minloc1_8_r8.c: Regenerated.
* generated/minval_i1.c: Regenerated.
* generated/minval_i16.c: Regenerated.
* generated/minval_i2.c: Regenerated.
* generated/minval_i4.c: Regenerated.
* generated/minval_i8.c: Regenerated.
* generated/minval_r10.c: Regenerated.
* generated/minval_r16.c: Regenerated.
* generated/minval_r4.c: Regenerated.
* generated/minval_r8.c: Regenerated.
* generated/product_c10.c: Regenerated.
* generated/product_c16.c: Regenerated.
* generated/product_c4.c: Regenerated.
* generated/product_c8.c: Regenerated.
* generated/product_i1.c: Regenerated.
* generated/product_i16.c: Regenerated.
* generated/product_i2.c: Regenerated.
* generated/product_i4.c: Regenerated.
* generated/product_i8.c: Regenerated.
* generated/product_r10.c: Regenerated.
* generated/product_r16.c: Regenerated.
* generated/product_r4.c: Regenerated.
* generated/product_r8.c: Regenerated.
* generated/sum_c10.c: Regenerated.
* generated/sum_c16.c: Regenerated.
* generated/sum_c4.c: Regenerated.
* generated/sum_c8.c: Regenerated.
* generated/sum_i1.c: Regenerated.
* generated/sum_i16.c: Regenerated.
* generated/sum_i2.c: Regenerated.
* generated/sum_i4.c: Regenerated.
* generated/sum_i8.c: Regenerated.
* generated/sum_r10.c: Regenerated.
* generated/sum_r16.c: Regenerated.
* generated/sum_r4.c: Regenerated.
* generated/sum_r8.c: Regenerated.
2008-01-11 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/34670
* all_bounds_1.f90: New test case.
* maxloc_bounds_1.f90: New test case.
* maxloc_bounds_2.f90: New test case.
* maxloc_bounds_3.f90: New test case.
* maxloc_bounds_4.f90: New test case.
* maxloc_bounds_5.f90: New test case.
* maxloc_bounds_6.f90: New test case.
* maxloc_bounds_7.f90: New test case.
* maxloc_bounds_8.f90: New test case.
From-SVN: r131473
2008-01-11 20:21:05 +00:00
Thomas Koenig
54a838424e
re PR fortran/34566 (Matmul of logical values)
...
2007-12-25 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/34566
* m4/matmull.m4: Multiply xstride and ystride by correct kind.
* generated/matmul_l4.c: Regenerated.
* generated/matmul_l8.c: Regenerated.
* generated/matmul_l16.c: Regenerated.
2007-12-25 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/34566
* gfortran.dg/matmul_6.f90: New test.
From-SVN: r131167
2007-12-25 10:12:41 +00:00
Francois-Xavier Coudert
36ae8a61ad
minloc1.m4: Update copyright year and ajust headers order.
...
* m4/minloc1.m4: Update copyright year and ajust headers order.
* m4/maxloc1.m4: Likewise.
* m4/in_pack.m4: Likewise.
* m4/sum.m4: Likewise.
* m4/fraction.m4: Likewise.
* m4/all.m4: Likewise.
* m4/set_exponent.m4: Likewise.
* m4/transpose.m4: Likewise.
* m4/eoshift1.m4: Likewise.
* m4/spacing.m4: Likewise.
* m4/eoshift3.m4: Likewise.
* m4/minval.m4: Likewise.
* m4/count.m4: Likewise.
* m4/maxval.m4: Likewise.
* m4/exponent.m4: Likewise.
* m4/shape.m4: Likewise.
* m4/head.m4: Likewise.
* m4/cshift1.m4: Likewise.
* m4/minloc0.m4: Likewise.
* m4/nearest.m4: Likewise.
* m4/maxloc0.m4: Likewise.
* m4/pow.m4: Likewise.
* m4/in_unpack.m4: Likewise.
* m4/matmull.m4: Likewise.
* m4/product.m4: Likewise.
* m4/reshape.m4: Likewise.
* m4/any.m4: Likewise.
* m4/rrspacing.m4: Likewise.
* m4/matmul.m4: Likewise.
* runtime/backtrace.c: Likewise.
* runtime/environ.c: Likewise.
* runtime/in_pack_generic.c: Likewise.
* runtime/compile_options.c: Likewise.
* runtime/in_unpack_generic.c: Likewise.
* runtime/main.c: Likewise.
* runtime/stop.c: Likewise.
* runtime/string.c: Likewise.
* runtime/memory.c: Likewise.
* runtime/error.c: Likewise.
* runtime/pause.c: Likewise.
* intrinsics/ierrno.c: Likewise.
* intrinsics/system_clock.c: Likewise.
* intrinsics/cshift0.c: Likewise.
* intrinsics/unlink.c: Likewise.
* intrinsics/ctime.c: Likewise.
* intrinsics/etime.c: Likewise.
* intrinsics/cpu_time.c: Likewise.
* intrinsics/malloc.c: Likewise.
* intrinsics/hostnm.c: Likewise.
* intrinsics/sleep.c: Likewise.
* intrinsics/exit.c: Likewise.
* intrinsics/perror.c: Likewise.
* intrinsics/transpose_generic.c: Likewise.
* intrinsics/pack_generic.c: Likewise.
* intrinsics/spread_generic.c: Likewise.
* intrinsics/stat.c: Likewise.
* intrinsics/string_intrinsics.c: Likewise.
* intrinsics/getcwd.c: Likewise.
* intrinsics/date_and_time.c: Likewise.
* intrinsics/unpack_generic.c: Likewise.
* intrinsics/move_alloc.c: Likewise.
* intrinsics/getlog.c: Likewise.
* intrinsics/eoshift0.c: Likewise.
* intrinsics/eoshift2.c: Likewise.
* intrinsics/reshape_generic.c: Likewise.
* intrinsics/system.c: Likewise.
* intrinsics/iso_c_binding.c: Likewise.
* intrinsics/env.c: Likewise.
* intrinsics/kill.c: Likewise.
* intrinsics/reshape_packed.c: Likewise.
* intrinsics/time.c: Likewise.
* intrinsics/gerror.c: Likewise.
* intrinsics/access.c: Likewise.
* intrinsics/fnum.c: Likewise.
* intrinsics/abort.c: Likewise.
* intrinsics/rename.c: Likewise.
* intrinsics/signal.c: Likewise.
* intrinsics/symlnk.c: Likewise.
* intrinsics/random.c: Likewise.
* intrinsics/umask.c: Likewise.
* intrinsics/getXid.c: Likewise.
* intrinsics/rand.c: Likewise.
* intrinsics/chdir.c: Likewise.
* intrinsics/chmod.c: Likewise.
* intrinsics/clock.c: Likewise.
* intrinsics/args.c: Likewise.
* intrinsics/link.c: Likewise.
* c99_protos.h: Likewise.
* config/fpu-387.h: Likewise.
* config/fpu-aix.h: Likewise.
* config/fpu-sysv.h: Likewise.
* config/fpu-generic.h: Likewise.
* config/fpu-glibc.h: Likewise.
* io/file_pos.c: Likewise.
* io/open.c: Likewise.
* io/size_from_kind.c: Likewise.
* io/close.c: Likewise.
* io/list_read.c: Likewise.
* io/read.c: Likewise.
* io/inquire.c: Likewise.
* io/unit.c: Likewise.
* io/unix.c: Likewise.
* io/transfer.c: Likewise.
* io/intrinsics.c: Likewise.
* io/format.c: Likewise.
* io/lock.c: Likewise.
* io/write.c: Likewise.
* io/write_float.def: Likewise.
* fmain.c: Likewise.
* generated/minval_r8.c: Regenerate.
* generated/minloc1_16_r16.c: Regenerate.
* generated/maxloc1_4_r8.c: Regenerate.
* generated/sum_i8.c: Regenerate.
* generated/eoshift3_4.c: Regenerate.
* generated/transpose_c8.c: Regenerate.
* generated/any_l16.c: Regenerate.
* generated/eoshift1_8.c: Regenerate.
* generated/pow_r8_i8.c: Regenerate.
* generated/reshape_r16.c: Regenerate.
* generated/pow_i4_i16.c: Regenerate.
* generated/maxval_i2.c: Regenerate.
* generated/product_r4.c: Regenerate.
* generated/maxloc1_8_i4.c: Regenerate.
* generated/exponent_r16.c: Regenerate.
* generated/maxloc0_4_r4.c: Regenerate.
* generated/fraction_r16.c: Regenerate.
* generated/in_unpack_i8.c: Regenerate.
* generated/matmul_r8.c: Regenerate.
* generated/product_i2.c: Regenerate.
* generated/fraction_r4.c: Regenerate.
* generated/minloc0_4_r16.c: Regenerate.
* generated/reshape_c4.c: Regenerate.
* generated/minloc0_4_i1.c: Regenerate.
* generated/maxloc0_4_r16.c: Regenerate.
* generated/maxloc0_4_i2.c: Regenerate.
* generated/minloc1_8_r16.c: Regenerate.
* generated/maxloc1_8_r16.c: Regenerate.
* generated/set_exponent_r8.c: Regenerate.
* generated/in_unpack_i16.c: Regenerate.
* generated/transpose_c16.c: Regenerate.
* generated/maxloc0_8_i8.c: Regenerate.
* generated/pow_c4_i8.c: Regenerate.
* generated/sum_r16.c: Regenerate.
* generated/sum_i1.c: Regenerate.
* generated/minloc1_4_r8.c: Regenerate.
* generated/transpose_r10.c: Regenerate.
* generated/pow_i8_i4.c: Regenerate.
* generated/maxloc1_16_r16.c: Regenerate.
* generated/minloc1_16_i4.c: Regenerate.
* generated/maxloc1_16_i4.c: Regenerate.
* generated/minloc0_16_i8.c: Regenerate.
* generated/maxloc0_16_i8.c: Regenerate.
* generated/nearest_r8.c: Regenerate.
* generated/spacing_r16.c: Regenerate.
* generated/transpose_i8.c: Regenerate.
* generated/count_16_l16.c: Regenerate.
* generated/maxval_r16.c: Regenerate.
* generated/count_8_l8.c: Regenerate.
* generated/product_c10.c: Regenerate.
* generated/minloc1_8_i4.c: Regenerate.
* generated/minloc0_16_i16.c: Regenerate.
* generated/matmul_r16.c: Regenerate.
* generated/eoshift1_16.c: Regenerate.
* generated/minloc0_4_r4.c: Regenerate.
* generated/pow_c16_i16.c: Regenerate.
* generated/set_exponent_r10.c: Regenerate.
* generated/pow_i16_i16.c: Regenerate.
* generated/product_c4.c: Regenerate.
* generated/sum_r4.c: Regenerate.
* generated/pow_c16_i4.c: Regenerate.
* generated/rrspacing_r10.c: Regenerate.
* generated/in_pack_c16.c: Regenerate.
* generated/minloc0_4_i2.c: Regenerate.
* generated/maxloc0_8_i1.c: Regenerate.
* generated/reshape_i4.c: Regenerate.
* generated/minloc0_8_i8.c: Regenerate.
* generated/matmul_c8.c: Regenerate.
* generated/spacing_r4.c: Regenerate.
* generated/in_pack_c4.c: Regenerate.
* generated/all_l16.c: Regenerate.
* generated/minloc1_16_r10.c: Regenerate.
* generated/sum_i2.c: Regenerate.
* generated/minloc0_16_i1.c: Regenerate.
* generated/reshape_c16.c: Regenerate.
* generated/maxloc0_16_i1.c: Regenerate.
* generated/maxloc1_8_r8.c: Regenerate.
* generated/minval_i16.c: Regenerate.
* generated/reshape_r10.c: Regenerate.
* generated/exponent_r10.c: Regenerate.
* generated/maxval_i4.c: Regenerate.
* generated/any_l4.c: Regenerate.
* generated/minval_i8.c: Regenerate.
* generated/maxloc1_4_i8.c: Regenerate.
* generated/fraction_r10.c: Regenerate.
* generated/maxloc0_16_i16.c: Regenerate.
* generated/shape_i4.c: Regenerate.
* generated/pow_r16_i8.c: Regenerate.
* generated/maxloc0_8_r4.c: Regenerate.
* generated/rrspacing_r8.c: Regenerate.
* generated/pow_c10_i4.c: Regenerate.
* generated/minloc1_4_i16.c: Regenerate.
* generated/minloc0_4_r10.c: Regenerate.
* generated/maxloc1_4_i16.c: Regenerate.
* generated/minloc0_8_i16.c: Regenerate.
* generated/maxloc0_4_r10.c: Regenerate.
* generated/maxloc0_8_i16.c: Regenerate.
* generated/minloc1_8_r10.c: Regenerate.
* generated/product_i4.c: Regenerate.
* generated/minloc0_16_r4.c: Regenerate.
* generated/sum_c16.c: Regenerate.
* generated/maxloc1_8_r10.c: Regenerate.
* generated/maxloc0_16_r4.c: Regenerate.
* generated/transpose_c10.c: Regenerate.
* generated/minloc1_16_r8.c: Regenerate.
* generated/minloc0_8_i1.c: Regenerate.
* generated/maxloc0_4_i4.c: Regenerate.
* generated/transpose_r4.c: Regenerate.
* generated/maxloc1_16_r8.c: Regenerate.
* generated/pow_i16_i8.c: Regenerate.
* generated/cshift1_4.c: Regenerate.
* generated/maxloc0_8_i2.c: Regenerate.
* generated/sum_r10.c: Regenerate.
* generated/nearest_r16.c: Regenerate.
* generated/sum_c4.c: Regenerate.
* generated/maxloc1_16_r10.c: Regenerate.
* generated/count_4_l16.c: Regenerate.
* generated/pow_c8_i8.c: Regenerate.
* generated/matmul_i8.c: Regenerate.
* generated/in_pack_i4.c: Regenerate.
* generated/pow_i4_i8.c: Regenerate.
* generated/minloc0_16_i2.c: Regenerate.
* generated/minloc1_8_r8.c: Regenerate.
* generated/maxloc0_16_i2.c: Regenerate.
* generated/exponent_r4.c: Regenerate.
* generated/spacing_r10.c: Regenerate.
* generated/matmul_c16.c: Regenerate.
* generated/pow_c4_i16.c: Regenerate.
* generated/maxval_r10.c: Regenerate.
* generated/count_4_l4.c: Regenerate.
* generated/shape_i16.c: Regenerate.
* generated/minval_i1.c: Regenerate.
* generated/maxloc1_4_i1.c: Regenerate.
* generated/matmul_r10.c: Regenerate.
* generated/minloc1_4_i8.c: Regenerate.
* generated/pow_r10_i8.c: Regenerate.
* generated/minloc0_8_r4.c: Regenerate.
* generated/in_unpack_c4.c: Regenerate.
* generated/matmul_l4.c: Regenerate.
* generated/product_i16.c: Regenerate.
* generated/minloc0_16_r16.c: Regenerate.
* generated/reshape_r8.c: Regenerate.
* generated/pow_r10_i16.c: Regenerate.
* generated/all_l4.c: Regenerate.
* generated/in_pack_c10.c: Regenerate.
* generated/minloc0_4_i4.c: Regenerate.
* generated/minloc0_8_i2.c: Regenerate.
* generated/matmul_i1.c: Regenerate.
* generated/reshape_c10.c: Regenerate.
* generated/minval_r4.c: Regenerate.
* generated/maxloc1_4_r4.c: Regenerate.
* generated/pow_r8_i16.c: Regenerate.
* generated/sum_i4.c: Regenerate.
* generated/maxval_r8.c: Regenerate.
* generated/count_16_l8.c: Regenerate.
* generated/transpose_c4.c: Regenerate.
* generated/eoshift1_4.c: Regenerate.
* generated/eoshift3_8.c: Regenerate.
* generated/minval_r16.c: Regenerate.
* generated/minloc1_4_i1.c: Regenerate.
* generated/minval_i2.c: Regenerate.
* generated/maxloc1_4_i2.c: Regenerate.
* generated/pow_i8_i16.c: Regenerate.
* generated/product_r8.c: Regenerate.
* generated/maxloc1_8_i8.c: Regenerate.
* generated/maxloc0_4_r8.c: Regenerate.
* generated/maxloc0_16_r16.c: Regenerate.
* generated/in_unpack_i4.c: Regenerate.
* generated/matmul_r4.c: Regenerate.
* generated/sum_c10.c: Regenerate.
* generated/minloc1_4_r16.c: Regenerate.
* generated/fraction_r8.c: Regenerate.
* generated/maxloc1_4_r16.c: Regenerate.
* generated/set_exponent_r4.c: Regenerate.
* generated/minloc0_8_r16.c: Regenerate.
* generated/in_unpack_c16.c: Regenerate.
* generated/reshape_c8.c: Regenerate.
* generated/maxloc0_8_r16.c: Regenerate.
* generated/nearest_r10.c: Regenerate.
* generated/maxloc0_8_i4.c: Regenerate.
* generated/pow_c4_i4.c: Regenerate.
* generated/matmul_i2.c: Regenerate.
* generated/minloc1_4_r4.c: Regenerate.
* generated/transpose_i16.c: Regenerate.
* generated/matmul_c10.c: Regenerate.
* generated/minloc0_16_i4.c: Regenerate.
* generated/maxloc0_16_i4.c: Regenerate.
* generated/pow_i8_i8.c: Regenerate.
* generated/nearest_r4.c: Regenerate.
* generated/minloc1_16_i8.c: Regenerate.
* generated/maxloc1_16_i8.c: Regenerate.
* generated/transpose_i4.c: Regenerate.
* generated/count_8_l4.c: Regenerate.
* generated/minloc1_4_i2.c: Regenerate.
* generated/matmul_l16.c: Regenerate.
* generated/maxloc1_8_i1.c: Regenerate.
* generated/minloc0_16_r10.c: Regenerate.
* generated/minloc1_8_i8.c: Regenerate.
* generated/minloc0_4_r8.c: Regenerate.
* generated/product_r16.c: Regenerate.
* generated/product_c8.c: Regenerate.
* generated/pow_r16_i16.c: Regenerate.
* generated/sum_r8.c: Regenerate.
* generated/pow_c16_i8.c: Regenerate.
* generated/in_pack_i16.c: Regenerate.
* generated/minloc0_8_i4.c: Regenerate.
* generated/matmul_c4.c: Regenerate.
* generated/minloc1_16_i16.c: Regenerate.
* generated/reshape_i8.c: Regenerate.
* generated/spacing_r8.c: Regenerate.
* generated/in_pack_c8.c: Regenerate.
* generated/maxloc1_8_r4.c: Regenerate.
* generated/minloc1_16_i1.c: Regenerate.
* generated/maxloc1_16_i1.c: Regenerate.
* generated/reshape_i16.c: Regenerate.
* generated/minval_r10.c: Regenerate.
* generated/pow_r4_i8.c: Regenerate.
* generated/minloc1_8_i1.c: Regenerate.
* generated/minval_i4.c: Regenerate.
* generated/maxloc1_4_i4.c: Regenerate.
* generated/maxloc1_8_i2.c: Regenerate.
* generated/maxval_i8.c: Regenerate.
* generated/eoshift3_16.c: Regenerate.
* generated/any_l8.c: Regenerate.
* generated/maxloc0_16_r10.c: Regenerate.
* generated/rrspacing_r4.c: Regenerate.
* generated/shape_i8.c: Regenerate.
* generated/maxloc0_8_r8.c: Regenerate.
* generated/minloc0_4_i16.c: Regenerate.
* generated/maxloc0_4_i16.c: Regenerate.
* generated/minloc1_4_r10.c: Regenerate.
* generated/minloc1_8_i16.c: Regenerate.
* generated/pow_c10_i8.c: Regenerate.
* generated/maxloc1_4_r10.c: Regenerate.
* generated/maxloc1_8_i16.c: Regenerate.
* generated/in_unpack_c10.c: Regenerate.
* generated/minloc0_8_r10.c: Regenerate.
* generated/maxloc0_8_r10.c: Regenerate.
* generated/minloc1_16_r4.c: Regenerate.
* generated/maxloc1_16_r4.c: Regenerate.
* generated/minloc0_16_r8.c: Regenerate.
* generated/pow_i16_i4.c: Regenerate.
* generated/product_i8.c: Regenerate.
* generated/maxloc0_16_r8.c: Regenerate.
* generated/sum_i16.c: Regenerate.
* generated/maxloc0_4_i8.c: Regenerate.
* generated/transpose_r8.c: Regenerate.
* generated/cshift1_8.c: Regenerate.
* generated/maxloc1_16_i16.c: Regenerate.
* generated/matmul_i4.c: Regenerate.
* generated/pow_c8_i4.c: Regenerate.
* generated/pow_i4_i4.c: Regenerate.
* generated/minloc1_8_r4.c: Regenerate.
* generated/sum_c8.c: Regenerate.
* generated/count_8_l16.c: Regenerate.
* generated/minloc1_16_i2.c: Regenerate.
* generated/maxloc1_16_i2.c: Regenerate.
* generated/in_pack_i8.c: Regenerate.
* generated/transpose_r16.c: Regenerate.
* generated/maxval_i16.c: Regenerate.
* generated/exponent_r8.c: Regenerate.
* generated/matmul_i16.c: Regenerate.
* generated/count_4_l8.c: Regenerate.
* generated/pow_c8_i16.c: Regenerate.
* generated/maxval_i1.c: Regenerate.
* generated/minloc1_4_i4.c: Regenerate.
* generated/minloc1_8_i2.c: Regenerate.
* generated/pow_c10_i16.c: Regenerate.
* generated/product_c16.c: Regenerate.
* generated/reshape_r4.c: Regenerate.
* generated/in_unpack_c8.c: Regenerate.
* generated/minloc0_8_r8.c: Regenerate.
* generated/matmul_l8.c: Regenerate.
* generated/product_r10.c: Regenerate.
* generated/set_exponent_r16.c: Regenerate.
* generated/cshift1_16.c: Regenerate.
* generated/product_i1.c: Regenerate.
* generated/all_l8.c: Regenerate.
* generated/maxloc0_4_i1.c: Regenerate.
* generated/rrspacing_r16.c: Regenerate.
* generated/minloc0_4_i8.c: Regenerate.
* generated/pow_r4_i16.c: Regenerate.
* generated/count_16_l4.c: Regenerate.
* generated/maxval_r4.c: Regenerate.
From-SVN: r127990
2007-08-31 14:01:34 +00:00
Thomas Koenig
28dc6b33c4
re PR libfortran/32972 (performance of pack/unpack)
...
2007-08-24 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/32972
* iresolve.c: Don't convert array masks.
2007-08-24 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/32972
* libgfortran.h: Remove GFOR_POINTER_L8_TO_L4 macro.
Add GFOR_POINTER_TO_L1 macro.
* m4/iforeach.m4(`m'name`'rtype_qual`_'atype_code):
Change argument 'mask' to gfc_array_l1. Adjust prototype.
Change mask pointer to GFC_LOGICAL_1. Multiply strides
by kind of mask
* m4/ifunction.m4: Likewise.
* intrinsics/pack_generic.c(pack_internal): Likewise.
* intrinsics/unpack_generic.c(unpack_internal): Likewise.
* m4/matmull.m4: Switch to GFC_LOGICAL_1. Multiply strides by
kind of logical arguments a and b.
* generated/matmul_l16.c: Regenerated.
* generated/matmul_l4.c: Regenerated.
* generated/matmul_l8.c: Regenerated.
* generated/maxloc0_16_i1.c: Regenerated.
* generated/maxloc0_16_i16.c: Regenerated.
* generated/maxloc0_16_i2.c: Regenerated.
* generated/maxloc0_16_i4.c: Regenerated.
* generated/maxloc0_16_i8.c: Regenerated.
* generated/maxloc0_16_r10.c: Regenerated.
* generated/maxloc0_16_r16.c: Regenerated.
* generated/maxloc0_16_r4.c: Regenerated.
* generated/maxloc0_16_r8.c: Regenerated.
* generated/maxloc0_4_i1.c: Regenerated.
* generated/maxloc0_4_i16.c: Regenerated.
* generated/maxloc0_4_i2.c: Regenerated.
* generated/maxloc0_4_i4.c: Regenerated.
* generated/maxloc0_4_i8.c: Regenerated.
* generated/maxloc0_4_r10.c: Regenerated.
* generated/maxloc0_4_r16.c: Regenerated.
* generated/maxloc0_4_r4.c: Regenerated.
* generated/maxloc0_4_r8.c: Regenerated.
* generated/maxloc0_8_i1.c: Regenerated.
* generated/maxloc0_8_i16.c: Regenerated.
* generated/maxloc0_8_i2.c: Regenerated.
* generated/maxloc0_8_i4.c: Regenerated.
* generated/maxloc0_8_i8.c: Regenerated.
* generated/maxloc0_8_r10.c: Regenerated.
* generated/maxloc0_8_r16.c: Regenerated.
* generated/maxloc0_8_r4.c: Regenerated.
* generated/maxloc0_8_r8.c: Regenerated.
* generated/maxloc1_16_i1.c: Regenerated.
* generated/maxloc1_16_i16.c: Regenerated.
* generated/maxloc1_16_i2.c: Regenerated.
* generated/maxloc1_16_i4.c: Regenerated.
* generated/maxloc1_16_i8.c: Regenerated.
* generated/maxloc1_16_r10.c: Regenerated.
* generated/maxloc1_16_r16.c: Regenerated.
* generated/maxloc1_16_r4.c: Regenerated.
* generated/maxloc1_16_r8.c: Regenerated.
* generated/maxloc1_4_i1.c: Regenerated.
* generated/maxloc1_4_i16.c: Regenerated.
* generated/maxloc1_4_i2.c: Regenerated.
* generated/maxloc1_4_i4.c: Regenerated.
* generated/maxloc1_4_i8.c: Regenerated.
* generated/maxloc1_4_r10.c: Regenerated.
* generated/maxloc1_4_r16.c: Regenerated.
* generated/maxloc1_4_r4.c: Regenerated.
* generated/maxloc1_4_r8.c: Regenerated.
* generated/maxloc1_8_i1.c: Regenerated.
* generated/maxloc1_8_i16.c: Regenerated.
* generated/maxloc1_8_i2.c: Regenerated.
* generated/maxloc1_8_i4.c: Regenerated.
* generated/maxloc1_8_i8.c: Regenerated.
* generated/maxloc1_8_r10.c: Regenerated.
* generated/maxloc1_8_r16.c: Regenerated.
* generated/maxloc1_8_r4.c: Regenerated.
* generated/maxloc1_8_r8.c: Regenerated.
* generated/maxval_i1.c: Regenerated.
* generated/maxval_i16.c: Regenerated.
* generated/maxval_i2.c: Regenerated.
* generated/maxval_i4.c: Regenerated.
* generated/maxval_i8.c: Regenerated.
* generated/maxval_r10.c: Regenerated.
* generated/maxval_r16.c: Regenerated.
* generated/maxval_r4.c: Regenerated.
* generated/maxval_r8.c: Regenerated.
* generated/minloc0_16_i1.c: Regenerated.
* generated/minloc0_16_i16.c: Regenerated.
* generated/minloc0_16_i2.c: Regenerated.
* generated/minloc0_16_i4.c: Regenerated.
* generated/minloc0_16_i8.c: Regenerated.
* generated/minloc0_16_r10.c: Regenerated.
* generated/minloc0_16_r16.c: Regenerated.
* generated/minloc0_16_r4.c: Regenerated.
* generated/minloc0_16_r8.c: Regenerated.
* generated/minloc0_4_i1.c: Regenerated.
* generated/minloc0_4_i16.c: Regenerated.
* generated/minloc0_4_i2.c: Regenerated.
* generated/minloc0_4_i4.c: Regenerated.
* generated/minloc0_4_i8.c: Regenerated.
* generated/minloc0_4_r10.c: Regenerated.
* generated/minloc0_4_r16.c: Regenerated.
* generated/minloc0_4_r4.c: Regenerated.
* generated/minloc0_4_r8.c: Regenerated.
* generated/minloc0_8_i1.c: Regenerated.
* generated/minloc0_8_i16.c: Regenerated.
* generated/minloc0_8_i2.c: Regenerated.
* generated/minloc0_8_i4.c: Regenerated.
* generated/minloc0_8_i8.c: Regenerated.
* generated/minloc0_8_r10.c: Regenerated.
* generated/minloc0_8_r16.c: Regenerated.
* generated/minloc0_8_r4.c: Regenerated.
* generated/minloc0_8_r8.c: Regenerated.
* generated/minloc1_16_i1.c: Regenerated.
* generated/minloc1_16_i16.c: Regenerated.
* generated/minloc1_16_i2.c: Regenerated.
* generated/minloc1_16_i4.c: Regenerated.
* generated/minloc1_16_i8.c: Regenerated.
* generated/minloc1_16_r10.c: Regenerated.
* generated/minloc1_16_r16.c: Regenerated.
* generated/minloc1_16_r4.c: Regenerated.
* generated/minloc1_16_r8.c: Regenerated.
* generated/minloc1_4_i1.c: Regenerated.
* generated/minloc1_4_i16.c: Regenerated.
* generated/minloc1_4_i2.c: Regenerated.
* generated/minloc1_4_i4.c: Regenerated.
* generated/minloc1_4_i8.c: Regenerated.
* generated/minloc1_4_r10.c: Regenerated.
* generated/minloc1_4_r16.c: Regenerated.
* generated/minloc1_4_r4.c: Regenerated.
* generated/minloc1_4_r8.c: Regenerated.
* generated/minloc1_8_i1.c: Regenerated.
* generated/minloc1_8_i16.c: Regenerated.
* generated/minloc1_8_i2.c: Regenerated.
* generated/minloc1_8_i4.c: Regenerated.
* generated/minloc1_8_i8.c: Regenerated.
* generated/minloc1_8_r10.c: Regenerated.
* generated/minloc1_8_r16.c: Regenerated.
* generated/minloc1_8_r4.c: Regenerated.
* generated/minloc1_8_r8.c: Regenerated.
* generated/minval_i1.c: Regenerated.
* generated/minval_i16.c: Regenerated.
* generated/minval_i2.c: Regenerated.
* generated/minval_i4.c: Regenerated.
* generated/minval_i8.c: Regenerated.
* generated/minval_r10.c: Regenerated.
* generated/minval_r16.c: Regenerated.
* generated/minval_r4.c: Regenerated.
* generated/minval_r8.c: Regenerated.
* generated/product_c10.c: Regenerated.
* generated/product_c16.c: Regenerated.
* generated/product_c4.c: Regenerated.
* generated/product_c8.c: Regenerated.
* generated/product_i1.c: Regenerated.
* generated/product_i16.c: Regenerated.
* generated/product_i2.c: Regenerated.
* generated/product_i4.c: Regenerated.
* generated/product_i8.c: Regenerated.
* generated/product_r10.c: Regenerated.
* generated/product_r16.c: Regenerated.
* generated/product_r4.c: Regenerated.
* generated/product_r8.c: Regenerated.
* generated/sum_c10.c: Regenerated.
* generated/sum_c16.c: Regenerated.
* generated/sum_c4.c: Regenerated.
* generated/sum_c8.c: Regenerated.
* generated/sum_i1.c: Regenerated.
* generated/sum_i16.c: Regenerated.
* generated/sum_i2.c: Regenerated.
* generated/sum_i4.c: Regenerated.
* generated/sum_i8.c: Regenerated.
* generated/sum_r10.c: Regenerated.
* generated/sum_r16.c: Regenerated.
* generated/sum_r4.c: Regenerated.
* generated/sum_r8.c: Regenerated.
From-SVN: r127774
2007-08-24 16:16:16 +00:00
Thomas Koenig
18c492a994
re PR libfortran/32336 (matmul: flag runtime- instead of assertation error)
...
2007-07-09 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/32336
* m4/matmul.m4: When the dimension of b is incorrect,
raise a runtime error instead of a failed assertion.
* generated/matmul_i1.c: Regenerated.
* generated/matmul_i2.c: Regenerated.
* generated/matmul_i4.c: Regenerated.
* generated/matmul_i8.c: Regenerated.
* generated/matmul_i16.c: Regenerated.
* generated/matmul_r4.c: Regenerated.
* generated/matmul_r8.c: Regenerated.
* generated/matmul_r10.c: Regenerated.
* generated/matmul_r16.c: Regenerated.
2007-07-09 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/32336
* gfortran.dg/matmul_5.f90: New test case.
From-SVN: r126498
2007-07-09 22:34:43 +00:00
Janne Blomqvist
f6b55636d8
Forgot to delete these during yesterdays commit.
...
2007-07-02 Janne Blomqvist <jb@gcc.gnu.org>
PR fortran/32239
* generated/pow_r*_i4.c: Removed.
From-SVN: r126215
2007-07-02 19:21:37 +03:00
Francois-Xavier Coudert
5e9f08ba5d
cpu_time.c: Don't include headers already included by libgfortran.h.
...
* intrinsics/cpu_time.c: Don't include headers already included
by libgfortran.h. Protect inclusion of sys/times.h.
* configure.ac: Remove unneeded checks for finit, stdio.h,
stddef.h, math.h and sys/params.h.
* config/fpu-aix.h: Don't include headers already included by
libgfortran.h.
* config/fpu-sysv.h: Likewise.
* io/write.c: Likewise.
* m4/minloc1.m4: Likewise.
* m4/maxloc1.m4: Likewise.
* m4/fraction.m4: Likewise.
* m4/set_exponent.m4: Likewise.
* m4/spacing.m4: Likewise.
* m4/minval.m4: Likewise.
* m4/maxval.m4: Likewise.
* m4/exponent.m4: Likewise.
* m4/nearest.m4: Likewise.
* m4/minloc0.m4: Likewise.
* m4/maxloc0.m4: Likewise.
* m4/rrspacing.m4: Likewise.
* runtime/main.c: Likewise.
* runtime/error.c: Likewise.
* intrinsics/system_clock.c: Likewise.
* intrinsics/etime.c: Likewise.
* intrinsics/stat.c: Likewise.
* intrinsics/date_and_time.c: Likewise.
* intrinsics/env.c: Likewise.
* intrinsics/kill.c: Likewise.
* intrinsics/getXid.c: Likewise.
* intrinsics/chmod.c: Likewise.
* intrinsics/args.c: Likewise.
* intrinsics/c99_functions.c: Likewise.
* generated/minval_r8.c: Regenerate.
* generated/maxloc1_4_r8.c: Regenerate.
* generated/minloc1_16_r16.c: Regenerate.
* generated/maxval_i2.c: Regenerate.
* generated/maxloc1_8_i4.c: Regenerate.
* generated/exponent_r16.c: Regenerate.
* generated/maxloc0_4_r4.c: Regenerate.
* generated/fraction_r16.c: Regenerate.
* generated/fraction_r4.c: Regenerate.
* generated/minloc0_4_r16.c: Regenerate.
* generated/minloc0_4_i1.c: Regenerate.
* generated/maxloc0_4_r16.c: Regenerate.
* generated/maxloc0_4_i2.c: Regenerate.
* generated/minloc1_8_r16.c: Regenerate.
* generated/maxloc1_8_r16.c: Regenerate.
* generated/set_exponent_r8.c: Regenerate.
* generated/maxloc0_8_i8.c: Regenerate.
* generated/minloc1_4_r8.c: Regenerate.
* generated/maxloc1_16_r16.c: Regenerate.
* generated/minloc1_16_i4.c: Regenerate.
* generated/maxloc1_16_i4.c: Regenerate.
* generated/minloc0_16_i8.c: Regenerate.
* generated/maxloc0_16_i8.c: Regenerate.
* generated/nearest_r8.c: Regenerate.
* generated/spacing_r16.c: Regenerate.
* generated/maxval_r16.c: Regenerate.
* generated/minloc1_8_i4.c: Regenerate.
* generated/minloc0_16_i16.c: Regenerate.
* generated/minloc0_4_r4.c: Regenerate.
* generated/set_exponent_r10.c: Regenerate.
* generated/rrspacing_r10.c: Regenerate.
* generated/minloc0_4_i2.c: Regenerate.
* generated/maxloc0_8_i1.c: Regenerate.
* generated/minloc0_8_i8.c: Regenerate.
* generated/spacing_r4.c: Regenerate.
* generated/minloc1_16_r10.c: Regenerate.
* generated/minloc0_16_i1.c: Regenerate.
* generated/maxloc0_16_i1.c: Regenerate.
* generated/maxloc1_8_r8.c: Regenerate.
* generated/minval_i16.c: Regenerate.
* generated/exponent_r10.c: Regenerate.
* generated/maxval_i4.c: Regenerate.
* generated/minval_i8.c: Regenerate.
* generated/maxloc1_4_i8.c: Regenerate.
* generated/fraction_r10.c: Regenerate.
* generated/maxloc0_16_i16.c: Regenerate.
* generated/maxloc0_8_r4.c: Regenerate.
* generated/rrspacing_r8.c: Regenerate.
* generated/minloc1_4_i16.c: Regenerate.
* generated/minloc0_4_r10.c: Regenerate.
* generated/maxloc1_4_i16.c: Regenerate.
* generated/minloc0_8_i16.c: Regenerate.
* generated/maxloc0_4_r10.c: Regenerate.
* generated/maxloc0_8_i16.c: Regenerate.
* generated/minloc1_8_r10.c: Regenerate.
* generated/minloc0_16_r4.c: Regenerate.
* generated/maxloc1_8_r10.c: Regenerate.
* generated/maxloc0_16_r4.c: Regenerate.
* generated/minloc1_16_r8.c: Regenerate.
* generated/minloc0_8_i1.c: Regenerate.
* generated/maxloc0_4_i4.c: Regenerate.
* generated/maxloc1_16_r8.c: Regenerate.
* generated/maxloc0_8_i2.c: Regenerate.
* generated/nearest_r16.c: Regenerate.
* generated/maxloc1_16_r10.c: Regenerate.
* generated/minloc0_16_i2.c: Regenerate.
* generated/minloc1_8_r8.c: Regenerate.
* generated/maxloc0_16_i2.c: Regenerate.
* generated/exponent_r4.c: Regenerate.
* generated/spacing_r10.c: Regenerate.
* generated/maxval_r10.c: Regenerate.
* generated/minval_i1.c: Regenerate.
* generated/maxloc1_4_i1.c: Regenerate.
* generated/minloc1_4_i8.c: Regenerate.
* generated/minloc0_8_r4.c: Regenerate.
* generated/minloc0_16_r16.c: Regenerate.
* generated/minloc0_4_i4.c: Regenerate.
* generated/minloc0_8_i2.c: Regenerate.
* generated/minval_r4.c: Regenerate.
* generated/maxloc1_4_r4.c: Regenerate.
* generated/maxval_r8.c: Regenerate.
* generated/minval_r16.c: Regenerate.
* generated/minloc1_4_i1.c: Regenerate.
* generated/minval_i2.c: Regenerate.
* generated/maxloc1_4_i2.c: Regenerate.
* generated/maxloc1_8_i8.c: Regenerate.
* generated/maxloc0_4_r8.c: Regenerate.
* generated/maxloc0_16_r16.c: Regenerate.
* generated/minloc1_4_r16.c: Regenerate.
* generated/fraction_r8.c: Regenerate.
* generated/maxloc1_4_r16.c: Regenerate.
* generated/set_exponent_r4.c: Regenerate.
* generated/minloc0_8_r16.c: Regenerate.
* generated/maxloc0_8_r16.c: Regenerate.
* generated/nearest_r10.c: Regenerate.
* generated/maxloc0_8_i4.c: Regenerate.
* generated/minloc1_4_r4.c: Regenerate.
* generated/minloc0_16_i4.c: Regenerate.
* generated/maxloc0_16_i4.c: Regenerate.
* generated/nearest_r4.c: Regenerate.
* generated/minloc1_16_i8.c: Regenerate.
* generated/maxloc1_16_i8.c: Regenerate.
* generated/minloc1_4_i2.c: Regenerate.
* generated/maxloc1_8_i1.c: Regenerate.
* generated/minloc0_16_r10.c: Regenerate.
* generated/minloc1_8_i8.c: Regenerate.
* generated/minloc0_4_r8.c: Regenerate.
* generated/minloc0_8_i4.c: Regenerate.
* generated/minloc1_16_i16.c: Regenerate.
* generated/spacing_r8.c: Regenerate.
* generated/maxloc1_8_r4.c: Regenerate.
* generated/minloc1_16_i1.c: Regenerate.
* generated/maxloc1_16_i1.c: Regenerate.
* generated/minval_r10.c: Regenerate.
* generated/minval_i4.c: Regenerate.
* generated/minloc1_8_i1.c: Regenerate.
* generated/maxloc1_4_i4.c: Regenerate.
* generated/maxloc1_8_i2.c: Regenerate.
* generated/maxval_i8.c: Regenerate.
* generated/maxloc0_16_r10.c: Regenerate.
* generated/rrspacing_r4.c: Regenerate.
* generated/minloc0_4_i16.c: Regenerate.
* generated/maxloc0_8_r8.c: Regenerate.
* generated/maxloc0_4_i16.c: Regenerate.
* generated/minloc1_4_r10.c: Regenerate.
* generated/minloc1_8_i16.c: Regenerate.
* generated/maxloc1_4_r10.c: Regenerate.
* generated/minloc0_8_r10.c: Regenerate.
* generated/maxloc1_8_i16.c: Regenerate.
* generated/maxloc0_8_r10.c: Regenerate.
* generated/minloc1_16_r4.c: Regenerate.
* generated/maxloc1_16_r4.c: Regenerate.
* generated/minloc0_16_r8.c: Regenerate.
* generated/maxloc0_16_r8.c: Regenerate.
* generated/maxloc0_4_i8.c: Regenerate.
* generated/maxloc1_16_i16.c: Regenerate.
* generated/minloc1_8_r4.c: Regenerate.
* generated/minloc1_16_i2.c: Regenerate.
* generated/maxloc1_16_i2.c: Regenerate.
* generated/maxval_i16.c: Regenerate.
* generated/exponent_r8.c: Regenerate.
* generated/minloc1_4_i4.c: Regenerate.
* generated/maxval_i1.c: Regenerate.
* generated/minloc1_8_i2.c: Regenerate.
* generated/minloc0_8_r8.c: Regenerate.
* generated/set_exponent_r16.c: Regenerate.
* generated/maxloc0_4_i1.c: Regenerate.
* generated/rrspacing_r16.c: Regenerate.
* generated/minloc0_4_i8.c: Regenerate.
* generated/maxval_r4.c: Regenerate.
* configure: Regenerate.
* config.h.in: Regenerate.
From-SVN: r123623
2007-04-06 16:47:23 +00:00
Thomas Koenig
3d1f465aff
re PR fortran/30981 ([4.1 only] a ** exp fails for integer exponents if exp is "-huge()-1" (endless loop))
...
2007-03-04 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/30981
* m4/pow_m4: Use appropriate unsigned int type for u.
* generated/pow_c10_i16.c: Regenerated.
* generated/pow_c10_i4.c: Regenerated.
* generated/pow_c10_i8.c: Regenerated.
* generated/pow_c16_i16.c: Regenerated.
* generated/pow_c16_i4.c: Regenerated.
* generated/pow_c16_i8.c: Regenerated.
* generated/pow_c4_i16.c: Regenerated.
* generated/pow_c4_i4.c: Regenerated.
* generated/pow_c4_i8.c: Regenerated.
* generated/pow_c8_i16.c: Regenerated.
* generated/pow_c8_i4.c: Regenerated.
* generated/pow_c8_i8.c: Regenerated.
* generated/pow_i16_i16.c: Regenerated.
* generated/pow_i16_i4.c: Regenerated.
* generated/pow_i16_i8.c: Regenerated.
* generated/pow_i4_i16.c: Regenerated.
* generated/pow_i4_i4.c: Regenerated.
* generated/pow_i4_i8.c: Regenerated.
* generated/pow_i8_i16.c: Regenerated.
* generated/pow_i8_i4.c: Regenerated.
* generated/pow_i8_i8.c: Regenerated.
* generated/pow_r10_i16.c: Regenerated.
* generated/pow_r10_i4.c: Regenerated.
* generated/pow_r10_i8.c: Regenerated.
* generated/pow_r16_i16.c: Regenerated.
* generated/pow_r16_i4.c: Regenerated.
* generated/pow_r16_i8.c: Regenerated.
* generated/pow_r4_i16.c: Regenerated.
* generated/pow_r4_i4.c: Regenerated.
* generated/pow_r4_i8.c: Regenerated.
* generated/pow_r8_i16.c: Regenerated.
* generated/pow_r8_i4.c: Regenerated.
* generated/pow_r8_i8.c: Regenerated.
2007-03-04 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/30981
* gfortran.dg/integer_exponentiation_1.f90: New test.
From-SVN: r122522
2007-03-04 08:03:34 +00:00
Thomas Koenig
567c915b04
re PR libfortran/30533 ([4.1 only] minval, maxval missing for kind=1 and kind=2)
...
2007-02-19 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/30533
PR libfortran/30765
* Makefile.am: Add $(srcdir) too all files in generated/.
(i_maxloc0_c): Add maxloc0_4_i1.c, maxloc0_8_i1.c,
maxloc0_16_i1.c, maxloc0_4_i2.c, maxloc0_8_i2.c and
maxloc0_16_i2.c.
(i_maxloc1_c): Add maxloc1_4_i1.c, maxloc1_8_i1.c,
maxloc1_16_i1.c, maxloc1_4_i2.c, maxloc1_8_i2.c and
maxloc1_16_i2.c.
(i_maxval_c): Add maxval_i1.c and maxval_i2.c.
(i_minloc0_c): Add minloc0_4_i1.c, minloc0_8_i1.c,
minloc0_16_i1.c, minloc0_4_i2.c, minloc0_8_i2.c and
minloc0_16_i2.c.
(i_minloc_1.c): Add minloc1_4_i1.c, minloc1_8_i1.c,
minloc1_16_i1.c, minloc1_4_i2.c, minloc1_8_i2.c and
minloc1_16_i2.c.
(i_minval_c): Add minval_i1.c and minval_i2.c.
(i_sum_c): Add sum_i1.c and sum_i2.c.
(i_product_c): Add product_i1.c and product_i2.c.
(i_matmul_c): Add matmul_i1.c and matmul_i2.c.
(gfor_built_specific_src): Remove $(srcdir) from target.
(gfor_bulit_specific2_src): Likewise.
Makefile.in: Regenerated.
libgfortran.h: Add GFC_INTEGER_1_HUGE and GFC_INTEGER_2_HUGE.
Add gfc_array_i1 and gfc_array_i2.
* generated/matmul_i1.c: New file.
* generated/matmul_i2.c: New file.
* generated/maxloc0_16_i1.c: New file.
* generated/maxloc0_16_i2.c: New file.
* generated/maxloc0_4_i1.c: New file.
* generated/maxloc0_4_i2.c: New file.
* generated/maxloc0_8_i1.c: New file.
* generated/maxloc0_8_i2.c: New file.
* generated/maxloc1_16_i1.c: New file.
* generated/maxloc1_16_i2.c: New file.
* generated/maxloc1_4_i1.c: New file.
* generated/maxloc1_4_i2.c: New file.
* generated/maxloc1_8_i1.c: New file.
* generated/maxloc1_8_i2.c: New file.
* generated/maxval_i1.c: New file.
* generated/maxval_i2.c: New file.
* generated/minloc0_16_i1.c: New file.
* generated/minloc0_16_i2.c: New file.
* generated/minloc0_4_i1.c: New file.
* generated/minloc0_4_i2.c: New file.
* generated/minloc0_8_i1.c: New file.
* generated/minloc0_8_i2.c: New file.
* generated/minloc1_16_i1.c: New file.
* generated/minloc1_16_i2.c: New file.
* generated/minloc1_4_i1.c: New file.
* generated/minloc1_4_i2.c: New file.
* generated/minloc1_8_i1.c: New file.
* generated/minloc1_8_i2.c: New file.
* generated/minval_i1.c: New file.
* generated/minval_i2.c: New file.
* generated/product_i1.c: New file.
* generated/product_i2.c: New file.
* generated/sum_i1.c: New file.
* generated/sum_i2.c: New file.
2007-02-19 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/30533
* fortran/iresolve.c(gfc_resolve_maxloc): Remove coercion of
argument to default integer.
(gfc_resolve_minloc): Likewise.
2007-02-19 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/30533
* gfortran.dg/intrinsic_intkinds_1.f90: New test.
From-SVN: r122137
2007-02-19 20:49:10 +00:00
Tobias Burnus
8811602900
re PR fortran/30512 ([4.1 only] MAXVAL() incorrect for zero-size int arrays, and for -HUGE-1 maximum values.)
...
fortran/
2007-02-09 Tobias Burnus <burnus@net-b.de>
PR fortran/30512
* trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc,
gfc_conv_intrinsic_minmaxval): Use HUGE-1 for most negative integer.
testsuite/
2007-02-09 Tobias Burnus <burnus@net-b.de>
PR fortran/30512
* gfortran.dg/maxlocval_1.f90: New test.
libgfortran/
2007-02-09 Thomas Koenig <Thomas.Koenig@online.de>
Tobias Burnus <burnus@net-b.de>
PR fortran/30512
* m4/iparm.m4: Use HUGE-1 for most negative integer.
* generated/maxloc1_8_i4.c: Regenerate.
* generated/maxloc0_8_i8.c: Regenerate.
* generated/maxloc1_16_i4.c: Regenerate.
* generated/maxloc0_16_i8.c: Regenerate.
* generated/maxval_i4.c: Regenerate.
* generated/maxloc1_4_i8.c: Regenerate.
* generated/maxloc0_16_i16.c: Regenerate.
* generated/maxloc1_4_i16.c: Regenerate.
* generated/maxloc0_8_i16.c: Regenerate.
* generated/maxloc0_4_i4.c: Regenerate.
* generated/maxloc1_8_i8.c: Regenerate.
* generated/maxloc0_8_i4.c: Regenerate.
* generated/maxloc0_16_i4.c: Regenerate.
* generated/maxloc1_16_i8.c: Regenerate.
* generated/maxloc1_4_i4.c: Regenerate.
* generated/maxval_i8.c: Regenerate.
* generated/maxloc0_4_i16.c: Regenerate.
* generated/maxloc1_8_i16.c: Regenerate.
* generated/maxloc0_4_i8.c: Regenerate.
* generated/maxloc1_16_i16.c: Regenerate.
* generated/maxval_i16.c: Regenerate.
From-SVN: r121777
2007-02-09 22:56:06 +01:00
Francois-Xavier Coudert
e6472bcede
gfortran.h (gfc_options_t): Add flag_allow_leading_underscore.
...
* 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.
* m4/misc_specifics.m4: Add _gfortran prefix to specific names.
* m4/specific2.m4: Likewise.
* m4/specific.m4: Likewise.
* intrinsics/f2c_specifics.F90: Likewise.
* intrinsics/selected_int_kind.f90: Add _gfortran prefix.
* intrinsics/selected_real_kind.f90: Likewise.
* intrinsics/dprod_r8.f90: Likewise.
* Makefile.am: Add -fallow-leading-underscore to the
gfor_specific_src files, as well as selected_real_kind.F90
and selected_int_kind.F90
* Makefile.in: Regenerate.
* generated/_sqrt_c8.F90: Regenerate.
* generated/_sign_r16.F90: Regenerate.
* generated/_log_c16.F90: Regenerate.
* generated/_sin_c10.F90: Regenerate.
* generated/_tanh_r4.F90: Regenerate.
* generated/_tanh_r8.F90: Regenerate.
* generated/_log10_r10.F90: Regenerate.
* generated/_aimag_c4.F90: Regenerate.
* generated/_sign_r4.F90: Regenerate.
* generated/_aimag_c8.F90: Regenerate.
* generated/_sign_r8.F90: Regenerate.
* generated/_mod_i4.F90: Regenerate.
* generated/_cos_r16.F90: Regenerate.
* generated/_aint_r10.F90: Regenerate.
* generated/_mod_i8.F90: Regenerate.
* generated/_abs_i16.F90: Regenerate.
* generated/_sqrt_c10.F90: Regenerate.
* generated/_atan2_r4.F90: Regenerate.
* generated/_cos_c4.F90: Regenerate.
* generated/_atan_r16.F90: Regenerate.
* generated/_tanh_r10.F90: Regenerate.
* generated/_atan2_r8.F90: Regenerate.
* generated/_cos_c8.F90: Regenerate.
* generated/_exp_r4.F90: Regenerate.
* generated/_log_r10.F90: Regenerate.
* generated/_exp_r8.F90: Regenerate.
* generated/_abs_r4.F90: Regenerate.
* generated/_abs_r8.F90: Regenerate.
* generated/_sin_r16.F90: Regenerate.
* generated/_tan_r4.F90: Regenerate.
* generated/_tan_r8.F90: Regenerate.
* generated/_sign_i4.F90: Regenerate.
* generated/_sign_i8.F90: Regenerate.
* generated/_exp_c16.F90: Regenerate.
* generated/_sqrt_r16.F90: Regenerate.
* generated/_conjg_c4.F90: Regenerate.
* generated/_conjg_c8.F90: Regenerate.
* generated/_dim_r16.F90: Regenerate.
* generated/_mod_r10.F90: Regenerate.
* generated/_abs_c10.F90: Regenerate.
* generated/_conjg_c16.F90: Regenerate.
* generated/_tan_r16.F90: Regenerate.
* generated/_asinh_r10.F90: Regenerate.
* generated/_abs_i4.F90: Regenerate.
* generated/_abs_i8.F90: Regenerate.
* generated/_acos_r10.F90: Regenerate.
* generated/_exp_r10.F90: Regenerate.
* generated/_acosh_r16.F90: Regenerate.
* generated/_atan2_r16.F90: Regenerate.
* generated/_cos_c16.F90: Regenerate.
* generated/_mod_i16.F90: Regenerate.
* generated/_asin_r4.F90: Regenerate.
* generated/_anint_r16.F90: Regenerate.
* generated/_asin_r8.F90: Regenerate.
* generated/_aimag_c10.F90: Regenerate.
* generated/_exp_c4.F90: Regenerate.
* generated/_sinh_r10.F90: Regenerate.
* generated/_exp_c8.F90: Regenerate.
* generated/_log10_r4.F90: Regenerate.
* generated/_log10_r8.F90: Regenerate.
* generated/_abs_c4.F90: Regenerate.
* generated/_abs_r16.F90: Regenerate.
* generated/_abs_c8.F90: Regenerate.
* generated/_asin_r10.F90: Regenerate.
* generated/_sign_r10.F90: Regenerate.
* generated/_atanh_r16.F90: Regenerate.
* generated/_log_c10.F90: Regenerate.
* generated/_cosh_r16.F90: Regenerate.
* generated/_sin_c16.F90: Regenerate.
* generated/_cos_r10.F90: Regenerate.
* generated/_log10_r16.F90: Regenerate.
* generated/_aint_r16.F90: Regenerate.
* generated/_acos_r4.F90: Regenerate.
* generated/_acos_r8.F90: Regenerate.
* generated/_sqrt_c16.F90: Regenerate.
* generated/_acosh_r4.F90: Regenerate.
* generated/_atan_r10.F90: Regenerate.
* generated/_acosh_r8.F90: Regenerate.
* generated/_sign_i16.F90: Regenerate.
* generated/_tanh_r16.F90: Regenerate.
* generated/_log_r4.F90: Regenerate.
* generated/_log_r8.F90: Regenerate.
* generated/_sin_r4.F90: Regenerate.
* generated/_sin_r8.F90: Regenerate.
* generated/_log_r16.F90: Regenerate.
* generated/_sin_r10.F90: Regenerate.
* generated/_sqrt_r4.F90: Regenerate.
* generated/_exp_c10.F90: Regenerate.
* generated/_sqrt_r8.F90: Regenerate.
* generated/_asinh_r4.F90: Regenerate.
* generated/_sqrt_r10.F90: Regenerate.
* generated/_asinh_r8.F90: Regenerate.
* generated/_dim_r4.F90: Regenerate.
* generated/_dim_r8.F90: Regenerate.
* generated/_dim_r10.F90: Regenerate.
* generated/_cosh_r4.F90: Regenerate.
* generated/_conjg_c10.F90: Regenerate.
* generated/_tan_r10.F90: Regenerate.
* generated/_cosh_r8.F90: Regenerate.
* generated/_mod_r16.F90: Regenerate.
* generated/_abs_c16.F90: Regenerate.
* generated/_cos_r4.F90: Regenerate.
* generated/_asinh_r16.F90: Regenerate.
* generated/_cos_r8.F90: Regenerate.
* generated/_atanh_r4.F90: Regenerate.
* generated/_atanh_r8.F90: Regenerate.
* generated/_acos_r16.F90: Regenerate.
* generated/_anint_r4.F90: Regenerate.
* generated/_acosh_r10.F90: Regenerate.
* generated/_anint_r8.F90: Regenerate.
* generated/_exp_r16.F90: Regenerate.
* generated/_mod_r4.F90: Regenerate.
* generated/_cos_c10.F90: Regenerate.
* generated/_atan2_r10.F90: Regenerate.
* generated/_dim_i16.F90: Regenerate.
* generated/_mod_r8.F90: Regenerate.
* generated/_anint_r10.F90: Regenerate.
* generated/_aint_r4.F90: Regenerate.
* generated/_aint_r8.F90: Regenerate.
* generated/_dim_i4.F90: Regenerate.
* generated/_sinh_r4.F90: Regenerate.
* generated/_log_c4.F90: Regenerate.
* generated/_dim_i8.F90: Regenerate.
* generated/_sinh_r8.F90: Regenerate.
* generated/_log_c8.F90: Regenerate.
* generated/_sin_c4.F90: Regenerate.
* generated/_sin_c8.F90: Regenerate.
* generated/misc_specifics.F90: Regenerate.
* generated/_abs_r10.F90: Regenerate.
* generated/_aimag_c16.F90: Regenerate.
* generated/_atan_r4.F90: Regenerate.
* generated/_sinh_r16.F90: Regenerate.
* generated/_atan_r8.F90: Regenerate.
* generated/_atanh_r10.F90: Regenerate.
* generated/_cosh_r10.F90: Regenerate.
* generated/_sqrt_c4.F90: Regenerate.
* generated/_asin_r16.F90: Regenerate.
From-SVN: r121007
2007-01-20 18:33:20 +00:00
Thomas Koenig
80ee04b982
re PR fortran/30321 (program crash for SUM applied to zero-size array)
...
2006-12-30 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/30321
* m4/ifunction.m4 (name`'rtype_qual`_'atype_code):
Check for extents < 0 for zero-sized arrays. If
no retarray has been specified and the size is zero,
return early.
(`m'name`'rtype_qual`_'atype_code): Likewise.
* generated/all_l16.c: Regenerated.
* generated/all_l4.c: Regenerated.
* generated/all_l8.c: Regenerated.
* generated/any_l16.c: Regenerated.
* generated/any_l4.c: Regenerated.
* generated/any_l8.c: Regenerated.
* generated/count_16_l16.c: Regenerated.
* generated/count_16_l4.c: Regenerated.
* generated/count_16_l8.c: Regenerated.
* generated/count_4_l16.c: Regenerated.
* generated/count_4_l4.c: Regenerated.
* generated/count_4_l8.c: Regenerated.
* generated/count_8_l16.c: Regenerated.
* generated/count_8_l4.c: Regenerated.
* generated/count_8_l8.c: Regenerated.
* generated/cshift1_16.c: Regenerated.
* generated/cshift1_4.c: Regenerated.
* generated/cshift1_8.c: Regenerated.
* generated/maxloc1_16_i16.c: Regenerated.
* generated/maxloc1_16_i4.c: Regenerated.
* generated/maxloc1_16_i8.c: Regenerated.
* generated/maxloc1_16_r10.c: Regenerated.
* generated/maxloc1_16_r16.c: Regenerated.
* generated/maxloc1_16_r4.c: Regenerated.
* generated/maxloc1_16_r8.c: Regenerated.
* generated/maxloc1_4_i16.c: Regenerated.
* generated/maxloc1_4_i4.c: Regenerated.
* generated/maxloc1_4_i8.c: Regenerated.
* generated/maxloc1_4_r10.c: Regenerated.
* generated/maxloc1_4_r16.c: Regenerated.
* generated/maxloc1_4_r4.c: Regenerated.
* generated/maxloc1_4_r8.c: Regenerated.
* generated/maxloc1_8_i16.c: Regenerated.
* generated/maxloc1_8_i4.c: Regenerated.
* generated/maxloc1_8_i8.c: Regenerated.
* generated/maxloc1_8_r10.c: Regenerated.
* generated/maxloc1_8_r16.c: Regenerated.
* generated/maxloc1_8_r4.c: Regenerated.
* generated/maxloc1_8_r8.c: Regenerated.
* generated/maxval_i16.c: Regenerated.
* generated/maxval_i4.c: Regenerated.
* generated/maxval_i8.c: Regenerated.
* generated/maxval_r10.c: Regenerated.
* generated/maxval_r16.c: Regenerated.
* generated/maxval_r4.c: Regenerated.
* generated/maxval_r8.c: Regenerated.
* generated/minloc1_16_i16.c: Regenerated.
* generated/minloc1_16_i4.c: Regenerated.
* generated/minloc1_16_i8.c: Regenerated.
* generated/minloc1_16_r10.c: Regenerated.
* generated/minloc1_16_r16.c: Regenerated.
* generated/minloc1_16_r4.c: Regenerated.
* generated/minloc1_16_r8.c: Regenerated.
* generated/minloc1_4_i16.c: Regenerated.
* generated/minloc1_4_i4.c: Regenerated.
* generated/minloc1_4_i8.c: Regenerated.
* generated/minloc1_4_r10.c: Regenerated.
* generated/minloc1_4_r16.c: Regenerated.
* generated/minloc1_4_r4.c: Regenerated.
* generated/minloc1_4_r8.c: Regenerated.
* generated/minloc1_8_i16.c: Regenerated.
* generated/minloc1_8_i4.c: Regenerated.
* generated/minloc1_8_i8.c: Regenerated.
* generated/minloc1_8_r10.c: Regenerated.
* generated/minloc1_8_r16.c: Regenerated.
* generated/minloc1_8_r4.c: Regenerated.
* generated/minloc1_8_r8.c: Regenerated.
* generated/minval_i16.c: Regenerated.
* generated/minval_i4.c: Regenerated.
* generated/minval_i8.c: Regenerated.
* generated/minval_r10.c: Regenerated.
* generated/minval_r16.c: Regenerated.
* generated/minval_r4.c: Regenerated.
* generated/minval_r8.c: Regenerated.
* generated/product_c10.c: Regenerated.
* generated/product_c16.c: Regenerated.
* generated/product_c4.c: Regenerated.
* generated/product_c8.c: Regenerated.
* generated/product_i16.c: Regenerated.
* generated/product_i4.c: Regenerated.
* generated/product_i8.c: Regenerated.
* generated/product_r10.c: Regenerated.
* generated/product_r16.c: Regenerated.
* generated/product_r4.c: Regenerated.
* generated/product_r8.c: Regenerated.
* generated/sum_c10.c: Regenerated.
* generated/sum_c16.c: Regenerated.
* generated/sum_c4.c: Regenerated.
* generated/sum_c8.c: Regenerated.
* generated/sum_i16.c: Regenerated.
* generated/sum_i4.c: Regenerated.
* generated/sum_i8.c: Regenerated.
* generated/sum_r10.c: Regenerated.
* generated/sum_r16.c: Regenerated.
* generated/sum_r4.c: Regenerated.
* generated/sum_r8.c: Regenerated.
2006-12-30 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/30321
* gfortran.dg/sum_zero_array_1.f90: New test.
From-SVN: r120287
2006-12-30 13:16:36 +00:00
Francois-Xavier Coudert
47c07d96b1
re PR libfortran/27895 (problem with RESHAPE and zero-sized arrays)
...
PR libfortran/27895
* intrinsics/reshape_generic.c (reshape_internal): Fix so that it
works correctly for zero-sized arrays.
* m4/reshape.m4: Likewise.
* generated/reshape_r16.c: Regenerate.
* generated/reshape_c4.c: Regenerate.
* generated/reshape_i4.c: Regenerate.
* generated/reshape_c16.c: Regenerate.
* generated/reshape_r10.c: Regenerate.
* generated/reshape_r8.c: Regenerate.
* generated/reshape_c10.c: Regenerate.
* generated/reshape_c8.c: Regenerate.
* generated/reshape_i8.c: Regenerate.
* generated/reshape_i16.c: Regenerate.
* generated/reshape_r4.c: Regenerate.
* gcc/testsuite/gfortran.dg/zero_sized_1.f90: Uncomment checks
for RESHAPE.
From-SVN: r118455
2006-11-03 11:51:09 +00:00
Francois-Xavier Coudert
5a0aad3165
re PR fortran/26025 (Optionally use BLAS for matmul)
...
PR fortran/26025
* lang.opt: Add -fexternal-blas and -fblas-matmul-limit options.
* options.c (gfc_init_options): Initialize new flags.
(gfc_handle_option): Handle new flags.
* gfortran.h (gfc_option): Add flag_external_blas and
blas_matmul_limit flags.
* trans-expr.c (gfc_conv_function_call): Use new argument
append_args, appending it at the end of the argument list
built for a function call.
* trans-stmt.c (gfc_trans_call): Use NULL_TREE for the new
append_args argument to gfc_trans_call.
* trans.h (gfc_conv_function_call): Update prototype.
* trans-decl.c (gfc_build_intrinsic_function_decls): Add
prototypes for BLAS ?gemm routines.
* trans-intrinsic.c (gfc_conv_intrinsic_funcall): Generate the
extra arguments given to the library matmul function, and give
them to gfc_conv_function_call.
* invoke.texi: Add documentation for -fexternal-blas and
-fblas-matmul-limit.
* m4/matmul.m4: Add possible call to gemm routine.
* generated/matmul_r8.c: Regenerate.
* generated/matmul_r16.c: Regenerate.
* generated/matmul_c8.c: Regenerate.
* generated/matmul_i8.c: Regenerate.
* generated/matmul_c16.c: Regenerate.
* generated/matmul_r10.c: Regenerate.
* generated/matmul_r4.c: Regenerate.
* generated/matmul_c10.c: Regenerate.
* generated/matmul_c4.c: Regenerate.
* generated/matmul_i4.c: Regenerate.
* generated/matmul_i16.c: Regenerate.
From-SVN: r117948
2006-10-22 07:41:48 +00:00
Francois-Xavier Coudert
5d7adf7a15
minval_r8.c: Regenerate.
...
* generated/minval_r8.c: Regenerate.
* generated/maxloc1_4_r8.c: Regenerate.
* generated/minloc1_16_r16.c: Regenerate.
* generated/sum_i8.c: Regenerate.
* generated/eoshift3_4.c: Regenerate.
* generated/any_l16.c: Regenerate.
* generated/eoshift1_8.c: Regenerate.
* generated/reshape_r16.c: Regenerate.
* generated/product_r4.c: Regenerate.
* generated/maxloc1_8_i4.c: Regenerate.
* generated/maxloc0_4_r4.c: Regenerate.
* generated/in_unpack_i8.c: Regenerate.
* generated/minloc0_4_r16.c: Regenerate.
* generated/reshape_c4.c: Regenerate.
* generated/maxloc0_4_r16.c: Regenerate.
* generated/minloc1_8_r16.c: Regenerate.
* generated/maxloc1_8_r16.c: Regenerate.
* generated/in_unpack_i16.c: Regenerate.
* generated/maxloc0_8_i8.c: Regenerate.
* generated/sum_r16.c: Regenerate.
* generated/minloc1_4_r8.c: Regenerate.
* generated/maxloc1_16_r16.c: Regenerate.
* generated/minloc1_16_i4.c: Regenerate.
* generated/maxloc1_16_i4.c: Regenerate.
* generated/minloc0_16_i8.c: Regenerate.
* generated/maxloc0_16_i8.c: Regenerate.
* generated/maxval_r16.c: Regenerate.
* generated/count_16_l16.c: Regenerate.
* generated/count_8_l8.c: Regenerate.
* generated/product_c10.c: Regenerate.
* generated/minloc1_8_i4.c: Regenerate.
* generated/minloc0_16_i16.c: Regenerate.
* generated/eoshift1_16.c: Regenerate.
* generated/minloc0_4_r4.c: Regenerate.
* generated/product_c4.c: Regenerate.
* generated/sum_r4.c: Regenerate.
* generated/in_pack_c16.c: Regenerate.
* generated/reshape_i4.c: Regenerate.
* generated/minloc0_8_i8.c: Regenerate.
* generated/minloc1_16_r10.c: Regenerate.
* generated/in_pack_c4.c: Regenerate.
* generated/all_l16.c: Regenerate.
* generated/reshape_c16.c: Regenerate.
* generated/maxloc1_8_r8.c: Regenerate.
* generated/minval_i16.c: Regenerate.
* generated/reshape_r10.c: Regenerate.
* generated/maxval_i4.c: Regenerate.
* generated/any_l4.c: Regenerate.
* generated/minval_i8.c: Regenerate.
* generated/maxloc1_4_i8.c: Regenerate.
* generated/maxloc0_16_i16.c: Regenerate.
* generated/maxloc0_8_r4.c: Regenerate.
* generated/minloc1_4_i16.c: Regenerate.
* generated/minloc0_4_r10.c: Regenerate.
* generated/maxloc1_4_i16.c: Regenerate.
* generated/minloc0_8_i16.c: Regenerate.
* generated/maxloc0_4_r10.c: Regenerate.
* generated/maxloc0_8_i16.c: Regenerate.
* generated/minloc1_8_r10.c: Regenerate.
* generated/product_i4.c: Regenerate.
* generated/minloc0_16_r4.c: Regenerate.
* generated/sum_c16.c: Regenerate.
* generated/maxloc1_8_r10.c: Regenerate.
* generated/maxloc0_16_r4.c: Regenerate.
* generated/minloc1_16_r8.c: Regenerate.
* generated/maxloc0_4_i4.c: Regenerate.
* generated/maxloc1_16_r8.c: Regenerate.
* generated/cshift1_4.c: Regenerate.
* generated/sum_r10.c: Regenerate.
* generated/sum_c4.c: Regenerate.
* generated/maxloc1_16_r10.c: Regenerate.
* generated/count_4_l16.c: Regenerate.
* generated/in_pack_i4.c: Regenerate.
* generated/minloc1_8_r8.c: Regenerate.
* generated/count_4_l4.c: Regenerate.
* generated/maxval_r10.c: Regenerate.
* generated/minloc1_4_i8.c: Regenerate.
* generated/in_unpack_c4.c: Regenerate.
* generated/minloc0_8_r4.c: Regenerate.
* generated/product_i16.c: Regenerate.
* generated/minloc0_16_r16.c: Regenerate.
* generated/reshape_r8.c: Regenerate.
* generated/all_l4.c: Regenerate.
* generated/in_pack_c10.c: Regenerate.
* generated/minloc0_4_i4.c: Regenerate.
* generated/reshape_c10.c: Regenerate.
* generated/minval_r4.c: Regenerate.
* generated/maxloc1_4_r4.c: Regenerate.
* generated/sum_i4.c: Regenerate.
* generated/count_16_l8.c: Regenerate.
* generated/maxval_r8.c: Regenerate.
* generated/eoshift1_4.c: Regenerate.
* generated/eoshift3_8.c: Regenerate.
* generated/minval_r16.c: Regenerate.
* generated/product_r8.c: Regenerate.
* generated/maxloc1_8_i8.c: Regenerate.
* generated/maxloc0_4_r8.c: Regenerate.
* generated/maxloc0_16_r16.c: Regenerate.
* generated/in_unpack_i4.c: Regenerate.
* generated/sum_c10.c: Regenerate.
* generated/minloc1_4_r16.c: Regenerate.
* generated/maxloc1_4_r16.c: Regenerate.
* generated/in_unpack_c16.c: Regenerate.
* generated/minloc0_8_r16.c: Regenerate.
* generated/reshape_c8.c: Regenerate.
* generated/maxloc0_8_r16.c: Regenerate.
* generated/maxloc0_8_i4.c: Regenerate.
* generated/minloc1_4_r4.c: Regenerate.
* generated/minloc0_16_i4.c: Regenerate.
* generated/maxloc0_16_i4.c: Regenerate.
* generated/minloc1_16_i8.c: Regenerate.
* generated/maxloc1_16_i8.c: Regenerate.
* generated/count_8_l4.c: Regenerate.
* generated/minloc0_16_r10.c: Regenerate.
* generated/minloc1_8_i8.c: Regenerate.
* generated/minloc0_4_r8.c: Regenerate.
* generated/product_r16.c: Regenerate.
* generated/product_c8.c: Regenerate.
* generated/sum_r8.c: Regenerate.
* generated/in_pack_i16.c: Regenerate.
* generated/minloc0_8_i4.c: Regenerate.
* generated/minloc1_16_i16.c: Regenerate.
* generated/reshape_i8.c: Regenerate.
* generated/in_pack_c8.c: Regenerate.
* generated/maxloc1_8_r4.c: Regenerate.
* generated/reshape_i16.c: Regenerate.
* generated/minval_r10.c: Regenerate.
* generated/minval_i4.c: Regenerate.
* generated/maxloc1_4_i4.c: Regenerate.
* generated/maxval_i8.c: Regenerate.
* generated/eoshift3_16.c: Regenerate.
* generated/any_l8.c: Regenerate.
* generated/maxloc0_16_r10.c: Regenerate.
* generated/minloc0_4_i16.c: Regenerate.
* generated/maxloc0_8_r8.c: Regenerate.
* generated/maxloc0_4_i16.c: Regenerate.
* generated/minloc1_4_r10.c: Regenerate.
* generated/minloc1_8_i16.c: Regenerate.
* generated/maxloc1_4_r10.c: Regenerate.
* generated/minloc0_8_r10.c: Regenerate.
* generated/maxloc1_8_i16.c: Regenerate.
* generated/in_unpack_c10.c: Regenerate.
* generated/maxloc0_8_r10.c: Regenerate.
* generated/minloc1_16_r4.c: Regenerate.
* generated/maxloc1_16_r4.c: Regenerate.
* generated/minloc0_16_r8.c: Regenerate.
* generated/product_i8.c: Regenerate.
* generated/maxloc0_16_r8.c: Regenerate.
* generated/sum_i16.c: Regenerate.
* generated/maxloc0_4_i8.c: Regenerate.
* generated/cshift1_8.c: Regenerate.
* generated/maxloc1_16_i16.c: Regenerate.
* generated/minloc1_8_r4.c: Regenerate.
* generated/sum_c8.c: Regenerate.
* generated/count_8_l16.c: Regenerate.
* generated/in_pack_i8.c: Regenerate.
* generated/maxval_i16.c: Regenerate.
* generated/count_4_l8.c: Regenerate.
* generated/minloc1_4_i4.c: Regenerate.
* generated/product_c16.c: Regenerate.
* generated/reshape_r4.c: Regenerate.
* generated/minloc0_8_r8.c: Regenerate.
* generated/in_unpack_c8.c: Regenerate.
* generated/product_r10.c: Regenerate.
* generated/cshift1_16.c: Regenerate.
* generated/all_l8.c: Regenerate.
* generated/minloc0_4_i8.c: Regenerate.
* generated/maxval_r4.c: Regenerate.
* generated/count_16_l4.c: Regenerate.
From-SVN: r117904
2006-10-20 11:52:56 +00:00
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
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
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
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
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
Francois-Xavier Coudert
3e7cb1c7e7
re PR fortran/28094 (Modulo of real(kind=10) variables doesn't work)
...
PR fortran/28094
* trans-intrinsic.c (gfc_conv_intrinsic_mod): Support cases where
there is no integer kind equal to the resulting real kind.
* intrinsic.c (add_functions): MODULO is not allowed as an actual
argument.
* Makefile.am: Add _mod_r10.F90 and _mod_r16.F90.
* Makefile.in: Regenerate.
* generated/_mod_r10.F90: New file.
* generated/_mod_r16.F90: New file.
From-SVN: r114961
2006-06-24 08:27:32 +00:00
Francois-Xavier Coudert
ecebfb8be1
re PR fortran/26769 (Implement transpose() and reshape() for real instead of using integer)
...
PR libfortran/26769
* iresolve.c (gfc_resolve_reshape): Call reshape_r4 and
reshape_r8 instead of reshape_4 and reshape_8.
(gfc_resolve_transpose): Likewise for transpose.
* Makefile.am: Add r4 and r8 versions of reshape and transpose.
* Makefile.in: Regenerate.
* generated/reshape_r4.c: New file.
* generated/reshape_r8.c: New file.
* generated/transpose_r4.c: New file.
* generated/transpose_r8.c: New file.
From-SVN: r114880
2006-06-22 06:04:02 +00:00
Paul Thomas
a4a11197f9
re PR fortran/25049 (TRANSPOSE not allowed in initialisation expression)
...
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-20 04:30:48 +00:00
Janne Blomqvist
6ff24d45dc
in_pack.m4: Add TODO comment about detecting temporaries...
...
2006-06-06 Janne Blomqvist <jb@gcc.gnu.org>
* m4/in_pack.m4: Add TODO comment about detecting temporaries,
remove test for stride 0, update copyright year.
* m4/transpose.m4: Remove test for stride 0, update copyright
year.
* m4/iforeach.m4: Likewise.
* m4/shape.m4: Likewise.
* m4/in_unpack.m4: Likewise.
* m4/reshape.m4: Likewise.
* m4/ifunction.m4: Likewise.
* m4/matmul.m4: Likewise.
* m4/matmull.m4: Likewise.
* intrinsics/etime.c: Likewise.
* intrinsics/transpose_generic.c: Likewise.
* intrinsics/spread_generic.c: Likewise.
* intrinsics/stat.c: Likewise.
* intrinsics/reshape_generic.c: Likewise.
* intrinsics/random.c: Likewise.
* generated/*: Regenerated from above changed m4 files.
From-SVN: r114424
2006-06-06 11:10:09 +03:00
Francois-Xavier Coudert
1633cb7cb6
re PR libfortran/26985 (incorrect matmul result)
...
PR libfortran/26985
* m4/matmul.m4: Correct the condition for the memset call,
and remove the unneeded call to size0.
* 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.
* gfortran.dg/matmul_2.f90: New test.
From-SVN: r113552
2006-05-05 11:08:23 +00:00
Jakub Jelinek
6d360fd8f2
re PR fortran/26769 (Implement transpose() and reshape() for real instead of using integer)
...
PR fortran/26769
* iresolve.c (gfc_resolve_reshape): Use reshape_r16 for real(16).
(gfc_resolve_transpose): Use transpose_r16 for real(16).
* Makefile.am (i_transpose_c): Add generated/transpose_r16.c.
(i_reshape_c): Add generated/reshape_r16.c.
* Makefile.in: Regenerated.
* generated/transpose_r16.c: Generated new file.
* generated/redhape_r16.c: Generated new file.
From-SVN: r113169
2006-04-22 09:08:58 +02:00
Thomas Koenig
9a0fb43ea1
re PR fortran/26769 (Implement transpose() and reshape() for real instead of using integer)
...
2006-03-25 Thomas Koenig <Thomas.Koenig@online.de>
PR fortran/26769
* iresolve.c (gfc_resolve_reshape): Remove doubling of
kind for complex. For real(kind=10), call reshape_r10.
(gfc_resolve_transpose): For real(kind=10), call
transpose_r10.
2006-03-25 Thomas Koenig <Thomas.Koenig@online.de>
PR fortran/26769
* Makefile.am: Add transpose_r10.c and reshape_r10.c.
* aclocal.m4: Regenerate using aclocal 1.9.3.
* Makefile.in: Regenerate using automake 1.9.3.
* m4/iparm.m4 (rtype_ccode): If rtype_letter is `i',
evaluate to rtype_kind, otherwise to rtype_code.
* generated/transpose_r10.c: Add.
* generated/reshape_r10.c: Add.
2006-03-25 Thomas Koenig <Thomas.Koenig@online.de>
PR fortran/26769
* gfortran.dg/transpose_reshape_r10.f90: New test case.
From-SVN: r112381
2006-03-25 21:15:48 +00:00
Thomas Koenig
97a6203866
re PR fortran/20935 (failed assertion for maxloc(n, mask=.true.))
...
2006-03-20 Thomas Koenig <Thomas.Koenig@online.de>
PR fortran/20935
* iresolve.c (gfc_resolve_maxloc): If mask is scalar,
prefix the function name with an "s". If the mask is scalar
or if its kind is smaller than gfc_default_logical_kind,
coerce it to default kind.
(gfc_resolve_maxval): Likewise.
(gfc_resolve_minloc): Likewise.
(gfc_resolve_minval): Likewise.
(gfc_resolve_product): Likewise.
(gfc_resolve_sum): Likewise.
2006-03-20 Thomas Koenig <Thomas.Koenig@online.de>
PR fortran/20935
* m4/iforeach.m4: Add SCALAR_FOREACH_FUNCTION macro.
* m4/ifunction.m4: Add SCALAR_ARRAY_FUNCTION macro.
* m4/minloc0.m4: Use SCALAR_FOREACH_FUNCTION.
* m4/minloc1.m4: Use SCALAR_ARRAY_FUNCTION.
* m4/maxloc0.m4: Use SCALAR_FOREACH_FUNCTION.
* m4/maxloc1.m4: Use SCALAR_ARRAY_FUNCTION.
* m4/minval.m4: Likewise.
* m4/maxval.m4: Likewise.
* m4/product.m4: Likewise.
* m4/sum.m4: Likewise.
* minloc0_16_i16.c : Regenerated.
* minloc0_16_i4.c : Regenerated.
* minloc0_16_i8.c : Regenerated.
* minloc0_16_r10.c : Regenerated.
* minloc0_16_r16.c : Regenerated.
* minloc0_16_r4.c : Regenerated.
* minloc0_16_r8.c : Regenerated.
* minloc0_4_i16.c : Regenerated.
* minloc0_4_i4.c : Regenerated.
* minloc0_4_i8.c : Regenerated.
* minloc0_4_r10.c : Regenerated.
* minloc0_4_r16.c : Regenerated.
* minloc0_4_r4.c : Regenerated.
* minloc0_4_r8.c : Regenerated.
* minloc0_8_i16.c : Regenerated.
* minloc0_8_i4.c : Regenerated.
* minloc0_8_i8.c : Regenerated.
* minloc0_8_r10.c : Regenerated.
* minloc0_8_r16.c : Regenerated.
* minloc0_8_r4.c : Regenerated.
* minloc0_8_r8.c : Regenerated.
* minloc1_16_i16.c : Regenerated.
* minloc1_16_i4.c : Regenerated.
* minloc1_16_i8.c : Regenerated.
* minloc1_16_r10.c : Regenerated.
* minloc1_16_r16.c : Regenerated.
* minloc1_16_r4.c : Regenerated.
* minloc1_16_r8.c : Regenerated.
* minloc1_4_i16.c : Regenerated.
* minloc1_4_i4.c : Regenerated.
* minloc1_4_i8.c : Regenerated.
* minloc1_4_r10.c : Regenerated.
* minloc1_4_r16.c : Regenerated.
* minloc1_4_r4.c : Regenerated.
* minloc1_4_r8.c : Regenerated.
* minloc1_8_i16.c : Regenerated.
* minloc1_8_i4.c : Regenerated.
* minloc1_8_i8.c : Regenerated.
* minloc1_8_r10.c : Regenerated.
* minloc1_8_r16.c : Regenerated.
* minloc1_8_r4.c : Regenerated.
* minloc1_8_r8.c : Regenerated.
* maxloc0_16_i16.c : Regenerated.
* maxloc0_16_i4.c : Regenerated.
* maxloc0_16_i8.c : Regenerated.
* maxloc0_16_r10.c : Regenerated.
* maxloc0_16_r16.c : Regenerated.
* maxloc0_16_r4.c : Regenerated.
* maxloc0_16_r8.c : Regenerated.
* maxloc0_4_i16.c : Regenerated.
* maxloc0_4_i4.c : Regenerated.
* maxloc0_4_i8.c : Regenerated.
* maxloc0_4_r10.c : Regenerated.
* maxloc0_4_r16.c : Regenerated.
* maxloc0_4_r4.c : Regenerated.
* maxloc0_4_r8.c : Regenerated.
* maxloc0_8_i16.c : Regenerated.
* maxloc0_8_i4.c : Regenerated.
* maxloc0_8_i8.c : Regenerated.
* maxloc0_8_r10.c : Regenerated.
* maxloc0_8_r16.c : Regenerated.
* maxloc0_8_r4.c : Regenerated.
* maxloc0_8_r8.c : Regenerated.
* maxloc1_16_i16.c : Regenerated.
* maxloc1_16_i4.c : Regenerated.
* maxloc1_16_i8.c : Regenerated.
* maxloc1_16_r10.c : Regenerated.
* maxloc1_16_r16.c : Regenerated.
* maxloc1_16_r4.c : Regenerated.
* maxloc1_16_r8.c : Regenerated.
* maxloc1_4_i16.c : Regenerated.
* maxloc1_4_i4.c : Regenerated.
* maxloc1_4_i8.c : Regenerated.
* maxloc1_4_r10.c : Regenerated.
* maxloc1_4_r16.c : Regenerated.
* maxloc1_4_r4.c : Regenerated.
* maxloc1_4_r8.c : Regenerated.
* maxloc1_8_i16.c : Regenerated.
* maxloc1_8_i4.c : Regenerated.
* maxloc1_8_i8.c : Regenerated.
* maxloc1_8_r10.c : Regenerated.
* maxloc1_8_r16.c : Regenerated.
* maxloc1_8_r4.c : Regenerated.
* maxloc1_8_r8.c : Regenerated.
* maxval_i16.c : Regenerated.
* maxval_i4.c : Regenerated.
* maxval_i8.c : Regenerated.
* maxval_r10.c : Regenerated.
* maxval_r16.c : Regenerated.
* maxval_r4.c : Regenerated.
* maxval_r8.c : Regenerated.
* minval_i16.c : Regenerated.
* minval_i4.c : Regenerated.
* minval_i8.c : Regenerated.
* minval_r10.c : Regenerated.
* minval_r16.c : Regenerated.
* minval_r4.c : Regenerated.
* minval_r8.c : Regenerated.
* sum_c10.c : Regenerated.
* sum_c16.c : Regenerated.
* sum_c4.c : Regenerated.
* sum_c8.c : Regenerated.
* sum_i16.c : Regenerated.
* sum_i4.c : Regenerated.
* sum_i8.c : Regenerated.
* sum_r10.c : Regenerated.
* sum_r16.c : Regenerated.
* sum_r4.c : Regenerated.
* sum_r8.c : Regenerated.
* product_c10.c : Regenerated.
* product_c16.c : Regenerated.
* product_c4.c : Regenerated.
* product_c8.c : Regenerated.
* product_i16.c : Regenerated.
* product_i4.c : Regenerated.
* product_i8.c : Regenerated.
* product_r10.c : Regenerated.
* product_r16.c : Regenerated.
* product_r4.c : Regenerated.
* product_r8.c : Regenerated.
2006-03-20 Thomas Koenig <Thomas.Koenig@online.de>
PR fortran/20935
* gfortran.dg/scalar_mask_2.f90: New test case.
From-SVN: r112230
2006-03-20 21:56:00 +00:00
Paul Thomas
a4b9e93e5d
re PR libfortran/25378 ([Fortran 2003] maxloc for all-false mask)
...
2006-03-13 Paul Thomas <pault@gcc.gnu.org>
PR fortran/25378
* trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Set the initial position to zero and
modify the condition for updating it, to implement the F2003 requirement for all(mask)
is false.
2006-03-13 Paul Thomas <pault@gcc.gnu.org>
PR fortran/25378
* libgfortran/m4/minloc1.m4: Set the initial position to zero and modify the condition for
updating it, to implement the F2003 requirement for all(mask).eq.false.
* libgfortran/m4/maxloc1.m4: The same.
* libgfortran/m4/iforeach.m4: The same.
* libgfortran/m4/minloc0.m4: The same.
* libgfortran/m4/maxloc0.m4: The same.
* libgfortran/generated/maxloc0_16_i16.c: Regenerated, together with 41 others.
* libgfortran/generated/minloc0_16_i16.c: Regenerated, together with 41 others.
2006-03-13 Paul Thomas <pault@gcc.gnu.org>
PR fortran/25378
* gfortran.fortran-torture/execute/intrinsic_mmloc_3.f90: Expand test to include more
permuatations of mask and index.
* testsuite/gfortran.dg/scalar_mask_1.f90: Modify last test to respond to F2003 spec.
that the position returned for an all false mask && condition is zero.
From-SVN: r112028
2006-03-13 22:49:56 +00:00
Francois-Xavier Coudert
83d38ece09
re PR libfortran/24903 (dotprod should use __builtin_conj)
...
PR libfortran/24903
* m4/dotprodc.m4: Use __builtin_conj instead of assigning real
and imaginary parts separately.
* generated/dotprod_c4.c: Regenerated.
* generated/dotprod_c8.c: Regenerated.
* generated/dotprod_c10.c: Regenerated.
* generated/dotprod_c16.c: Regenerated.
From-SVN: r111131
2006-02-16 07:52:22 +00:00
Richard Sandiford
1524f80b1c
Make-lang.in (fortran/trans-resolve.o): Depend on fortran/dependency.h.
...
gcc/fortran/
* Make-lang.in (fortran/trans-resolve.o): Depend on
fortran/dependency.h.
* gfortran.h (gfc_expr): Add an "inline_noncopying_intrinsic" flag.
* dependency.h (gfc_get_noncopying_intrinsic_argument): Declare.
(gfc_check_fncall_dependency): Change prototype.
* dependency.c (gfc_get_noncopying_intrinsic_argument): New function.
(gfc_check_argument_var_dependency): New function, split from
gfc_check_fncall_dependency.
(gfc_check_argument_dependency): New function.
(gfc_check_fncall_dependency): Replace the expression parameter with
separate symbol and argument list parameters. Generalize the function
to handle dependencies for any type of expression, not just variables.
Accept a further argument giving the intent of the expression being
tested. Ignore intent(in) arguments if that expression is also
intent(in).
* resolve.c: Include dependency.h.
(find_noncopying_intrinsics): New function.
(resolve_function, resolve_call): Call it on success.
* trans-array.h (gfc_conv_array_transpose): Declare.
(gfc_check_fncall_dependency): Remove prototype.
* trans-array.c (gfc_conv_array_transpose): New function.
* trans-intrinsic.c (gfc_conv_intrinsic_function): Don't use the
libcall handling if the expression is to be evaluated inline.
Add a case for handling inline transpose()s.
* trans-expr.c (gfc_trans_arrayfunc_assign): Adjust for the new
interface provided by gfc_check_fncall_dependency.
libgfortran/
* m4/matmul.m4: Use a different order in the special case of a
transposed first argument.
* generated/matmul_c4.c, generated/matmul_c8.c, generated/matmul_c10.c,
* generated/matmul_c16.c, generated/matmul_i4.c, generated/matmul_i8.c,
* generated/matmul_i10.c, generated/matmul_r4.c, generated/matmul_r8.c
* generated/matmul_r10.c, generated/matmul_r16.c: Regenerated.
Co-Authored-By: Victor Leikehman <LEI@il.ibm.com>
From-SVN: r108459
2005-12-13 05:23:12 +00:00
Janne Blomqvist
64acfd9910
libgfortran ChangeLog:
...
2005-11-27 Janne Blomqvist <jb@gcc.gnu.org>
* m4/*: Add const restrict to function arguments.
* generated/*.c: Regenerate.
From-SVN: r107573
2005-11-27 23:03:33 +02:00
Janne Blomqvist
8520690170
re PR libfortran/21468 (vectorizing libfortran)
...
2005-11-14 Janne Blomqvist <jb@gcc.gnu.org>
PR fortran/21468
* Makefile.am: Add -ftree-vectorize for compiling matmul.
* m4/matmul.m4: Add const and restrict to type declarations as
appropriate.
* m4/matmull.m4: Likewise.
* Makefile.in: Regenerated.
* generated/matmul_*.c: Likewise.
From-SVN: r106898
2005-11-14 21:48:31 +02:00
François-Xavier Coudert
644cb69f80
re PR libfortran/19308 (I/O library should support more real and integer kinds)
...
PR libfortran/19308
PR fortran/20120
PR libfortran/22437
* Makefile.am: Add generated files for large real and integers
kinds. Add a rule to create the kinds.inc c99_protos.inc files.
Use kinds.inc to preprocess Fortran generated files.
* libgfortran.h: Add macro definitions for GFC_INTEGER_16_HUGE,
GFC_REAL_10_HUGE and GFC_REAL_16_HUGE. Add types gfc_array_i16,
gfc_array_r10, gfc_array_r16, gfc_array_c10, gfc_array_c16,
gfc_array_l16.
* mk-kinds-h.sh: Define macros HAVE_GFC_LOGICAL_* and
HAVE_GFC_COMPLEX_* when these types are available.
* intrinsics/ishftc.c (ishftc16): New function for GFC_INTEGER_16.
* m4/all.m4, m4/any.m4, m4/count.m4, m4/cshift1.m4, m4/dotprod.m4,
m4/dotprodc.m4, m4/dotprodl.m4, m4/eoshift1.m4, m4/eoshift3.m4,
m4/exponent.m4, m4/fraction.m4, m4/in_pack.m4, m4/in_unpack.m4,
m4/matmul.m4, m4/matmull.m4, m4/maxloc0.m4, m4/maxloc1.m4,
m4/maxval.m4, m4/minloc0.m4, m4/minloc1.m4, m4/minval.m4, m4/mtype.m4,
m4/nearest.m4, m4/pow.m4, m4/product.m4, m4/reshape.m4,
m4/set_exponent.m4, m4/shape.m4, m4/specific.m4, m4/specific2.m4,
m4/sum.m4, m4/transpose.m4: Protect generated functions with
appropriate "#if defined (HAVE_GFC_type_kind)" preprocessor directives.
* Makefile.in: Regenerate.
* all files in generated/: Regenerate.
* f95-lang.c (DO_DEFINE_MATH_BUILTIN): Add support for long
double builtin function.
(gfc_init_builtin_functions): Add mfunc_longdouble,
mfunc_clongdouble and func_clongdouble_longdouble trees. Build
them for round, trunc, cabs, copysign and pow functions.
* iresolve.c (gfc_resolve_reshape, gfc_resolve_transpose): Add
case for kind 10 and 16.
* trans-decl.c: Add trees for cpowl10, cpowl16, ishftc16,
exponent10 and exponent16.
(gfc_build_intrinsic_function_decls): Build nodes for int16,
real10, real16, complex10 and complex16 types. Build all possible
combinations for function _gfortran_pow_?n_?n. Build function
calls cpowl10, cpowl16, ishftc16, exponent10 and exponent16.
* trans-expr.c (gfc_conv_power_op): Add case for integer(16),
real(10) and real(16).
* trans-intrinsic.c: Add suppport for long double builtin
functions in BUILT_IN_FUNCTION, LIBM_FUNCTION and LIBF_FUNCTION
macros.
(gfc_conv_intrinsic_aint): Add case for integer(16), real(10) and
real(16) kinds.
(gfc_build_intrinsic_lib_fndecls): Add support for real10_decl
and real16_decl in library functions.
(gfc_get_intrinsic_lib_fndecl): Add cases for real and complex
kinds 10 and 16.
(gfc_conv_intrinsic_exponent): Add cases for real(10) and real(16)
kinds.
(gfc_conv_intrinsic_sign): Likewise.
(gfc_conv_intrinsic_ishftc): Add case for integer(16) kind.
* trans-types.c (gfc_get_int_type, gfc_get_real_type,
gfc_get_complex_type, gfc_get_logical_type): Doesn't error out in
the case of kinds not available.
* trans.h: Declare trees for cpowl10, cpowl16, ishftc16,
exponent10 and exponent16.
* gfortran.dg/large_real_kind_2.F90: New test.
* gfortran.dg/large_integer_kind_2.f90: New test.
From-SVN: r104889
2005-10-03 07:22:20 +00:00
Francois-Xavier Coudert
1409cd0b8e
c99_protos.h: Add prototypes for C99 complex functions.
...
* c99_protos.h: Add prototypes for C99 complex functions.
* libgfortran.h: Include complex.h before c99_protos.h.
* intrinsics/c99_functions.c: Define HAVE_ macros for the
fallback functions we provide.
(cabsf, cabs, cabsl, cargf, carg, cargl, cexpf, cexp, cexpl,
clogf, clog, clogl, clog10f, clog10, clog10l, cpowf, cpow, cpowl,
cqsrtf, csqrt, csqrtl, csinhf, csinh, csinhl, ccoshf, ccosh,
ccoshl, ctanhf, ctanh, ctanhl, csinf, csin, csinl, ccosf, ccos,
ccosl, ctanf, ctan, ctanl): New fallback functions.
* Makefile.am (gfor_math_trig_c, gfor_math_trig_obj,
gfor_specific_c, gfor_cmath_src, gfor_cmath_obj): Remove.
* Makefile.in: Regenerate.
* configure.ac: Remove checks for csin. Add checks for all C99
complex functions.
* config.h.in: Regenerate.
* configure: Regenerate.
* aclocal.m4: Regenerate.
From-SVN: r104626
2005-09-25 21:39:58 +00:00
Richard Sandiford
7823229bc3
re PR fortran/19269 (transpose(reshape(...)) of character array segfaults.)
...
gcc/fortran/
PR target/19269
* iresolve.c (gfc_resolve_cshift, gfc_resolve_eoshift)
(gfc_resolve_pack, gfc_resolve_reshape, gfc_resolve_spread)
(gfc_resolve_transpose, gfc_resolve_unpack): Add "_char" to the name
for character-based operations.
(gfc_resolve_pack): Remove ATTRIBUTE_UNUSED from array argument.
(gfc_resolve_unpack): Copy the whole typespec from the vector.
* trans-array.c (gfc_conv_expr_descriptor): In the EXPR_FUNCTION
case, get the string length from the scalarization state.
libgfortran/
PR target/19269
* intrinsics/cshift0.c (cshift0): Add an extra size argument.
(cshift0_1, cshift0_2, cshift0_4, cshift0_8): Replace explicit
implementations with...
(DEFINE_CSHIFT): ...this new macro. Define character versions too.
* intrinsics/eoshift0.c (zeros): Delete.
(eoshift0): Add extra size and filler arguments. Use memset if no
bound is provided.
(eoshift0_1, eoshift0_2, eoshift0_4, eoshift0_8): Replace explicit
implementations with...
(DEFINE_EOSHIFT): ...this new macro. Define character versions too.
* intrinsics/eoshift2.c (zeros): Delete.
(eoshift2): Add extra size and filler arguments. Use memset if no
bound is provided.
(eoshift2_1, eoshift2_2, eoshift2_4, eoshift2_8): Replace explicit
implementations with...
(DEFINE_EOSHIFT): ...this new macro. Define character versions too.
* intrinsics/pack.c (pack_internal): New static function, reusing
the contents of pack and adding an extra size argument. Change
"mptr" rather than "m" when calculating the array size.
(pack): Redefine as a forwarder to pack_internal.
(pack_s_internal): New static function, reusing the contents of
pack_s and adding an extra size argument.
(pack_s): Redefine as a forwarder to pack_s_internal.
(pack_char, pack_s_char): New functions.
* intrinsics/reshape.c (reshape_internal): New static function,
reusing the contents of reshape and adding an extra size argument.
(reshape): Redefine as a forwarder to reshape_internal.
(reshape_char): New function.
* intrinsics/spread.c (spread_internal): New static function,
reusing the contents of spread and adding an extra size argument.
(spread): Redefine as a forwarder to spread_internal.
(spread_char): New function.
* intrinsics/transpose.c (transpose_internal): New static function,
reusing the contents of transpose and adding an extra size argument.
(transpose): Redefine as a forwarder to transpose_internal.
(transpose_char): New function.
* intrinsics/unpack.c (unpack_internal): New static function, reusing
the contents of unpack1 and adding extra size and fsize arguments.
(unpack1): Redefine as a forwarder to unpack_internal.
(unpack0): Call unpack_internal instead of unpack1.
(unpack1_char, unpack0_char): New functions.
* m4/cshift1.m4 (cshift1): New static function, reusing the contents
of cshift1_<kind> and adding an extra size argument.
(cshift1_<kind>): Redefine as a forwarder to cshift1.
(cshift1_<kind>_char): New function.
* m4/eoshift1.m4 (zeros): Delete.
(eoshift1): New static function, reusing the contents of
eoshift1_<kind> and adding extra size and filler arguments.
Fix calculation of hstride. Use memset if no bound is provided.
(eoshift1_<kind>): Redefine as a forwarder to eoshift1.
(eoshift1_<kind>_char): New function.
* m4/eoshift3.m4 (zeros): Delete.
(eoshift3): New static function, reusing the contents of
eoshift3_<kind> and adding extra size and filler arguments.
Use memset if no bound is provided.
(eoshift3_<kind>): Redefine as a forwarder to eoshift3.
(eoshift3_<kind>_char): New function.
* generated/cshift1_4.c, generated/cshift1_8.c,
* generated/eoshift1_4.c, generated/eoshift1_8.c,
* generated/eoshift3_4.c, generated/eoshift3_8.c: Regenerate.
From-SVN: r104217
2005-09-13 07:15:01 +00:00
Kelley Cook
fe2ae685a1
All files: Update FSF address.
...
2005-08-17 Kelley Cook <kcook@gcc.gnu.org>
* All files: Update FSF address.
From-SVN: r103194
2005-08-17 02:49:08 +00:00
Tobias Schlüter
efd4dc1a15
libgfortran.h (GFC_ARRAY_DESCRIPTOR): Replace 'type *base' by 'size_t offset'.
...
* libgfortran.h (GFC_ARRAY_DESCRIPTOR): Replace 'type *base' by
'size_t offset'.
* intrinsics/cshift0.c, intrinsics/eoshift0.c,
intrinsics/eoshift2.c,intrinsics/pack_generic.c,
intrinsics/reshape_generic.c, intrinsics/spread_generic.c,
intrinsics/transpose_generic.c, intrinsics/unpack_generic,
m4/cshift1.m4, m4/eoshift1.m4, m4/eoshift3.m4, m4/iforeach.m4,
m4/ifunction.m4, m4/matmul.m4, m4/matmull.m4, m4/reshape.m4,
m4,transpose.m4: Set renamed field 'offset' to zero instead of
'base'.
* generated/all_l4.c, generated/all_l8.c,
generated/any_l4.c, generated/any_l8.c, generated/count_4_l4.c,
generated/count_4_l8.c, generated/count_8_l4.c,
generated/count_8_l8.c, generated/chift1_4.c,
generated/cshift1_8.c, generated/eoshift1_4.c,
generated/eoshift1_8.c, generated/eoshift3_4.c,
generated/eoshift3_8.c, generated/matmul_c4.c,
generated/matmul_c8.c, generated/matmul_i4.c, matmul_i8.c,
generated/matmul_l4.c, generated/matmul_l8.c,
generated/matmul_r4.c, generated/matmul_r8.c,
generated/maxloc0_4_i4.c, generated/maxloc0_4_i8.c,
generated/maxloc0_4_r4.c, generated/maxloc0_4_r8.c,
generated/maxloc0_8_i4.c, generated/maxloc0_8_i8.c,
generated/maxloc0_8_r4.c, generated/maxloc0_8_r8.c,
generated/maxloc1_4_i4.c, generated/maxloc1_4_i8.c,
generated/maxloc1_4_r4.c, generated/maxloc1_4_r8.c,
generated/maxloc1_8_i4.c, generated/maxloc1_8_i8.c,
generated/maxloc1_8_r4.c, generated/maxloc1_8_r8.c,
generated/maxval_i4.c, generated/maxval_i8.c,
generated/maxval_r4.c, generated/maxval_r8.c,
generated/minloc0_4_i4.c, generated/minloc0_4_i8.c,
generated/minloc0_4_r4.c, generated/minloc0_4_r8.c,
generated/minloc0_8_i4.c, generated/minloc0_8_i8.c,
generated/minloc0_8_r4.c, generated/minloc0_8_r8.c,
generated/minloc1_4_i4.c, generated/minloc1_4_i8.c,
generated/minloc1_4_r4.c, generated/minloc1_4_r8.c,
generated/minloc1_8_i4.c, generated/minloc1_8_i8.c,
generated/minloc1_8_r4.c, generated/minloc1_8_r8.c,
generated/minval_i4.c, generated/minval_i8.c,
generated/minval_r4.c, generated/minval_r8.c,
generated/product_c4.c, generated/product_c8.c,
generated/product_i4.c, generated/product_i8.c,
generated/product_r4.c, generated/product_r8.c,
generated/reshape_c4.c, generated/reshape_c8.c,
generated/reshape_i4.c, generated/reshape_i8.c,
generated/sum_c4.c, generated/sum_c8.c, generated/sum_i4.c,
generated/sum_i8.c, generated/sum_r4.c, generated/sum_r8.c,
generated/transpose_c4.c, generated/transpose_c8.c,
generated/transpose_i4.c, generated/transpose_i8.c: Regenerate:
From-SVN: r101739
2005-07-08 00:08:06 +02:00
Thomas Koenig
47b3a403a5
re PR fortran/21594 ([4.0 only] FAIL: gfortran.dg/eoshift.f90 -O0 execution test)
...
2005-07-07 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/21594
* intrinsics/eoshift0.c: If abs(shift) > len, fill the
the whole array with the boundary value, but don't overrun it.
* intrinsics/eoshift2.c: Likewise.
* m4/eoshift1.m4: Likewise.
* m4/eoshift3.m4: Likewise.
* generated/eoshift1_4.c: Regenerated.
* generated/eoshift1_8.c: Regenerated.
* generated/eoshift3_4.c: Regenerated.
* generated/eoshift3_8.c: Regenerated.
2005-07-07 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/21594
* gfortran.fortran-torture/execute/intrinsic_eoshift.f90:
Add test cases where the shift length is greater than the
array length.
From-SVN: r101738
2005-07-07 22:01:41 +00:00
Thomas Koenig
7f8f6d5f05
re PR libfortran/22142 ([4.0 only] eoshift: boundary not filled in correctly)
...
2005-06-28 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/22142
* m4/eoshift1.m4: Correct bstride (it needs to be multiplied
by size since it's a char pointer).
* m4/eoshift1_4.c: Regenerated.
* m4/eoshift1_8.c: Regenerated.
2005-06-28 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/22142
* gfortran.fortran-torture/execute/intrinsic_eoshift.f90:
Add testcase also testing eoshift1 for PR 22142.
From-SVN: r101398
2005-06-28 23:07:20 +00:00
Thomas Koenig
0f363a3b8c
re PR libfortran/22142 ([4.0 only] eoshift: boundary not filled in correctly)
...
2005-06-28 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/22142
* m4/eoshift3.m4: Correct bstride (it needs to be multiplied
by size since it's a char pointer).
* m4/eoshift3_4.c: Regenerated.
* m4/eoshift3_8.c: Regenerated.
2005-06-28 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/22142
* gfortran.fortran-torture/execute/intrinsic_eoshift.f90:
Add testcase for PR 22142.
From-SVN: r101392
2005-06-28 21:57:45 +00:00
Thomas Koenig
0e6d033bc8
[multiple changes]
...
2005-06-25 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/22144
* m4/cshift1.m4: Remove const from argument ret.
Populate return array descriptor if ret->data is NULL.
* m4/eoshift1.m4: Likewise.
* m4/eoshift3.m4: Likewise.
* generated/cshift1_4.c: Regenerated.
* generated/cshift1_8.c: Regenerated.
* generated/eoshift1_4.c: Regenerated.
* generated/eoshift1_8.c: Regenerated.
* generated/eoshift3_4.c: Regenerated.
* generated/eoshift3_8.c: Regenerated.
2005-06-25 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/21144
* gfortran.dg/shift-alloc.f90: New testcase.
From-SVN: r101318
2005-06-25 09:56:37 +00:00
Steven G. Kargl
bf0606afc1
PR libfortran/PR21797
...
2005-06-12 Steven G. Kargl <kargls@comcast.net>
Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/PR21797
* m4/cexp.m4 (csqrt`'q): Add type qualifyer to
sqrt and fabs.
* generated/exp_c4.c: Regenerated.
Co-Authored-By: Thomas Koenig <Thomas.Koenig@online.de>
From-SVN: r100864
2005-06-12 21:00:57 +00:00
Thomas Koenig
3932808120
[multiple changes]
...
2005-06-11 Thomas Koenig <Thomas.Koenig@onlinde.de>
PR libfortran/21333
* Makefile.am: Add in_pack_c4.c, in_pack_c8.c, in_unpack_c4.c
and in_unpack_c8.c.
* Makefile.in: Regenerate.
* libgfortran.h: Declare internal_pack_c4, internal_pack_c8,
internal_unpack_c4 and internal_unpack_c8.
* m4/in_pack.m4: Use rtype_ccode insteald of rtype_kind
in function name.
Use sizeof (rtype_name) as size for memory allocation.
* m4/in_unpack.m4: Use rtype_ccode insteald of rtype_kind
in function name.
Use sizeof (rtype_name) for calculation of sizes for memcpy.
* runtime/in_pack_generic.c: For real, integer and logical
call internal_pack_4 if size==4 and internal_pack_8 if
size==8.
For complex, call internal_pack_c4 if size==8 and
internal_pack_c8 if size==16.
* runtime/in_unpack_generic.c: For real, integer and logical
call internal_unpack_4 if size==4 and internal_unpack_8 if
size==8.
For complex, call internal_unpack_c4 if size==8 and
internal_unpack_c8 if size==16.
* generated/in_pack_i4.c: Regenerated.
* generated/in_pack_i8.c: Regenerated.
* generated/in_unpack_i4.c: Regenerated.
* generated/in_unpack_i8.c: Regenerated.
* generated/in_pack_c4.c: New file.
* generated/in_pack_c8.c: New file.
* generated/in_unpack_c4.c: New file.
* generated/in_unpack_c8.c: New file.
2005-05-11 Thomas Koenig <Thomas.Koenig@online.de>
* gfortran.fortran-torture/execute/in-pack.f90: New test.
From-SVN: r100842
2005-06-11 19:39:13 +00:00
Thomas Koenig
92f5e87c2b
re PR fortran/21480 ([4.0 only] trivial reshape operation gives erroneous results)
...
2005-06-09 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/21480
* m4/reshape.m4: Use sizeof (rtype_name) for sizes to be passed
to reshape_packed.
* generated/reshape_c4.c: Regenerated.
* generated/reshape_c8.c: Regenerated.
* generated/reshape_i4.c: Regenerated.
* generated/reshape_i8.c: Regenerated.
2005-06-09 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/21480
* gfortran.dg/reshape-complex.f90: Add a test for a packed
complex array.
From-SVN: r100805
2005-06-09 19:43:27 +00:00
Thomas Koenig
ae740ccecd
re PR libfortran/21926 ([4.0 only] matmul does not deal with non-packed result)
...
2005-06-07 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/21926
* m4/matmul.m4: Correct zeroing of result for non-packed
arrays with lowest stride is one.
* generated/matmul_c4.c: Regenerated.
* generated/matmul_c8.c: Regenerated.
* generated/matmul_i4.c: Regenerated.
* generated/matmul_i8.c: Regenerated.
* generated/matmul_r4.c: Regenerated.
* generated/matmul_r8.c: Regenerated.
2005-06-07 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/21926
* gfortran.fortran-torture/execute/intrinsic_matmul.f90:
Test case where the return array has lowest stride one,
but isn't packed.
From-SVN: r100721
2005-06-07 20:46:17 +00:00
Thomas Koenig
8f4dc7afb1
re PR libfortran/21127 (reshape of complex broken)
...
2005-05-18 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/21127
* Makefile.am: Add generated/reshape_c4.c and
generated/reshape_c8.c.
* Makefile.in: Regenerated.
* m4/iparm.m4: Define rtype_ccode to be c4 or c8 for
complex types, 4 or 8 otherwise.
* m4/reshape.m4: Use rtype_ccode instead of rtype_kind
in function name.
* generated/reshape_c4.c: New file.
* generated/reshape_c8.c: New file.
2005-05-18 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/21127
* fortran/iresolve.c (gfc_resolve_reshape): Add
gfc_type_letter (BT_COMPLEX) for complex to
to resolved function name.
2005-05-18 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/21127
* gfortran.dg/reshape-complex.f90: New test.
From-SVN: r99925
2005-05-18 20:24:32 +00:00
Andreas Jaeger
7672ae2082
eoshift1.m4: Initialize variables to avoid warnings.
...
* m4/eoshift1.m4: Initialize variables to avoid warnings.
* m4/eoshift3.m4: Initialize variables to avoid warnings.
* generated/eoshift1_4.c, generated/eoshift1_8.c,
generated/eoshift3_4.c, generated/eoshift3_8.c: Regenerated.
* intrinsics/spread_generic.c (spread): Initialize variables to
avoid warnings.
* intrinsics/eoshift0.c (eoshift0): Initialize variables to avoid
warnings.
* intrinsics/eoshift2.c (eoshift2): Initialize variables to avoid
warnings.
* io/list_read.c (nml_get_obj_data): Initialize variables to avoid
warnings.
From-SVN: r99726
2005-05-15 17:50:09 +02:00
Andreas Jaeger
420aa7b82c
Remove extra whitespace.
...
From-SVN: r99720
2005-05-15 14:49:45 +02:00
Andreas Jaeger
4b6903ec2f
normalize.c (almostone_r4, [...]): Fix parameter list.
...
* runtime/normalize.c (almostone_r4, almostone_r8): Fix parameter
list.
* intrinsics/random.c (KISS_DEFAULT_SEED): Remove extra semicolon.
* io/transfer.c: Do not use empty initializers for global objects.
Add missing initializers.
* io/lock.c: Do not use empty initializers for global objects.
* io/close.c: Add missing initializers.
* runtime/environ.c: Add missing initializers. Do not use empty
initializers for global object.
(init_string): Mark argument as unused.
* runtime/main.c (cleanup): Fix parameter list.
* io/io.h: Fix parameter lists.
* m4/transpose.m4, m4/matmul.m4: Fix pointer cast to avoid
warning.
* generated/transpose_c4.c, generated/transpose_c8.c,
generated/transpose_i4.c, generated/transpose_i8.c,
generated/matmul_c4.c, generated/matmul_c8.c,
generated/matmul_i4.c, generated/matmul_i8.c,
generated/matmul_r4.c, generated/matmul_r8.c: Regenerated.
* io/write.c (nml_write_obj): Fix 64-bit problem.
* io/list_read.c (nml_get_obj_data): Add missing braces around
initializer to avoid warnings.
* intrinsics/etime.c (etime_sub): Remove unused variable.
From-SVN: r99719
2005-05-15 14:44:42 +02:00
Thomas Koenig
e33e218bad
re PR libfortran/21354 ([4.0 only] Rank 7 not handled correctly)
...
2005-05-04 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/21354
* m4/cshift1.m4: Change dimension of auxiliary arrays from
GFC_MAX_DIMENSION - 1 to GFC_MAX_DIMENSION.
* m4/eoshift1.m4: Likewise.
* m4/eoshift3.m4: Likewise.
* m4/ifunction.m4: Likewise.
* m4/in_pack.m4: Likewise.
* m4/in_unpack.m4: Likewise.
* intrinsics/cshift0.c: Likewise.
* intrinsics/eoshift0.c: Likewise.
* intrinsics/eoshift2.c: Likewise.
* intrinsics/random.c: Likewise.
* intrinsics/spread_generic.c: Likewise.
* intrinsics/stat.c: Likewise.
* generated/all_l4.c: Regenerated.
* generated/all_l8.c: Regenerated.
* generated/any_l4.c: Regenerated.
* generated/any_l8.c: Regenerated.
* generated/count_4_l4.c: Regenerated.
* generated/count_4_l8.c: Regenerated.
* generated/count_8_l4.c: Regenerated.
* generated/count_8_l8.c: Regenerated.
* generated/cshift1_4.c: Regenerated.
* generated/cshift1_8.c: Regenerated.
* generated/eoshift1_4.c: Regenerated.
* generated/eoshift1_8.c: Regenerated.
* generated/eoshift3_4.c: Regenerated.
* generated/eoshift3_8.c: Regenerated.
* generated/in_pack_i4.c: Regenerated.
* generated/in_pack_i8.c: Regenerated.
* generated/in_unpack_i4.c: Regenerated.
* generated/in_unpack_i8.c: Regenerated.
* generated/maxloc0_4_i4.c: Regenerated.
* generated/maxloc0_4_i8.c: Regenerated.
* generated/maxloc0_4_r4.c: Regenerated.
* generated/maxloc0_4_r8.c: Regenerated.
* generated/maxloc0_8_i4.c: Regenerated.
* generated/maxloc0_8_i8.c: Regenerated.
* generated/maxloc0_8_r4.c: Regenerated.
* generated/maxloc0_8_r8.c: Regenerated.
* generated/maxloc1_4_i4.c: Regenerated.
* generated/maxloc1_4_i8.c: Regenerated.
* generated/maxloc1_4_r4.c: Regenerated.
* generated/maxloc1_4_r8.c: Regenerated.
* generated/maxloc1_8_i4.c: Regenerated.
* generated/maxloc1_8_i8.c: Regenerated.
* generated/maxloc1_8_r4.c: Regenerated.
* generated/maxloc1_8_r8.c: Regenerated.
* generated/maxval_i4.c: Regenerated.
* generated/maxval_i8.c: Regenerated.
* generated/maxval_r4.c: Regenerated.
* generated/maxval_r8.c: Regenerated.
* generated/minloc0_4_i4.c: Regenerated.
* generated/minloc0_4_i8.c: Regenerated.
* generated/minloc0_4_r4.c: Regenerated.
* generated/minloc0_4_r8.c: Regenerated.
* generated/minloc0_8_i4.c: Regenerated.
* generated/minloc0_8_i8.c: Regenerated.
* generated/minloc0_8_r4.c: Regenerated.
* generated/minloc0_8_r8.c: Regenerated.
* generated/minloc1_4_i4.c: Regenerated.
* generated/minloc1_4_i8.c: Regenerated.
* generated/minloc1_4_r4.c: Regenerated.
* generated/minloc1_4_r8.c: Regenerated.
* generated/minloc1_8_i4.c: Regenerated.
* generated/minloc1_8_i8.c: Regenerated.
* generated/minloc1_8_r4.c: Regenerated.
* generated/minloc1_8_r8.c: Regenerated.
* generated/minval_i4.c: Regenerated.
* generated/minval_i8.c: Regenerated.
* generated/minval_r4.c: Regenerated.
* generated/minval_r8.c: Regenerated.
* generated/product_c4.c: Regenerated.
* generated/product_c8.c: Regenerated.
* generated/product_i4.c: Regenerated.
* generated/product_i8.c: Regenerated.
* generated/product_r4.c: Regenerated.
* generated/product_r8.c: Regenerated.
* generated/sum_c4.c: Regenerated.
* generated/sum_c8.c: Regenerated.
* generated/sum_i4.c: Regenerated.
* generated/sum_i8.c: Regenerated.
* generated/sum_r4.c: Regenerated.
* generated/sum_r8.c: Regenerated.
2005-05-04 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/21354
gfortran.dg/in_pack_rank7.f90: New test.
From-SVN: r99232
2005-05-04 21:38:23 +00:00
Paul Thomas
f6c7d65b66
Fix matmul PR18857 and supply testcase
...
From-SVN: r99041
2005-04-30 18:17:54 +00:00
Thomas Koenig
da8f3dcc5b
05-04-22 Thomas Koenig <Thomas.Koenig@online.de>
...
PR libfortran/20074
PR libfortran/20436
PR libfortran/21108
* gfortran.dg/nested_reshape.f90: new test
* gfortran.dg/reshape-alloc.f90: new test
* gfortran.dg/reshape.f90: new test
2005-04-22 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/20074
PR libfortran/20436
PR libfortran/21108
* m4/reshape.m4 (reshape_`'rtype_kind): rs, rex: New
variables, to be used in calculation of return array sizes.
Populate return array descriptor if ret->data is NULL.
Fix condition for early return (it used to test something
undefined if order was used).
Remove duplicate check wether pad is used.
* intrinsics/reshape_generic.c (reshape_generic): Likewise.
Fix a few places where the wrong variables were set.
* generated/reshape_i4.c: Regenerated.
* generated/reshape_i8.c: Regenerated.
From-SVN: r98585
2005-04-22 20:02:44 +00:00
Thomas Koenig
5f9bfaf2bc
005-04-17 Thomas Koenig <Thomas.Koenig@online.de>
...
PR libfortran/21075
* m4/reshape.m4 (reshape_`'rtype_kind): Change dimension
of auxiliary arrays from GFC_MAX_DIMENSIONS - 1 to
GFC_MAX_DIMENSIONS.
* intrinsics/reshape_generic.c (reshape_generic): Likewise.
* generated/reshape_i4.c: Regenerated.
* generated/reshape_i8.c: Regenerated.
2005-04-17 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/21075
* gfortran.dg/reshape_rank7.f90: New test.
From-SVN: r98288
2005-04-17 20:26:57 +00:00
Thomas Koenig
c6abe94dc1
re PR libfortran/19106 ([4.0 only] segfault in executable for print *,sum(a,dim=2,mask=a>0))
...
2005-04-13 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/19106
* m4/iforeach.c (name`'rtype_qual`_'atype_code): Add TODO
that setting correct strides is a front end job.
(`m'name`'rtype_qual`_'atype_code): Likewise. If mask has
a lowest stride of 0, adjust to 1.
* m4/ifunction.c (name`'rtype_qual`_'atype_code): Add TODO
that setting correct strides is a front end job.
(`m'name`'rtype_qual`_'atype_code): Likewise. If mask has
a lowest stride of 0, adjust to 1.
* maxloc0_4_i4.c: Regenerated
* maxloc0_4_i8.c: Regenerated
* maxloc0_4_r4.c: Regenerated
* maxloc0_4_r8.c: Regenerated
* maxloc0_8_i4.c: Regenerated
* maxloc0_8_i8.c: Regenerated
* maxloc0_8_r4.c: Regenerated
* maxloc0_8_r8.c: Regenerated
* maxloc1_4_i4.c: Regenerated
* maxloc1_4_i8.c: Regenerated
* maxloc1_4_r4.c: Regenerated
* maxloc1_4_r8.c: Regenerated
* maxloc1_8_i4.c: Regenerated
* maxloc1_8_i8.c: Regenerated
* maxloc1_8_r4.c: Regenerated
* maxloc1_8_r8.c: Regenerated
* maxval_i4.c: Regenerated
* maxval_i8.c: Regenerated
* maxval_r4.c: Regenerated
* maxval_r8.c: Regenerated
* minloc0_4_i4.c: Regenerated
* minloc0_4_i8.c: Regenerated
* minloc0_4_r4.c: Regenerated
* minloc0_4_r8.c: Regenerated
* minloc0_8_i4.c: Regenerated
* minloc0_8_i8.c: Regenerated
* minloc0_8_r4.c: Regenerated
* minloc0_8_r8.c: Regenerated
* minloc1_4_i4.c: Regenerated
* minloc1_4_i8.c: Regenerated
* minloc1_4_r4.c: Regenerated
* minloc1_4_r8.c: Regenerated
* minloc1_8_i4.c: Regenerated
* minloc1_8_i8.c: Regenerated
* minloc1_8_r4.c: Regenerated
* minloc1_8_r8.c: Regenerated
* minval_i4.c: Regenerated
* minval_i8.c: Regenerated
* minval_r4.c: Regenerated
* minval_r8.c: Regenerated
* product_c4.c: Regenerated
* product_c8.c: Regenerated
* product_i4.c: Regenerated
* product_i8.c: Regenerated
* product_r4.c: Regenerated
* product_r8.c: Regenerated
* sum_c4.c: Regenerated
* sum_c8.c: Regenerated
* sum_i4.c: Regenerated
* sum_i8.c: Regenerated
* sum_r4.c: Regenerated
* sum_r8.c: Regenerated
2005-04-13 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/19016
* gfortran.fortran-torture/execute/intrinsic_mmloc.f90:
Add tests with mask generated by expression.
* gfortran.fortran-torture/execute/intrinsic_mmval.f90: Likewise.
* gfortran.fortran-torture/execute/intrinsic_product.f90: Likewise.
* gfortran.fortran-torture/execute/intrinsic_sum.f90: Likewise.
From-SVN: r98052
2005-04-12 22:57:10 +00:00
Thomas Koenig
50dd63a962
re PR libfortran/19106 ([4.0 only] segfault in executable for print *,sum(a,dim=2,mask=a>0))
...
2005-04-09 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/19106
PR libfortran/19014
* m4/ifunction.m4 (name`'rtype_qual`_'atype_code): ditto.
If retarray->data is NULL (i.e. the front end does not
know the rank and dimenson of the array), fill in its
properties and allocate memory.
Change the assertions about rank and dimension of retarray into
runtime errors and only check them for retarray->data != NULL.
Do the same for correcting the stride from 0 to 1 in retarray.
(`m'name`'rtype_qual`_'atype_code): Likewise.
* m4/iforeach.m4 (name`'rtype_qual`_'atype_code): Likewise.
Change assertion about rank of array to runtime error.
(`m'name`'rtype_qual`_'atype_code): Likewise.
* generated/all_l4.c: Regenerated.
* generated/all_l8.c: Regenerated.
* generated/any_l4.c: Regenerated.
* generated/any_l8.c: Regenerated.
* generated/count_4_l4.c: Regenerated.
* generated/count_4_l8.c: Regenerated.
* generated/count_8_l4.c: Regenerated.
* generated/count_8_l8.c: Regenerated.
* generated/maxloc0_4_i4.c: Regenerated.
* generated/maxloc0_4_i8.c: Regenerated.
* generated/maxloc0_4_r4.c: Regenerated.
* generated/maxloc0_4_r8.c: Regenerated.
* generated/maxloc0_8_i4.c: Regenerated.
* generated/maxloc0_8_i8.c: Regenerated.
* generated/maxloc0_8_r4.c: Regenerated.
* generated/maxloc0_8_r8.c: Regenerated.
* generated/maxloc1_4_i4.c: Regenerated.
* generated/maxloc1_4_i8.c: Regenerated.
* generated/maxloc1_4_r4.c: Regenerated.
* generated/maxloc1_4_r8.c: Regenerated.
* generated/maxloc1_8_i4.c: Regenerated.
* generated/maxloc1_8_i8.c: Regenerated.
* generated/maxloc1_8_r4.c: Regenerated.
* generated/maxloc1_8_r8.c: Regenerated.
* generated/maxval_i4.c: Regenerated.
* generated/maxval_i8.c: Regenerated.
* generated/maxval_r4.c: Regenerated.
* generated/maxval_r8.c: Regenerated.
* generated/minloc0_4_i4.c: Regenerated.
* generated/minloc0_4_i8.c: Regenerated.
* generated/minloc0_4_r4.c: Regenerated.
* generated/minloc0_4_r8.c: Regenerated.
* generated/minloc0_8_i4.c: Regenerated.
* generated/minloc0_8_i8.c: Regenerated.
* generated/minloc0_8_r4.c: Regenerated.
* generated/minloc0_8_r8.c: Regenerated.
* generated/minloc1_4_i4.c: Regenerated.
* generated/minloc1_4_i8.c: Regenerated.
* generated/minloc1_4_r4.c: Regenerated.
* generated/minloc1_4_r8.c: Regenerated.
* generated/minloc1_8_i4.c: Regenerated.
* generated/minloc1_8_i8.c: Regenerated.
* generated/minloc1_8_r4.c: Regenerated.
* generated/minloc1_8_r8.c: Regenerated.
* generated/minval_i4.c: Regenerated.
* generated/minval_i8.c: Regenerated.
* generated/minval_r4.c: Regenerated.
* generated/minval_r8.c: Regenerated.
* generated/product_c4.c: Regenerated.
* generated/product_c8.c: Regenerated.
* generated/product_i4.c: Regenerated.
* generated/product_i8.c: Regenerated.
* generated/product_r4.c: Regenerated.
* generated/product_r8.c: Regenerated.
* generated/sum_c4.c: Regenerated.
* generated/sum_c8.c: Regenerated.
* generated/sum_i4.c: Regenerated.
* generated/sum_i8.c: Regenerated.
* generated/sum_r4.c: Regenerated.
* generated/sum_r8.c: Regenerated.
2005-04-09 Thomas Koenig <Thomas.Koenig@online.de>
* gfortran.fortran-torture/execute/intrinsic_anyall.f90:
Added test for callee-allocated arrays with write statements.
* gfortran.fortran-torture/execute/intrinsic_count.f90: Likewise.
* gfortran.fortran-torture/execute/intrinsic_mmloc.f90: Likewise.
* gfortran.fortran-torture/execute/intrinsic_mmval.f90: Likewise.
* gfortran.fortran-torture/execute/intrinsic_product.f90: Likewise.
* gfortran.fortran-torture/execute/intrinsic_sum.f90: Likewise.
From-SVN: r97929
2005-04-09 21:38:47 +00:00
James A. Morrison
587579571d
re PR fortran/19294 (intrinsic_transpose.f90 runtime crash)
...
2005-01-23 James A. Morrison <phython@gcc.gnu.org>
Paul Brook <paul@codesourcery.com>
PR fortran/19294
* iresolve.c (gfc_resolve_transpose): Resolve to transpose_c4 or
transpose_c8 for complex types.
libgfortran/
* Makefile.am: Add transpose_c4.c and transpose_c8.c.
* intrinsics/cshift0.c: Use separate optimized loops for complex types.
* m4/transpose.m4: Include type letter in function name.
* Makefile.in: Regenerate.
* generated/transpose_*.c: Regenerate.
Co-Authored-By: Paul Brook <paul@codesourcery.com>
From-SVN: r94116
2005-01-23 17:01:00 +00:00
Toon Moene
57dea9f62e
re PR libfortran/19280 (Inconsistent licensing of libgfortran)
...
2005-01-12 Toon Moene <toon@moene.indiv.nluug.nl>
PR libfortran/19280
c99_protos.h: License changed to GPL+exception.
libgfortran.h: Ditto.
intrinsics/abort.c: Ditto.
intrinsics/args.c: Ditto.
intrinsics/associated.c: Ditto.
intrinsics/bessel.c: Ditto.
intrinsics/c99_functions.c: Ditto.
intrinsics/cpu_time.c: Ditto.
intrinsics/cshift0.c: Ditto.
intrinsics/date_and_time.c: Ditto.
intrinsics/env.c: Ditto.
intrinsics/eoshift0.c: Ditto.
intrinsics/eoshift2.c: Ditto.
intrinsics/erf.c: Ditto.
intrinsics/etime.c: Ditto.
intrinsics/exit.c: Ditto.
intrinsics/flush.c: Ditto.
intrinsics/fnum.c: Ditto.
intrinsics/getXid.c: Ditto.
intrinsics/getcwd.c: Ditto.
intrinsics/ishftc.c: Ditto.
intrinsics/mvbits.c: Ditto.
intrinsics/pack_generic.c: Ditto.
intrinsics/rand.c: Ditto.
intrinsics/random.c: Ditto.
intrinsics/reshape_generic.c: Ditto.
intrinsics/reshape_packed.c: Ditto.
intrinsics/size.c: Ditto.
intrinsics/spread_generic.c: Ditto.
intrinsics/stat.c: Ditto.
intrinsics/string_intrinsics.c: Ditto.
intrinsics/system.c: Ditto.
intrinsics/system_clock.c: Ditto.
intrinsics/transpose_generic.c: Ditto.
intrinsics/umask.c: Ditto.
intrinsics/unlink.c: Ditto.
intrinsics/unpack_generic.c: Ditto.
io/backspace.c: Ditto.
io/close.c: Ditto.
io/endfile.c: Ditto.
io/format.c: Ditto.
io/inquire.c: Ditto.
io/io.h: Ditto.
io/list_read.c: Ditto.
io/lock.c: Ditto.
io/open.c: Ditto.
io/read.c: Ditto.
io/rewind.c: Ditto.
io/transfer.c: Ditto.
io/unit.c: Ditto.
io/unix.c: Ditto.
io/write.c: Ditto.
m4/all.m4: Ditto.
m4/any.m4: Ditto.
m4/cexp.m4: Ditto.
m4/chyp.m4: Ditto.
m4/count.m4: Ditto.
m4/cshift1.m4: Ditto.
m4/ctrig.m4: Ditto.
m4/dotprod.m4: Ditto.
m4/dotprodc.m4: Ditto.
m4/dotprodl.m4: Ditto.
m4/eoshift1.m4: Ditto.
m4/eoshift3.m4: Ditto.
m4/exponent.m4: Ditto.
m4/fraction.m4: Ditto.
m4/head.m4: Ditto.
m4/iforeach.m4: Ditto.
m4/ifunction.m4: Ditto.
m4/in_pack.m4: Ditto.
m4/in_unpack.m4: Ditto.
m4/iparm.m4: Ditto.
m4/matmul.m4: Ditto.
m4/matmull.m4: Ditto.
m4/maxloc0.m4: Ditto.
m4/maxloc1.m4: Ditto.
m4/maxval.m4: Ditto.
m4/minloc0.m4: Ditto.
m4/minloc1.m4: Ditto.
m4/minval.m4: Ditto.
m4/mtype.m4: Ditto.
m4/nearest.m4: Ditto.
m4/pow.m4: Ditto.
m4/product.m4: Ditto.
m4/reshape.m4: Ditto.
m4/set_exponent.m4: Ditto.
m4/shape.m4: Ditto.
m4/specific.m4: Ditto.
m4/specific2.m4: Ditto.
m4/sum.m4: Ditto.
m4/transpose.m4: Ditto.
m4/types.m4: Ditto.
runtime/environ.c: Ditto.
runtime/error.c: Ditto.
runtime/in_pack_generic.c: Ditto.
runtime/in_unpack_generic.c: Ditto.
runtime/main.c: Ditto.
runtime/memory.c: Ditto.
runtime/normalize.c: Ditto.
runtime/pause.c: Ditto.
runtime/select.c: Ditto.
runtime/stop.c: Ditto.
runtime/string.c: Ditto.
generated/_abs_c4.f90: Regenerated.
generated/_abs_c8.f90: Regenerated.
generated/_abs_i4.f90: Regenerated.
generated/_abs_i8.f90: Regenerated.
generated/_abs_r4.f90: Regenerated.
generated/_abs_r8.f90: Regenerated.
generated/_acos_r4.f90: Regenerated.
generated/_acos_r8.f90: Regenerated.
generated/_aint_r4.f90: Regenerated.
generated/_aint_r8.f90: Regenerated.
generated/_anint_r4.f90: Regenerated.
generated/_anint_r8.f90: Regenerated.
generated/_asin_r4.f90: Regenerated.
generated/_asin_r8.f90: Regenerated.
generated/_atan2_r4.f90: Regenerated.
generated/_atan2_r8.f90: Regenerated.
generated/_atan_r4.f90: Regenerated.
generated/_atan_r8.f90: Regenerated.
generated/_conjg_c4.f90: Regenerated.
generated/_conjg_c8.f90: Regenerated.
generated/_cos_c4.f90: Regenerated.
generated/_cos_c8.f90: Regenerated.
generated/_cos_r4.f90: Regenerated.
generated/_cos_r8.f90: Regenerated.
generated/_cosh_r4.f90: Regenerated.
generated/_cosh_r8.f90: Regenerated.
generated/_dim_i4.f90: Regenerated.
generated/_dim_i8.f90: Regenerated.
generated/_dim_r4.f90: Regenerated.
generated/_dim_r8.f90: Regenerated.
generated/_exp_c4.f90: Regenerated.
generated/_exp_c8.f90: Regenerated.
generated/_exp_r4.f90: Regenerated.
generated/_exp_r8.f90: Regenerated.
generated/_log10_r4.f90: Regenerated.
generated/_log10_r8.f90: Regenerated.
generated/_log_c4.f90: Regenerated.
generated/_log_c8.f90: Regenerated.
generated/_log_r4.f90: Regenerated.
generated/_log_r8.f90: Regenerated.
generated/_mod_i4.f90: Regenerated.
generated/_mod_i8.f90: Regenerated.
generated/_mod_r4.f90: Regenerated.
generated/_mod_r8.f90: Regenerated.
generated/_sign_i4.f90: Regenerated.
generated/_sign_i8.f90: Regenerated.
generated/_sign_r4.f90: Regenerated.
generated/_sign_r8.f90: Regenerated.
generated/_sin_c4.f90: Regenerated.
generated/_sin_c8.f90: Regenerated.
generated/_sin_r4.f90: Regenerated.
generated/_sin_r8.f90: Regenerated.
generated/_sinh_r4.f90: Regenerated.
generated/_sinh_r8.f90: Regenerated.
generated/_sqrt_c4.f90: Regenerated.
generated/_sqrt_c8.f90: Regenerated.
generated/_sqrt_r4.f90: Regenerated.
generated/_sqrt_r8.f90: Regenerated.
generated/_tan_r4.f90: Regenerated.
generated/_tan_r8.f90: Regenerated.
generated/_tanh_r4.f90: Regenerated.
generated/_tanh_r8.f90: Regenerated.
generated/all_l4.c: Regenerated.
generated/all_l8.c: Regenerated.
generated/any_l4.c: Regenerated.
generated/any_l8.c: Regenerated.
generated/count_4_l4.c: Regenerated.
generated/count_4_l8.c: Regenerated.
generated/count_8_l4.c: Regenerated.
generated/count_8_l8.c: Regenerated.
generated/cshift1_4.c: Regenerated.
generated/cshift1_8.c: Regenerated.
generated/dotprod_c4.c: Regenerated.
generated/dotprod_c8.c: Regenerated.
generated/dotprod_i4.c: Regenerated.
generated/dotprod_i8.c: Regenerated.
generated/dotprod_l4.c: Regenerated.
generated/dotprod_l8.c: Regenerated.
generated/dotprod_r4.c: Regenerated.
generated/dotprod_r8.c: Regenerated.
generated/eoshift1_4.c: Regenerated.
generated/eoshift1_8.c: Regenerated.
generated/eoshift3_4.c: Regenerated.
generated/eoshift3_8.c: Regenerated.
generated/exp_c4.c: Regenerated.
generated/exp_c8.c: Regenerated.
generated/exponent_r4.c: Regenerated.
generated/exponent_r8.c: Regenerated.
generated/fraction_r4.c: Regenerated.
generated/fraction_r8.c: Regenerated.
generated/hyp_c4.c: Regenerated.
generated/hyp_c8.c: Regenerated.
generated/in_pack_i4.c: Regenerated.
generated/in_pack_i8.c: Regenerated.
generated/in_unpack_i4.c: Regenerated.
generated/in_unpack_i8.c: Regenerated.
generated/matmul_c4.c: Regenerated.
generated/matmul_c8.c: Regenerated.
generated/matmul_i4.c: Regenerated.
generated/matmul_i8.c: Regenerated.
generated/matmul_l4.c: Regenerated.
generated/matmul_l8.c: Regenerated.
generated/matmul_r4.c: Regenerated.
generated/matmul_r8.c: Regenerated.
generated/maxloc0_4_i4.c: Regenerated.
generated/maxloc0_4_i8.c: Regenerated.
generated/maxloc0_4_r4.c: Regenerated.
generated/maxloc0_4_r8.c: Regenerated.
generated/maxloc0_8_i4.c: Regenerated.
generated/maxloc0_8_i8.c: Regenerated.
generated/maxloc0_8_r4.c: Regenerated.
generated/maxloc0_8_r8.c: Regenerated.
generated/maxloc1_4_i4.c: Regenerated.
generated/maxloc1_4_i8.c: Regenerated.
generated/maxloc1_4_r4.c: Regenerated.
generated/maxloc1_4_r8.c: Regenerated.
generated/maxloc1_8_i4.c: Regenerated.
generated/maxloc1_8_i8.c: Regenerated.
generated/maxloc1_8_r4.c: Regenerated.
generated/maxloc1_8_r8.c: Regenerated.
generated/maxval_i4.c: Regenerated.
generated/maxval_i8.c: Regenerated.
generated/maxval_r4.c: Regenerated.
generated/maxval_r8.c: Regenerated.
generated/minloc0_4_i4.c: Regenerated.
generated/minloc0_4_i8.c: Regenerated.
generated/minloc0_4_r4.c: Regenerated.
generated/minloc0_4_r8.c: Regenerated.
generated/minloc0_8_i4.c: Regenerated.
generated/minloc0_8_i8.c: Regenerated.
generated/minloc0_8_r4.c: Regenerated.
generated/minloc0_8_r8.c: Regenerated.
generated/minloc1_4_i4.c: Regenerated.
generated/minloc1_4_i8.c: Regenerated.
generated/minloc1_4_r4.c: Regenerated.
generated/minloc1_4_r8.c: Regenerated.
generated/minloc1_8_i4.c: Regenerated.
generated/minloc1_8_i8.c: Regenerated.
generated/minloc1_8_r4.c: Regenerated.
generated/minloc1_8_r8.c: Regenerated.
generated/minval_i4.c: Regenerated.
generated/minval_i8.c: Regenerated.
generated/minval_r4.c: Regenerated.
generated/minval_r8.c: Regenerated.
generated/nearest_r4.c: Regenerated.
generated/nearest_r8.c: Regenerated.
generated/pow_c4_i4.c: Regenerated.
generated/pow_c4_i8.c: Regenerated.
generated/pow_c8_i4.c: Regenerated.
generated/pow_c8_i8.c: Regenerated.
generated/pow_i4_i4.c: Regenerated.
generated/pow_i4_i8.c: Regenerated.
generated/pow_i8_i4.c: Regenerated.
generated/pow_i8_i8.c: Regenerated.
generated/pow_r4_i4.c: Regenerated.
generated/pow_r4_i8.c: Regenerated.
generated/pow_r8_i4.c: Regenerated.
generated/pow_r8_i8.c: Regenerated.
generated/product_c4.c: Regenerated.
generated/product_c8.c: Regenerated.
generated/product_i4.c: Regenerated.
generated/product_i8.c: Regenerated.
generated/product_r4.c: Regenerated.
generated/product_r8.c: Regenerated.
generated/reshape_i4.c: Regenerated.
generated/reshape_i8.c: Regenerated.
generated/set_exponent_r4.c: Regenerated.
generated/set_exponent_r8.c: Regenerated.
generated/shape_i4.c: Regenerated.
generated/shape_i8.c: Regenerated.
generated/sum_c4.c: Regenerated.
generated/sum_c8.c: Regenerated.
generated/sum_i4.c: Regenerated.
generated/sum_i8.c: Regenerated.
generated/sum_r4.c: Regenerated.
generated/sum_r8.c: Regenerated.
generated/transpose_i4.c: Regenerated.
generated/transpose_i8.c: Regenerated.
generated/trig_c4.c: Regenerated.
generated/trig_c8.c: Regenerated.
From-SVN: r93235
2005-01-12 21:27:33 +00:00
Richard Henderson
7f68c75fb3
iresolve.c (gfc_resolve_all, [...]): Use PREFIX.
...
gcc/fortran/
* iresolve.c (gfc_resolve_all, gfc_resolve_any, gfc_resolve_count,
gfc_resolve_cshift, gfc_resolve_dot_product, gfc_resolve_eoshift,
gfc_resolve_matmul, gfc_resolve_maxloc, gfc_resolve_maxval,
gfc_resolve_minloc, gfc_resolve_minval, gfc_resolve_pack,
gfc_resolve_product, gfc_resolve_reshape, gfc_resolve_shape,
gfc_resolve_spread, gfc_resolve_sum, gfc_resolve_transpose,
gfc_resolve_unpack: Use PREFIX.
libgfortran/
* intrinsics/cshift0.c, intrinsics/eoshift0.c, intrinsics/eoshift2.c,
intrinsics/pack_generic.c, intrinsics/reshape_generic.c,
intrinsics/spread_generic.c, intrinsics/transpose_generic.c,
intrinsics/unpack_generic.c, m4/cshift1.m4, m4/dotprod.m4,
m4/dotprodc.m4, m4/dotprodl.m4, m4/eoshift1.m4, m4/eoshift3.m4,
m4/iforeach.m4, m4/ifunction.m4, m4/matmul.m4, m4/matmull.m4,
m4/reshape.m4, m4/shape.m4, m4/transpose.m4: Use standard prefix
instead of "__".
* generated/*: Rebuild.
From-SVN: r92075
2004-12-12 18:47:58 -08:00
Richard Henderson
7d7b8bfe55
acinclude.m4 (LIBGFOR_CHECK_ATTRIBUTE_VISIBILITY): New.
...
* acinclude.m4 (LIBGFOR_CHECK_ATTRIBUTE_VISIBILITY): New.
(LIBGFOR_CHECK_ATTRIBUTE_DLLEXPORT): New.
(LIBGFOR_CHECK_ATTRIBUTE_ALIAS): New.
* configure.ac: Use them.
* configure, config.h.in, aclocal.m4: Rebuild.
* libgfortran.h (prefix): Remove.
(PREFIX, IPREFIX): New.
(sym_rename, sym_rename1, sym_rename2): New.
(internal_proto, export_proto, export_proto_np): New.
(iexport_proto, iexport): New.
(iexport_data_proto, iexport_data): New.
* intrinsics/abort.c, intrinsics/args.c, intrinsics/associated.c,
intrinsics/cpu_time.c, intrinsics/cshift0.c,
intrinsics/date_and_time.c, intrinsics/env.c, intrinsics/eoshift0.c,
intrinsics/eoshift2.c, intrinsics/etime.c, intrinsics/exit.c,
intrinsics/flush.c, intrinsics/fnum.c, intrinsics/getXid.c,
intrinsics/getcwd.c, intrinsics/ishftc.c, intrinsics/mvbits.c,
intrinsics/pack_generic.c, intrinsics/rand.c, intrinsics/random.c,
intrinsics/reshape_generic.c, intrinsics/size.c,
intrinsics/spread_generic.c, intrinsics/stat.c,
intrinsics/string_intrinsics.c, intrinsics/system.c,
intrinsics/system_clock.c, intrinsics/transpose_generic.c,
intrinsics/umask.c, intrinsics/unlink.c, intrinsics/unpack_generic.c,
io/backspace.c, io/close.c, io/endfile.c, io/inquire.c, io/io.h,
io/open.c, io/rewind.c, io/transfer.c, libgfortran.h, m4/cshift1.m4,
m4/dotprod.m4, m4/dotprodc.m4, m4/dotprodl.m4, m4/eoshift1.m4,
m4/eoshift3.m4, m4/exponent.m4, m4/fraction.m4, m4/iforeach.m4,
m4/ifunction.m4, m4/matmul.m4, m4/matmull.m4, m4/nearest.m4,
m4/pow.m4, m4/reshape.m4, m4/set_exponent.m4, m4/shape.m4,
m4/transpose.m4, runtime/environ.c, runtime/error.c,
runtime/in_pack_generic.c, runtime/in_unpack_generic.c,
runtime/main.c, runtime/memory.c, runtime/pause.c, runtime/select.c,
runtime/stop.c: Use them to mark symbols internal or external.
* generated/*: Rebuild.
From-SVN: r92045
2004-12-12 00:59:05 -08:00
Richard Henderson
07d3cebe24
cshift0.c, [...]: Use internal_malloc_size instead of internal_malloc.
...
* intrinsics/cshift0.c, intrinsics/eoshift0.c, intrinsics/eoshift2.c,
intrinsics/pack_generic.c, intrinsics/string_intrinsics.c,
intrinsics/transpose_generic.c, m4/ifunction.m4, m4/matmul.m4,
m4/matmull.m4, m4/transpose.m4: Use internal_malloc_size instead
of internal_malloc.
* generated/*: Rebuild.
From-SVN: r91799
2004-12-06 16:24:44 -08:00
Victor Leikehman
410d3bbaa2
Modified Files:
...
ChangeLog generated/matmul_c4.c generated/matmul_c8.c
generated/matmul_i4.c generated/matmul_i8.c
generated/matmul_r4.c generated/matmul_r8.c m4/matmul.m4
2004-11-18 Victor Leikehman <lei@il.ibm.com>
* m4/matmul.m4: Loops reordered to improve cache behavior.
* generated/matmul_??.c: Regenerated.
From-SVN: r90853
2004-11-18 08:45:11 +00:00
Victor Leikehman
883c9d4d12
matmul.m4, [...]: Allocate space if return value has NULL in its data field.
...
2004-09-09 Victor Leikehman <lei@il.ibm.com>
* m4/matmul.m4, m4/matmull.m4, intrinsics/eoshift0.c,
intrinsics/eoshift2.c, intrinsics/transpose_generic.c:
Allocate space if return value has NULL in its data field.
* generated/*.c: Regenerate.
From-SVN: r85717
2004-08-09 14:34:39 +00:00
Victor Leikehman
6c167c45b1
* libgfortran.h (array_t, size0) New declarations.
...
* m4/ifunction.m4, m4/transpose.m4, intrinsics/cshift0.c: Allocate
space if return value descriptor has NULL in its data field,
and initialize bounds and stride.
* intrinsics/size.c (array_t, size0): Declarations moved to
libgfortran.h.
* generated/*.c: Regenerate.
From-SVN: r85558
2004-08-04 14:30:46 +00:00
Paul Brook
1e38f15929
re PR fortran/16303 (Complex logarithm function sometimes chooses a non-principal branch)
...
PR fortran/16303
* m4/cexp.m4 (carg): Return -pi to pi.
* generated/exp_c?.c: Regenerate.
From-SVN: r84516
2004-07-11 16:05:08 +00:00
Feng Wang
5b200ac2c7
f95-lang.c (gfc_init_builtin_functions): Use vold_list_node.
...
* f95-lang.c (gfc_init_builtin_functions): Use vold_list_node.
Create decls for __builtin_pow{,f}.
* gfortran.h (PREFIX_LEN): Define.
* trans-decl.c (gfor_fndecl_math_powi): Add.
(gfor_fndecl_math_powf, gfor_fndecl_math_pow): Remove.
(gfc_build_intrinsic_function_decls): Create decls for powi.
* trans-expr.c (powi_table): Add.
(gfc_conv_integer_power): Remove.
(gfc_conv_powi): New function.
(gfc_conv_cst_int_power): New function.
(gfc_conv_power_op): Use new powi routines.
* trans.h (struct gfc_powdecl_list): Add.
(gfor_fndecl_math_powi): Add.
(gfor_fndecl_math_powf, gfor_fndecl_math_pow): Remove.
testsuite/
* gfortran.fortran-torture/execute/power.f90: Test constant integers.
libgfortran/
* Makefile.am (i_pow_c): Set it. Add build rule.
(gfor_built_src): Use it.
(m4_files): add m4/pow.m4.
* Makefile.in: Regenerate.
* m4/pow.m4: New file.
* generated/pow_*.c: Regenerate.
From-SVN: r82014
2004-05-19 00:34:59 +00:00
Paul Brook
c9e66eda1a
Makefile.am: Remove references to types.m4.
...
* Makefile.am: Remove references to types.m4.
* m4/iparm.m4: Merge with types.m4.
* m4/types.m4: Remove.
* m4/cshift1.m4, m4/dotprod.m4, m4/dotprodc.m4, m4/dotprodl.m4,
m4/eoshift1.m4, m4/eoshift3.m4, m4/iforeach.m4, m4/ifunction.m4,
m4/in_pack.m4, m4/in_unpack.m4, m4/iparm.m4, m4/matmul.m4,
m4/matmull.m4, m4/maxloc0.m4, m4/maxloc1.m4, m4/maxval.m4,
m4/minloc0.m4, m4/minloc1.m4, m4/minval.m4, m4/reshape.m4,
m4/shape.m4, m4/specific.m4, m4/specific2.m4, m4/transpose.m4):
Update to use new iparm.m4.
* generated/*.c: Regenerate.
From-SVN: r82003
2004-05-18 19:03:26 +00:00
Diego Novillo
6de9cd9a88
Merge tree-ssa-20020619-branch into mainline.
...
From-SVN: r81764
2004-05-13 02:41:07 -04:00