diff options
author | Tobias Burnus <burnus@net-b.de> | 2010-08-27 21:17:45 +0200 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2010-08-27 21:17:45 +0200 |
commit | 0cd0559e8ceb1764a41c8964f30a7de025956e8a (patch) | |
tree | def889db72c25844667547e301395013df023b00 /libgfortran/generated | |
parent | cbadd64af4764fe75658a20c229050453379841d (diff) | |
download | gcc-0cd0559e8ceb1764a41c8964f30a7de025956e8a.zip gcc-0cd0559e8ceb1764a41c8964f30a7de025956e8a.tar.gz gcc-0cd0559e8ceb1764a41c8964f30a7de025956e8a.tar.bz2 |
re PR fortran/33197 (Fortran 2008: math functions)
gcc/fortran/
2010-08-27 Tobias Burnus <burnus@net-b.de>
PR fortran/33197
* gcc/fortran/intrinsic.c (add_functions): Add norm2 and parity.
* gcc/fortran/intrinsic.h (gfc_check_norm2, gfc_check_parity):
gfc_simplify_norm2, gfc_simplify_parity, gfc_resolve_norm2,
gfc_resolve_parity): New prototypes.
* gcc/fortran/gfortran.h (gfc_isym_id): New enum items
GFC_ISYM_NORM2 and GFC_ISYM_PARITY.
* gcc/fortran/iresolve.c (gfc_resolve_norm2,
gfc_resolve_parity): New functions.
* gcc/fortran/check.c (gfc_check_norm2, gfc_check_parity):
New functions.
* gcc/fortran/trans-intrinsic.c (gfc_conv_intrinsic_arith,
gfc_conv_intrinsic_function): Handle NORM2 and PARITY.
* gcc/fortran/intrinsic.texi (NORM2, PARITY): Add.
* gcc/fortran/simplify.c (simplify_transformation_to_array):
Add post-processing opterator.
(gfc_simplify_all, gfc_simplify_any, gfc_simplify_count,
gfc_simplify_product, gfc_simplify_sum): Update call.
(add_squared, do_sqrt, gfc_simplify_norm2, do_xor,
gfc_simplify_parity): New functions.
gcc/testsuite/
2010-08-27 Tobias Burnus <burnus@net-b.de>
PR fortran/33197
* gcc/testsuite/gfortran.dg/norm2_1.f90: New.
* gcc/testsuite/gfortran.dg/norm2_2.f90: New.
* gcc/testsuite/gfortran.dg/norm2_3.f90: New.
* gcc/testsuite/gfortran.dg/norm2_4.f90: New.
* gcc/testsuite/gfortran.dg/parity_1.f90: New.
* gcc/testsuite/gfortran.dg/parity_2.f90: New.
* gcc/testsuite/gfortran.dg/parity_3.f90: New.
libgfortran/
2010-08-27 Tobias Burnus <burnus@net-b.de>
PR fortran/33197
* libgfortran/m4/ifunction.m4 (FINISH_ARRAY_FUNCTION,
ARRAY_FUNCTION): Allow expression after loop.
* libgfortran/m4/norm2.m4: New for _gfortran_norm2_r{4,8,10,16}.
* libgfortran/m4/parity.m4: New for
* _gfortran_parity_l{1,2,4,8,16}.
* libgfortran/gfortran.map: Add new functions.
* libgfortran/Makefile.am: Ditto.
* libgfortran/m4/minloc1.m4: Add empty argument for
* ARRAY_FUNCTION.
* libgfortran/m4/maxloc1.m4: Ditto.
* libgfortran/m4/all.m4: Ditto.
* libgfortran/m4/minval.m4: Ditto.
* libgfortran/m4/maxval.m4: Ditto.
* libgfortran/m4/count.m4: Ditto.
* libgfortran/m4/product.m4: Ditto.
* libgfortran/m4/any.m4: Ditto.
* Makefile.in: Regenerated.
* generated/minval_r8.c: Regenerated.
* generated/maxloc1_4_r8.c: Regenerated.
* generated/minloc1_16_r16.c: Regenerated.
* generated/norm2_r4.c: Regenerated.
* generated/sum_i8.c: Regenerated.
* generated/parity_l2.c: Regenerated.
* generated/any_l16.c: Regenerated.
* generated/maxval_i2.c: Regenerated.
* generated/any_l2.c: Regenerated.
* generated/product_r4.c: Regenerated.
* generated/maxloc1_8_i4.c: Regenerated.
* generated/parity_l16.c: Regenerated.
* generated/all_l1.c: Regenerated.
* generated/product_i2.c: Regenerated.
* generated/minloc1_8_r16.c: Regenerated.
* generated/maxloc1_8_r16.c: Regenerated.
* generated/sum_r16.c: Regenerated.
* generated/sum_i1.c: Regenerated.
* generated/minloc1_4_r8.c: Regenerated.
* generated/maxloc1_16_r16.c: Regenerated.
* generated/minloc1_16_i4.c: Regenerated.
* generated/maxloc1_16_i4.c: Regenerated.
* generated/maxval_r16.c: Regenerated.
* generated/product_c10.c: Regenerated.
* generated/minloc1_8_i4.c: Regenerated.
* generated/all_l2.c: Regenerated.
* generated/product_c4.c: Regenerated.
* generated/sum_r4.c: Regenerated.
* generated/all_l16.c: Regenerated.
* generated/minloc1_16_r10.c: Regenerated.
* generated/sum_i2.c: Regenerated.
* generated/maxloc1_8_r8.c: Regenerated.
* generated/minval_i16.c: Regenerated.
* generated/parity_l4.c: Regenerated.
* generated/maxval_i4.c: Regenerated.
* generated/any_l4.c: Regenerated.
* generated/minval_i8.c: Regenerated.
* generated/maxloc1_4_i8.c: Regenerated.
* generated/minloc1_4_i16.c: Regenerated.
* generated/maxloc1_4_i16.c: Regenerated.
* generated/minloc1_8_r10.c: Regenerated.
* generated/product_i4.c: Regenerated.
* generated/maxloc1_8_r10.c: Regenerated.
* generated/sum_c16.c: Regenerated.
* generated/minloc1_16_r8.c: Regenerated.
* generated/maxloc1_16_r8.c: Regenerated.
* generated/count_4_l.c: Regenerated.
* generated/sum_r10.c: Regenerated.
* generated/count_8_l.c: Regenerated.
* generated/sum_c4.c: Regenerated.
* generated/maxloc1_16_r10.c: Regenerated.
* generated/minloc1_8_r8.c: Regenerated.
* generated/maxval_r10.c: Regenerated.
* generated/minval_i1.c: Regenerated.
* generated/maxloc1_4_i1.c: Regenerated.
* generated/minloc1_4_i8.c: Regenerated.
* generated/product_i16.c: Regenerated.
* generated/all_l4.c: Regenerated.
* generated/norm2_r16.c: Regenerated.
* generated/minval_r4.c: Regenerated.
* generated/maxloc1_4_r4.c: Regenerated.
* generated/sum_i4.c: Regenerated.
* generated/maxval_r8.c: Regenerated.
* generated/norm2_r8.c: Regenerated.
* generated/minloc1_4_i1.c: Regenerated.
* generated/minval_r16.c: Regenerated.
* generated/minval_i2.c: Regenerated.
* generated/maxloc1_4_i2.c: Regenerated.
* generated/product_r8.c: Regenerated.
* generated/maxloc1_8_i8.c: Regenerated.
* generated/sum_c10.c: Regenerated.
* generated/minloc1_4_r16.c: Regenerated.
* generated/maxloc1_4_r16.c: Regenerated.
* generated/count_1_l.c: Regenerated.
* generated/minloc1_4_r4.c: Regenerated.
* generated/minloc1_16_i8.c: Regenerated.
* generated/maxloc1_16_i8.c: Regenerated.
* generated/minloc1_4_i2.c: Regenerated.
* generated/maxloc1_8_i1.c: Regenerated.
* generated/minloc1_8_i8.c: Regenerated.
* generated/product_r16.c: Regenerated.
* generated/product_c8.c: Regenerated.
* generated/sum_r8.c: Regenerated.
* generated/norm2_r10.c: Regenerated.
* generated/minloc1_16_i16.c: Regenerated.
* generated/maxloc1_8_r4.c: Regenerated.
* generated/minloc1_16_i1.c: Regenerated.
* generated/maxloc1_16_i1.c: Regenerated.
* generated/minval_r10.c: Regenerated.
* generated/count_16_l.c: Regenerated.
* generated/parity_l8.c: Regenerated.
* generated/minloc1_8_i1.c: Regenerated.
* generated/minval_i4.c: Regenerated.
* generated/maxloc1_4_i4.c: Regenerated.
* generated/maxloc1_8_i2.c: Regenerated.
* generated/maxval_i8.c: Regenerated.
* generated/any_l8.c: Regenerated.
* generated/minloc1_4_r10.c: Regenerated.
* generated/minloc1_8_i16.c: Regenerated.
* generated/maxloc1_4_r10.c: Regenerated.
* generated/maxloc1_8_i16.c: Regenerated.
* generated/minloc1_16_r4.c: Regenerated.
* generated/maxloc1_16_r4.c: Regenerated.
* generated/product_i8.c: Regenerated.
* generated/sum_i16.c: Regenerated.
* generated/count_2_l.c: Regenerated.
* generated/maxloc1_16_i16.c: Regenerated.
* generated/minloc1_8_r4.c: Regenerated.
* generated/sum_c8.c: Regenerated.
* generated/minloc1_16_i2.c: Regenerated.
* generated/maxloc1_16_i2.c: Regenerated.
* generated/parity_l1.c: Regenerated.
* generated/maxval_i16.c: Regenerated.
* generated/maxval_i1.c: Regenerated.
* generated/minloc1_4_i4.c: Regenerated.
* generated/any_l1.c: Regenerated.
* generated/minloc1_8_i2.c: Regenerated.
* generated/product_c16.c: Regenerated.
* generated/product_r10.c: Regenerated.
* generated/product_i1.c: Regenerated.
* generated/all_l8.c: Regenerated.
* generated/maxval_r4.c: Regenerated.
From-SVN: r163595
Diffstat (limited to 'libgfortran/generated')
122 files changed, 2085 insertions, 200 deletions
diff --git a/libgfortran/generated/all_l1.c b/libgfortran/generated/all_l1.c index 486bab2..400cfd9 100644 --- a/libgfortran/generated/all_l1.c +++ b/libgfortran/generated/all_l1.c @@ -1,8 +1,8 @@ /* Implementation of the ALL intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public diff --git a/libgfortran/generated/all_l16.c b/libgfortran/generated/all_l16.c index 35f8a96..abe10d7 100644 --- a/libgfortran/generated/all_l16.c +++ b/libgfortran/generated/all_l16.c @@ -1,8 +1,8 @@ /* Implementation of the ALL intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public diff --git a/libgfortran/generated/all_l2.c b/libgfortran/generated/all_l2.c index 81532ea..2cbd126 100644 --- a/libgfortran/generated/all_l2.c +++ b/libgfortran/generated/all_l2.c @@ -1,8 +1,8 @@ /* Implementation of the ALL intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public diff --git a/libgfortran/generated/all_l4.c b/libgfortran/generated/all_l4.c index 6657e15..14b6303 100644 --- a/libgfortran/generated/all_l4.c +++ b/libgfortran/generated/all_l4.c @@ -1,8 +1,8 @@ /* Implementation of the ALL intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public diff --git a/libgfortran/generated/all_l8.c b/libgfortran/generated/all_l8.c index 4c3d556..ae5e6fa 100644 --- a/libgfortran/generated/all_l8.c +++ b/libgfortran/generated/all_l8.c @@ -1,8 +1,8 @@ /* Implementation of the ALL intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public diff --git a/libgfortran/generated/any_l1.c b/libgfortran/generated/any_l1.c index a69f22e..f8af544 100644 --- a/libgfortran/generated/any_l1.c +++ b/libgfortran/generated/any_l1.c @@ -1,8 +1,8 @@ /* Implementation of the ANY intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public diff --git a/libgfortran/generated/any_l16.c b/libgfortran/generated/any_l16.c index b5ab5b2..f92d715 100644 --- a/libgfortran/generated/any_l16.c +++ b/libgfortran/generated/any_l16.c @@ -1,8 +1,8 @@ /* Implementation of the ANY intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public diff --git a/libgfortran/generated/any_l2.c b/libgfortran/generated/any_l2.c index 05673e8..9c5e90a 100644 --- a/libgfortran/generated/any_l2.c +++ b/libgfortran/generated/any_l2.c @@ -1,8 +1,8 @@ /* Implementation of the ANY intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public diff --git a/libgfortran/generated/any_l4.c b/libgfortran/generated/any_l4.c index 8f82741..44d5ed9 100644 --- a/libgfortran/generated/any_l4.c +++ b/libgfortran/generated/any_l4.c @@ -1,8 +1,8 @@ /* Implementation of the ANY intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public diff --git a/libgfortran/generated/any_l8.c b/libgfortran/generated/any_l8.c index 2a094f0..eabf830 100644 --- a/libgfortran/generated/any_l8.c +++ b/libgfortran/generated/any_l8.c @@ -1,8 +1,8 @@ /* Implementation of the ANY intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public diff --git a/libgfortran/generated/count_16_l.c b/libgfortran/generated/count_16_l.c index 8c3fc7d..d65999a 100644 --- a/libgfortran/generated/count_16_l.c +++ b/libgfortran/generated/count_16_l.c @@ -1,8 +1,8 @@ /* Implementation of the COUNT intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public diff --git a/libgfortran/generated/count_1_l.c b/libgfortran/generated/count_1_l.c index faf9176..b2d89f4 100644 --- a/libgfortran/generated/count_1_l.c +++ b/libgfortran/generated/count_1_l.c @@ -1,8 +1,8 @@ /* Implementation of the COUNT intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public diff --git a/libgfortran/generated/count_2_l.c b/libgfortran/generated/count_2_l.c index 0d1a223..8369a94 100644 --- a/libgfortran/generated/count_2_l.c +++ b/libgfortran/generated/count_2_l.c @@ -1,8 +1,8 @@ /* Implementation of the COUNT intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public diff --git a/libgfortran/generated/count_4_l.c b/libgfortran/generated/count_4_l.c index d4bfbd4..8b5cbb0 100644 --- a/libgfortran/generated/count_4_l.c +++ b/libgfortran/generated/count_4_l.c @@ -1,8 +1,8 @@ /* Implementation of the COUNT intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public diff --git a/libgfortran/generated/count_8_l.c b/libgfortran/generated/count_8_l.c index 2a62ea8..9cb6a26 100644 --- a/libgfortran/generated/count_8_l.c +++ b/libgfortran/generated/count_8_l.c @@ -1,8 +1,8 @@ /* Implementation of the COUNT intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public diff --git a/libgfortran/generated/maxloc1_16_i1.c b/libgfortran/generated/maxloc1_16_i1.c index 7319f57..a3aafcf 100644 --- a/libgfortran/generated/maxloc1_16_i1.c +++ b/libgfortran/generated/maxloc1_16_i1.c @@ -1,8 +1,8 @@ /* Implementation of the MAXLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ maxloc1_16_i1 (gfc_array_i16 * const restrict retarray, result = (GFC_INTEGER_16)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/maxloc1_16_i16.c b/libgfortran/generated/maxloc1_16_i16.c index 4d9b57b..8dc8ef7 100644 --- a/libgfortran/generated/maxloc1_16_i16.c +++ b/libgfortran/generated/maxloc1_16_i16.c @@ -1,8 +1,8 @@ /* Implementation of the MAXLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ maxloc1_16_i16 (gfc_array_i16 * const restrict retarray, result = (GFC_INTEGER_16)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/maxloc1_16_i2.c b/libgfortran/generated/maxloc1_16_i2.c index fcca4b7..d132572 100644 --- a/libgfortran/generated/maxloc1_16_i2.c +++ b/libgfortran/generated/maxloc1_16_i2.c @@ -1,8 +1,8 @@ /* Implementation of the MAXLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ maxloc1_16_i2 (gfc_array_i16 * const restrict retarray, result = (GFC_INTEGER_16)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/maxloc1_16_i4.c b/libgfortran/generated/maxloc1_16_i4.c index 7148697..995b1e4 100644 --- a/libgfortran/generated/maxloc1_16_i4.c +++ b/libgfortran/generated/maxloc1_16_i4.c @@ -1,8 +1,8 @@ /* Implementation of the MAXLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ maxloc1_16_i4 (gfc_array_i16 * const restrict retarray, result = (GFC_INTEGER_16)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/maxloc1_16_i8.c b/libgfortran/generated/maxloc1_16_i8.c index 48c0bd0..5376bcb 100644 --- a/libgfortran/generated/maxloc1_16_i8.c +++ b/libgfortran/generated/maxloc1_16_i8.c @@ -1,8 +1,8 @@ /* Implementation of the MAXLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ maxloc1_16_i8 (gfc_array_i16 * const restrict retarray, result = (GFC_INTEGER_16)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/maxloc1_16_r10.c b/libgfortran/generated/maxloc1_16_r10.c index 991830b..a23655d 100644 --- a/libgfortran/generated/maxloc1_16_r10.c +++ b/libgfortran/generated/maxloc1_16_r10.c @@ -1,8 +1,8 @@ /* Implementation of the MAXLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ maxloc1_16_r10 (gfc_array_i16 * const restrict retarray, result = (GFC_INTEGER_16)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/maxloc1_16_r16.c b/libgfortran/generated/maxloc1_16_r16.c index eb9dd4d..9e47498 100644 --- a/libgfortran/generated/maxloc1_16_r16.c +++ b/libgfortran/generated/maxloc1_16_r16.c @@ -1,8 +1,8 @@ /* Implementation of the MAXLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ maxloc1_16_r16 (gfc_array_i16 * const restrict retarray, result = (GFC_INTEGER_16)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/maxloc1_16_r4.c b/libgfortran/generated/maxloc1_16_r4.c index ced073a..a551aff 100644 --- a/libgfortran/generated/maxloc1_16_r4.c +++ b/libgfortran/generated/maxloc1_16_r4.c @@ -1,8 +1,8 @@ /* Implementation of the MAXLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ maxloc1_16_r4 (gfc_array_i16 * const restrict retarray, result = (GFC_INTEGER_16)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/maxloc1_16_r8.c b/libgfortran/generated/maxloc1_16_r8.c index 7dacbb8..802ea09 100644 --- a/libgfortran/generated/maxloc1_16_r8.c +++ b/libgfortran/generated/maxloc1_16_r8.c @@ -1,8 +1,8 @@ /* Implementation of the MAXLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ maxloc1_16_r8 (gfc_array_i16 * const restrict retarray, result = (GFC_INTEGER_16)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/maxloc1_4_i1.c b/libgfortran/generated/maxloc1_4_i1.c index 2bda8e5..484cb0d 100644 --- a/libgfortran/generated/maxloc1_4_i1.c +++ b/libgfortran/generated/maxloc1_4_i1.c @@ -1,8 +1,8 @@ /* Implementation of the MAXLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ maxloc1_4_i1 (gfc_array_i4 * const restrict retarray, result = (GFC_INTEGER_4)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/maxloc1_4_i16.c b/libgfortran/generated/maxloc1_4_i16.c index 0f45cff..353d497 100644 --- a/libgfortran/generated/maxloc1_4_i16.c +++ b/libgfortran/generated/maxloc1_4_i16.c @@ -1,8 +1,8 @@ /* Implementation of the MAXLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ maxloc1_4_i16 (gfc_array_i4 * const restrict retarray, result = (GFC_INTEGER_4)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/maxloc1_4_i2.c b/libgfortran/generated/maxloc1_4_i2.c index b165d30..7342ac8 100644 --- a/libgfortran/generated/maxloc1_4_i2.c +++ b/libgfortran/generated/maxloc1_4_i2.c @@ -1,8 +1,8 @@ /* Implementation of the MAXLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ maxloc1_4_i2 (gfc_array_i4 * const restrict retarray, result = (GFC_INTEGER_4)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/maxloc1_4_i4.c b/libgfortran/generated/maxloc1_4_i4.c index bf855ca..12b978f928 100644 --- a/libgfortran/generated/maxloc1_4_i4.c +++ b/libgfortran/generated/maxloc1_4_i4.c @@ -1,8 +1,8 @@ /* Implementation of the MAXLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ maxloc1_4_i4 (gfc_array_i4 * const restrict retarray, result = (GFC_INTEGER_4)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/maxloc1_4_i8.c b/libgfortran/generated/maxloc1_4_i8.c index 603e6d6..4f5c659 100644 --- a/libgfortran/generated/maxloc1_4_i8.c +++ b/libgfortran/generated/maxloc1_4_i8.c @@ -1,8 +1,8 @@ /* Implementation of the MAXLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ maxloc1_4_i8 (gfc_array_i4 * const restrict retarray, result = (GFC_INTEGER_4)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/maxloc1_4_r10.c b/libgfortran/generated/maxloc1_4_r10.c index 7804446..5df2ca3 100644 --- a/libgfortran/generated/maxloc1_4_r10.c +++ b/libgfortran/generated/maxloc1_4_r10.c @@ -1,8 +1,8 @@ /* Implementation of the MAXLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ maxloc1_4_r10 (gfc_array_i4 * const restrict retarray, result = (GFC_INTEGER_4)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/maxloc1_4_r16.c b/libgfortran/generated/maxloc1_4_r16.c index 4b0f324..c556452 100644 --- a/libgfortran/generated/maxloc1_4_r16.c +++ b/libgfortran/generated/maxloc1_4_r16.c @@ -1,8 +1,8 @@ /* Implementation of the MAXLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ maxloc1_4_r16 (gfc_array_i4 * const restrict retarray, result = (GFC_INTEGER_4)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/maxloc1_4_r4.c b/libgfortran/generated/maxloc1_4_r4.c index 6d02691..fecd072 100644 --- a/libgfortran/generated/maxloc1_4_r4.c +++ b/libgfortran/generated/maxloc1_4_r4.c @@ -1,8 +1,8 @@ /* Implementation of the MAXLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ maxloc1_4_r4 (gfc_array_i4 * const restrict retarray, result = (GFC_INTEGER_4)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/maxloc1_4_r8.c b/libgfortran/generated/maxloc1_4_r8.c index 363d938..a63fe36 100644 --- a/libgfortran/generated/maxloc1_4_r8.c +++ b/libgfortran/generated/maxloc1_4_r8.c @@ -1,8 +1,8 @@ /* Implementation of the MAXLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ maxloc1_4_r8 (gfc_array_i4 * const restrict retarray, result = (GFC_INTEGER_4)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/maxloc1_8_i1.c b/libgfortran/generated/maxloc1_8_i1.c index 20a95b8..d70c663 100644 --- a/libgfortran/generated/maxloc1_8_i1.c +++ b/libgfortran/generated/maxloc1_8_i1.c @@ -1,8 +1,8 @@ /* Implementation of the MAXLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ maxloc1_8_i1 (gfc_array_i8 * const restrict retarray, result = (GFC_INTEGER_8)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/maxloc1_8_i16.c b/libgfortran/generated/maxloc1_8_i16.c index 2909ee4..ce4afb1 100644 --- a/libgfortran/generated/maxloc1_8_i16.c +++ b/libgfortran/generated/maxloc1_8_i16.c @@ -1,8 +1,8 @@ /* Implementation of the MAXLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ maxloc1_8_i16 (gfc_array_i8 * const restrict retarray, result = (GFC_INTEGER_8)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/maxloc1_8_i2.c b/libgfortran/generated/maxloc1_8_i2.c index fe29bec..1bffde8 100644 --- a/libgfortran/generated/maxloc1_8_i2.c +++ b/libgfortran/generated/maxloc1_8_i2.c @@ -1,8 +1,8 @@ /* Implementation of the MAXLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ maxloc1_8_i2 (gfc_array_i8 * const restrict retarray, result = (GFC_INTEGER_8)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/maxloc1_8_i4.c b/libgfortran/generated/maxloc1_8_i4.c index b8e2619..3abd6ab 100644 --- a/libgfortran/generated/maxloc1_8_i4.c +++ b/libgfortran/generated/maxloc1_8_i4.c @@ -1,8 +1,8 @@ /* Implementation of the MAXLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ maxloc1_8_i4 (gfc_array_i8 * const restrict retarray, result = (GFC_INTEGER_8)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/maxloc1_8_i8.c b/libgfortran/generated/maxloc1_8_i8.c index 4b0a02a..57fcae0 100644 --- a/libgfortran/generated/maxloc1_8_i8.c +++ b/libgfortran/generated/maxloc1_8_i8.c @@ -1,8 +1,8 @@ /* Implementation of the MAXLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ maxloc1_8_i8 (gfc_array_i8 * const restrict retarray, result = (GFC_INTEGER_8)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/maxloc1_8_r10.c b/libgfortran/generated/maxloc1_8_r10.c index 801a327..ca8047e 100644 --- a/libgfortran/generated/maxloc1_8_r10.c +++ b/libgfortran/generated/maxloc1_8_r10.c @@ -1,8 +1,8 @@ /* Implementation of the MAXLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ maxloc1_8_r10 (gfc_array_i8 * const restrict retarray, result = (GFC_INTEGER_8)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/maxloc1_8_r16.c b/libgfortran/generated/maxloc1_8_r16.c index 6ec8594..12ab666 100644 --- a/libgfortran/generated/maxloc1_8_r16.c +++ b/libgfortran/generated/maxloc1_8_r16.c @@ -1,8 +1,8 @@ /* Implementation of the MAXLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ maxloc1_8_r16 (gfc_array_i8 * const restrict retarray, result = (GFC_INTEGER_8)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/maxloc1_8_r4.c b/libgfortran/generated/maxloc1_8_r4.c index 2696304..479660e 100644 --- a/libgfortran/generated/maxloc1_8_r4.c +++ b/libgfortran/generated/maxloc1_8_r4.c @@ -1,8 +1,8 @@ /* Implementation of the MAXLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ maxloc1_8_r4 (gfc_array_i8 * const restrict retarray, result = (GFC_INTEGER_8)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/maxloc1_8_r8.c b/libgfortran/generated/maxloc1_8_r8.c index 8bbb68a..6f47a15 100644 --- a/libgfortran/generated/maxloc1_8_r8.c +++ b/libgfortran/generated/maxloc1_8_r8.c @@ -1,8 +1,8 @@ /* Implementation of the MAXLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ maxloc1_8_r8 (gfc_array_i8 * const restrict retarray, result = (GFC_INTEGER_8)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/maxval_i1.c b/libgfortran/generated/maxval_i1.c index 56bd2e2..cb42901 100644 --- a/libgfortran/generated/maxval_i1.c +++ b/libgfortran/generated/maxval_i1.c @@ -1,8 +1,8 @@ /* Implementation of the MAXVAL intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -166,6 +166,7 @@ maxval_i1 (gfc_array_i1 * const restrict retarray, if (*src > result) result = *src; } + *dest = result; } } diff --git a/libgfortran/generated/maxval_i16.c b/libgfortran/generated/maxval_i16.c index 5b21ac9..4f11635 100644 --- a/libgfortran/generated/maxval_i16.c +++ b/libgfortran/generated/maxval_i16.c @@ -1,8 +1,8 @@ /* Implementation of the MAXVAL intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -166,6 +166,7 @@ maxval_i16 (gfc_array_i16 * const restrict retarray, if (*src > result) result = *src; } + *dest = result; } } diff --git a/libgfortran/generated/maxval_i2.c b/libgfortran/generated/maxval_i2.c index cbf4efb..8fb3856 100644 --- a/libgfortran/generated/maxval_i2.c +++ b/libgfortran/generated/maxval_i2.c @@ -1,8 +1,8 @@ /* Implementation of the MAXVAL intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -166,6 +166,7 @@ maxval_i2 (gfc_array_i2 * const restrict retarray, if (*src > result) result = *src; } + *dest = result; } } diff --git a/libgfortran/generated/maxval_i4.c b/libgfortran/generated/maxval_i4.c index d997bde..c67d0cb 100644 --- a/libgfortran/generated/maxval_i4.c +++ b/libgfortran/generated/maxval_i4.c @@ -1,8 +1,8 @@ /* Implementation of the MAXVAL intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -166,6 +166,7 @@ maxval_i4 (gfc_array_i4 * const restrict retarray, if (*src > result) result = *src; } + *dest = result; } } diff --git a/libgfortran/generated/maxval_i8.c b/libgfortran/generated/maxval_i8.c index 476d138..b2f33dd 100644 --- a/libgfortran/generated/maxval_i8.c +++ b/libgfortran/generated/maxval_i8.c @@ -1,8 +1,8 @@ /* Implementation of the MAXVAL intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -166,6 +166,7 @@ maxval_i8 (gfc_array_i8 * const restrict retarray, if (*src > result) result = *src; } + *dest = result; } } diff --git a/libgfortran/generated/maxval_r10.c b/libgfortran/generated/maxval_r10.c index 84daf68..75c45f9 100644 --- a/libgfortran/generated/maxval_r10.c +++ b/libgfortran/generated/maxval_r10.c @@ -1,8 +1,8 @@ /* Implementation of the MAXVAL intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -166,6 +166,7 @@ maxval_r10 (gfc_array_r10 * const restrict retarray, if (*src > result) result = *src; } + *dest = result; } } diff --git a/libgfortran/generated/maxval_r16.c b/libgfortran/generated/maxval_r16.c index 05ea566..4ade432 100644 --- a/libgfortran/generated/maxval_r16.c +++ b/libgfortran/generated/maxval_r16.c @@ -1,8 +1,8 @@ /* Implementation of the MAXVAL intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -166,6 +166,7 @@ maxval_r16 (gfc_array_r16 * const restrict retarray, if (*src > result) result = *src; } + *dest = result; } } diff --git a/libgfortran/generated/maxval_r4.c b/libgfortran/generated/maxval_r4.c index 2124797..567ad3b 100644 --- a/libgfortran/generated/maxval_r4.c +++ b/libgfortran/generated/maxval_r4.c @@ -1,8 +1,8 @@ /* Implementation of the MAXVAL intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -166,6 +166,7 @@ maxval_r4 (gfc_array_r4 * const restrict retarray, if (*src > result) result = *src; } + *dest = result; } } diff --git a/libgfortran/generated/maxval_r8.c b/libgfortran/generated/maxval_r8.c index 71758b8..196021c 100644 --- a/libgfortran/generated/maxval_r8.c +++ b/libgfortran/generated/maxval_r8.c @@ -1,8 +1,8 @@ /* Implementation of the MAXVAL intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -166,6 +166,7 @@ maxval_r8 (gfc_array_r8 * const restrict retarray, if (*src > result) result = *src; } + *dest = result; } } diff --git a/libgfortran/generated/minloc1_16_i1.c b/libgfortran/generated/minloc1_16_i1.c index a81e821..a287fee 100644 --- a/libgfortran/generated/minloc1_16_i1.c +++ b/libgfortran/generated/minloc1_16_i1.c @@ -1,8 +1,8 @@ /* Implementation of the MINLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ minloc1_16_i1 (gfc_array_i16 * const restrict retarray, result = (GFC_INTEGER_16)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/minloc1_16_i16.c b/libgfortran/generated/minloc1_16_i16.c index 2efb501..8521188 100644 --- a/libgfortran/generated/minloc1_16_i16.c +++ b/libgfortran/generated/minloc1_16_i16.c @@ -1,8 +1,8 @@ /* Implementation of the MINLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ minloc1_16_i16 (gfc_array_i16 * const restrict retarray, result = (GFC_INTEGER_16)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/minloc1_16_i2.c b/libgfortran/generated/minloc1_16_i2.c index 404338e..f7c951c 100644 --- a/libgfortran/generated/minloc1_16_i2.c +++ b/libgfortran/generated/minloc1_16_i2.c @@ -1,8 +1,8 @@ /* Implementation of the MINLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ minloc1_16_i2 (gfc_array_i16 * const restrict retarray, result = (GFC_INTEGER_16)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/minloc1_16_i4.c b/libgfortran/generated/minloc1_16_i4.c index be8e99a..98ec899 100644 --- a/libgfortran/generated/minloc1_16_i4.c +++ b/libgfortran/generated/minloc1_16_i4.c @@ -1,8 +1,8 @@ /* Implementation of the MINLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ minloc1_16_i4 (gfc_array_i16 * const restrict retarray, result = (GFC_INTEGER_16)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/minloc1_16_i8.c b/libgfortran/generated/minloc1_16_i8.c index 53e517c..ab0a296 100644 --- a/libgfortran/generated/minloc1_16_i8.c +++ b/libgfortran/generated/minloc1_16_i8.c @@ -1,8 +1,8 @@ /* Implementation of the MINLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ minloc1_16_i8 (gfc_array_i16 * const restrict retarray, result = (GFC_INTEGER_16)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/minloc1_16_r10.c b/libgfortran/generated/minloc1_16_r10.c index 67ae67b..5fe952c 100644 --- a/libgfortran/generated/minloc1_16_r10.c +++ b/libgfortran/generated/minloc1_16_r10.c @@ -1,8 +1,8 @@ /* Implementation of the MINLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ minloc1_16_r10 (gfc_array_i16 * const restrict retarray, result = (GFC_INTEGER_16)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/minloc1_16_r16.c b/libgfortran/generated/minloc1_16_r16.c index 4ea3c30..d68cc7a 100644 --- a/libgfortran/generated/minloc1_16_r16.c +++ b/libgfortran/generated/minloc1_16_r16.c @@ -1,8 +1,8 @@ /* Implementation of the MINLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ minloc1_16_r16 (gfc_array_i16 * const restrict retarray, result = (GFC_INTEGER_16)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/minloc1_16_r4.c b/libgfortran/generated/minloc1_16_r4.c index d786ca2..8207441 100644 --- a/libgfortran/generated/minloc1_16_r4.c +++ b/libgfortran/generated/minloc1_16_r4.c @@ -1,8 +1,8 @@ /* Implementation of the MINLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ minloc1_16_r4 (gfc_array_i16 * const restrict retarray, result = (GFC_INTEGER_16)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/minloc1_16_r8.c b/libgfortran/generated/minloc1_16_r8.c index 0dcda10..72bfcce 100644 --- a/libgfortran/generated/minloc1_16_r8.c +++ b/libgfortran/generated/minloc1_16_r8.c @@ -1,8 +1,8 @@ /* Implementation of the MINLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ minloc1_16_r8 (gfc_array_i16 * const restrict retarray, result = (GFC_INTEGER_16)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/minloc1_4_i1.c b/libgfortran/generated/minloc1_4_i1.c index b711790..631645f 100644 --- a/libgfortran/generated/minloc1_4_i1.c +++ b/libgfortran/generated/minloc1_4_i1.c @@ -1,8 +1,8 @@ /* Implementation of the MINLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ minloc1_4_i1 (gfc_array_i4 * const restrict retarray, result = (GFC_INTEGER_4)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/minloc1_4_i16.c b/libgfortran/generated/minloc1_4_i16.c index f867804..2096589 100644 --- a/libgfortran/generated/minloc1_4_i16.c +++ b/libgfortran/generated/minloc1_4_i16.c @@ -1,8 +1,8 @@ /* Implementation of the MINLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ minloc1_4_i16 (gfc_array_i4 * const restrict retarray, result = (GFC_INTEGER_4)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/minloc1_4_i2.c b/libgfortran/generated/minloc1_4_i2.c index 8d09ba5..2bdedd8 100644 --- a/libgfortran/generated/minloc1_4_i2.c +++ b/libgfortran/generated/minloc1_4_i2.c @@ -1,8 +1,8 @@ /* Implementation of the MINLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ minloc1_4_i2 (gfc_array_i4 * const restrict retarray, result = (GFC_INTEGER_4)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/minloc1_4_i4.c b/libgfortran/generated/minloc1_4_i4.c index 2b8c02b..513b0cf 100644 --- a/libgfortran/generated/minloc1_4_i4.c +++ b/libgfortran/generated/minloc1_4_i4.c @@ -1,8 +1,8 @@ /* Implementation of the MINLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ minloc1_4_i4 (gfc_array_i4 * const restrict retarray, result = (GFC_INTEGER_4)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/minloc1_4_i8.c b/libgfortran/generated/minloc1_4_i8.c index ae5049a..c15914b 100644 --- a/libgfortran/generated/minloc1_4_i8.c +++ b/libgfortran/generated/minloc1_4_i8.c @@ -1,8 +1,8 @@ /* Implementation of the MINLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ minloc1_4_i8 (gfc_array_i4 * const restrict retarray, result = (GFC_INTEGER_4)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/minloc1_4_r10.c b/libgfortran/generated/minloc1_4_r10.c index 8d14c2d..f60262a 100644 --- a/libgfortran/generated/minloc1_4_r10.c +++ b/libgfortran/generated/minloc1_4_r10.c @@ -1,8 +1,8 @@ /* Implementation of the MINLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ minloc1_4_r10 (gfc_array_i4 * const restrict retarray, result = (GFC_INTEGER_4)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/minloc1_4_r16.c b/libgfortran/generated/minloc1_4_r16.c index fcb8d0c..e0c1e6b 100644 --- a/libgfortran/generated/minloc1_4_r16.c +++ b/libgfortran/generated/minloc1_4_r16.c @@ -1,8 +1,8 @@ /* Implementation of the MINLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ minloc1_4_r16 (gfc_array_i4 * const restrict retarray, result = (GFC_INTEGER_4)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/minloc1_4_r4.c b/libgfortran/generated/minloc1_4_r4.c index 75d43ff..3110451 100644 --- a/libgfortran/generated/minloc1_4_r4.c +++ b/libgfortran/generated/minloc1_4_r4.c @@ -1,8 +1,8 @@ /* Implementation of the MINLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ minloc1_4_r4 (gfc_array_i4 * const restrict retarray, result = (GFC_INTEGER_4)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/minloc1_4_r8.c b/libgfortran/generated/minloc1_4_r8.c index 49e0320..4888dd7 100644 --- a/libgfortran/generated/minloc1_4_r8.c +++ b/libgfortran/generated/minloc1_4_r8.c @@ -1,8 +1,8 @@ /* Implementation of the MINLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ minloc1_4_r8 (gfc_array_i4 * const restrict retarray, result = (GFC_INTEGER_4)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/minloc1_8_i1.c b/libgfortran/generated/minloc1_8_i1.c index 7104a60..953460d 100644 --- a/libgfortran/generated/minloc1_8_i1.c +++ b/libgfortran/generated/minloc1_8_i1.c @@ -1,8 +1,8 @@ /* Implementation of the MINLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ minloc1_8_i1 (gfc_array_i8 * const restrict retarray, result = (GFC_INTEGER_8)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/minloc1_8_i16.c b/libgfortran/generated/minloc1_8_i16.c index ac99401..9ac6de0 100644 --- a/libgfortran/generated/minloc1_8_i16.c +++ b/libgfortran/generated/minloc1_8_i16.c @@ -1,8 +1,8 @@ /* Implementation of the MINLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ minloc1_8_i16 (gfc_array_i8 * const restrict retarray, result = (GFC_INTEGER_8)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/minloc1_8_i2.c b/libgfortran/generated/minloc1_8_i2.c index 73042fd..7f4db40 100644 --- a/libgfortran/generated/minloc1_8_i2.c +++ b/libgfortran/generated/minloc1_8_i2.c @@ -1,8 +1,8 @@ /* Implementation of the MINLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ minloc1_8_i2 (gfc_array_i8 * const restrict retarray, result = (GFC_INTEGER_8)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/minloc1_8_i4.c b/libgfortran/generated/minloc1_8_i4.c index 2eb44c4..cb68b4b 100644 --- a/libgfortran/generated/minloc1_8_i4.c +++ b/libgfortran/generated/minloc1_8_i4.c @@ -1,8 +1,8 @@ /* Implementation of the MINLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ minloc1_8_i4 (gfc_array_i8 * const restrict retarray, result = (GFC_INTEGER_8)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/minloc1_8_i8.c b/libgfortran/generated/minloc1_8_i8.c index 2a52c29..e6eb5c3 100644 --- a/libgfortran/generated/minloc1_8_i8.c +++ b/libgfortran/generated/minloc1_8_i8.c @@ -1,8 +1,8 @@ /* Implementation of the MINLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ minloc1_8_i8 (gfc_array_i8 * const restrict retarray, result = (GFC_INTEGER_8)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/minloc1_8_r10.c b/libgfortran/generated/minloc1_8_r10.c index a84456d..c78b092 100644 --- a/libgfortran/generated/minloc1_8_r10.c +++ b/libgfortran/generated/minloc1_8_r10.c @@ -1,8 +1,8 @@ /* Implementation of the MINLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ minloc1_8_r10 (gfc_array_i8 * const restrict retarray, result = (GFC_INTEGER_8)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/minloc1_8_r16.c b/libgfortran/generated/minloc1_8_r16.c index 07f1ba5..ecd8031 100644 --- a/libgfortran/generated/minloc1_8_r16.c +++ b/libgfortran/generated/minloc1_8_r16.c @@ -1,8 +1,8 @@ /* Implementation of the MINLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ minloc1_8_r16 (gfc_array_i8 * const restrict retarray, result = (GFC_INTEGER_8)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/minloc1_8_r4.c b/libgfortran/generated/minloc1_8_r4.c index 053642a..053ef6f 100644 --- a/libgfortran/generated/minloc1_8_r4.c +++ b/libgfortran/generated/minloc1_8_r4.c @@ -1,8 +1,8 @@ /* Implementation of the MINLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ minloc1_8_r4 (gfc_array_i8 * const restrict retarray, result = (GFC_INTEGER_8)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/minloc1_8_r8.c b/libgfortran/generated/minloc1_8_r8.c index 88f91fd..ac06ec9 100644 --- a/libgfortran/generated/minloc1_8_r8.c +++ b/libgfortran/generated/minloc1_8_r8.c @@ -1,8 +1,8 @@ /* Implementation of the MINLOC intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -174,6 +174,7 @@ minloc1_8_r8 (gfc_array_i8 * const restrict retarray, result = (GFC_INTEGER_8)n + 1; } } + *dest = result; } } diff --git a/libgfortran/generated/minval_i1.c b/libgfortran/generated/minval_i1.c index 341fbb7..93276f9 100644 --- a/libgfortran/generated/minval_i1.c +++ b/libgfortran/generated/minval_i1.c @@ -1,8 +1,8 @@ /* Implementation of the MINVAL intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -166,6 +166,7 @@ minval_i1 (gfc_array_i1 * const restrict retarray, if (*src < result) result = *src; } + *dest = result; } } diff --git a/libgfortran/generated/minval_i16.c b/libgfortran/generated/minval_i16.c index 32554df..a5ff46e 100644 --- a/libgfortran/generated/minval_i16.c +++ b/libgfortran/generated/minval_i16.c @@ -1,8 +1,8 @@ /* Implementation of the MINVAL intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -166,6 +166,7 @@ minval_i16 (gfc_array_i16 * const restrict retarray, if (*src < result) result = *src; } + *dest = result; } } diff --git a/libgfortran/generated/minval_i2.c b/libgfortran/generated/minval_i2.c index d50d937..b4e8dd5 100644 --- a/libgfortran/generated/minval_i2.c +++ b/libgfortran/generated/minval_i2.c @@ -1,8 +1,8 @@ /* Implementation of the MINVAL intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -166,6 +166,7 @@ minval_i2 (gfc_array_i2 * const restrict retarray, if (*src < result) result = *src; } + *dest = result; } } diff --git a/libgfortran/generated/minval_i4.c b/libgfortran/generated/minval_i4.c index bfcf543..3f9e068 100644 --- a/libgfortran/generated/minval_i4.c +++ b/libgfortran/generated/minval_i4.c @@ -1,8 +1,8 @@ /* Implementation of the MINVAL intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -166,6 +166,7 @@ minval_i4 (gfc_array_i4 * const restrict retarray, if (*src < result) result = *src; } + *dest = result; } } diff --git a/libgfortran/generated/minval_i8.c b/libgfortran/generated/minval_i8.c index 242c8b7..725093e 100644 --- a/libgfortran/generated/minval_i8.c +++ b/libgfortran/generated/minval_i8.c @@ -1,8 +1,8 @@ /* Implementation of the MINVAL intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -166,6 +166,7 @@ minval_i8 (gfc_array_i8 * const restrict retarray, if (*src < result) result = *src; } + *dest = result; } } diff --git a/libgfortran/generated/minval_r10.c b/libgfortran/generated/minval_r10.c index e997653..dacbb70 100644 --- a/libgfortran/generated/minval_r10.c +++ b/libgfortran/generated/minval_r10.c @@ -1,8 +1,8 @@ /* Implementation of the MINVAL intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -166,6 +166,7 @@ minval_r10 (gfc_array_r10 * const restrict retarray, if (*src < result) result = *src; } + *dest = result; } } diff --git a/libgfortran/generated/minval_r16.c b/libgfortran/generated/minval_r16.c index 539193f..93289ba 100644 --- a/libgfortran/generated/minval_r16.c +++ b/libgfortran/generated/minval_r16.c @@ -1,8 +1,8 @@ /* Implementation of the MINVAL intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -166,6 +166,7 @@ minval_r16 (gfc_array_r16 * const restrict retarray, if (*src < result) result = *src; } + *dest = result; } } diff --git a/libgfortran/generated/minval_r4.c b/libgfortran/generated/minval_r4.c index e782829..4d5b8b0 100644 --- a/libgfortran/generated/minval_r4.c +++ b/libgfortran/generated/minval_r4.c @@ -1,8 +1,8 @@ /* Implementation of the MINVAL intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -166,6 +166,7 @@ minval_r4 (gfc_array_r4 * const restrict retarray, if (*src < result) result = *src; } + *dest = result; } } diff --git a/libgfortran/generated/minval_r8.c b/libgfortran/generated/minval_r8.c index 0496a42..7b0fdb8 100644 --- a/libgfortran/generated/minval_r8.c +++ b/libgfortran/generated/minval_r8.c @@ -1,8 +1,8 @@ /* Implementation of the MINVAL intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -166,6 +166,7 @@ minval_r8 (gfc_array_r8 * const restrict retarray, if (*src < result) result = *src; } + *dest = result; } } diff --git a/libgfortran/generated/norm2_r10.c b/libgfortran/generated/norm2_r10.c new file mode 100644 index 0000000..64cf404 --- /dev/null +++ b/libgfortran/generated/norm2_r10.c @@ -0,0 +1,208 @@ +/* Implementation of the NORM2 intrinsic + Copyright 2010 Free Software Foundation, Inc. + Contributed by Tobias Burnus <burnus@net-b.de> + +This file is part of the GNU Fortran runtime library (libgfortran). + +Libgfortran is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public +License as published by the Free Software Foundation; either +version 3 of the License, or (at your option) any later version. + +Libgfortran is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +#include "libgfortran.h" +#include <stdlib.h> +#include <math.h> +#include <assert.h> + + +#if defined (HAVE_GFC_REAL_10) && defined (HAVE_GFC_REAL_10) + + +extern void norm2_r10 (gfc_array_r10 * const restrict, + gfc_array_r10 * const restrict, const index_type * const restrict); +export_proto(norm2_r10); + +void +norm2_r10 (gfc_array_r10 * const restrict retarray, + gfc_array_r10 * const restrict array, + const index_type * const restrict pdim) +{ + index_type count[GFC_MAX_DIMENSIONS]; + index_type extent[GFC_MAX_DIMENSIONS]; + index_type sstride[GFC_MAX_DIMENSIONS]; + index_type dstride[GFC_MAX_DIMENSIONS]; + const GFC_REAL_10 * restrict base; + GFC_REAL_10 * restrict dest; + index_type rank; + index_type n; + index_type len; + index_type delta; + index_type dim; + int continue_loop; + + /* Make dim zero based to avoid confusion. */ + dim = (*pdim) - 1; + rank = GFC_DESCRIPTOR_RANK (array) - 1; + + len = GFC_DESCRIPTOR_EXTENT(array,dim); + if (len < 0) + len = 0; + delta = GFC_DESCRIPTOR_STRIDE(array,dim); + + for (n = 0; n < dim; n++) + { + sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); + + if (extent[n] < 0) + extent[n] = 0; + } + for (n = dim; n < rank; n++) + { + sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); + + if (extent[n] < 0) + extent[n] = 0; + } + + if (retarray->data == NULL) + { + size_t alloc_size, str; + + for (n = 0; n < rank; n++) + { + if (n == 0) + str = 1; + else + str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + + GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + + } + + retarray->offset = 0; + retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + + alloc_size = sizeof (GFC_REAL_10) * GFC_DESCRIPTOR_STRIDE(retarray,rank-1) + * extent[rank-1]; + + if (alloc_size == 0) + { + /* Make sure we have a zero-sized array. */ + GFC_DIMENSION_SET(retarray->dim[0], 0, -1, 1); + return; + + } + else + retarray->data = internal_malloc_size (alloc_size); + } + else + { + if (rank != GFC_DESCRIPTOR_RANK (retarray)) + runtime_error ("rank of return array incorrect in" + " NORM intrinsic: is %ld, should be %ld", + (long int) (GFC_DESCRIPTOR_RANK (retarray)), + (long int) rank); + + if (unlikely (compile_options.bounds_check)) + bounds_ifunction_return ((array_t *) retarray, extent, + "return value", "NORM"); + } + + for (n = 0; n < rank; n++) + { + count[n] = 0; + dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + if (extent[n] <= 0) + len = 0; + } + + base = array->data; + dest = retarray->data; + + continue_loop = 1; + while (continue_loop) + { + const GFC_REAL_10 * restrict src; + GFC_REAL_10 result; + src = base; + { + + GFC_REAL_10 scale; + result = 0.0L; + scale = 1.0L; + if (len <= 0) + *dest = 0.0L; + else + { + for (n = 0; n < len; n++, src += delta) + { + + if (*src != 0.0L) + { + GFC_REAL_10 absX, val; + absX = fabsl (*src); + if (scale < absX) + { + val = scale / absX; + result = 1.0L + result * val * val; + scale = absX; + } + else + { + val = absX / scale; + result += val * val; + } + } + } + result = scale * sqrtl (result); + *dest = result; + } + } + /* Advance to the next element. */ + count[0]++; + base += sstride[0]; + dest += dstride[0]; + n = 0; + while (count[n] == extent[n]) + { + /* When we get to the end of a dimension, reset it and increment + the next dimension. */ + count[n] = 0; + /* We could precalculate these products, but this is a less + frequently used path so probably not worth it. */ + base -= sstride[n] * extent[n]; + dest -= dstride[n] * extent[n]; + n++; + if (n == rank) + { + /* Break out of the look. */ + continue_loop = 0; + break; + } + else + { + count[n]++; + base += sstride[n]; + dest += dstride[n]; + } + } + } +} + +#endif diff --git a/libgfortran/generated/norm2_r16.c b/libgfortran/generated/norm2_r16.c new file mode 100644 index 0000000..1fc79ae --- /dev/null +++ b/libgfortran/generated/norm2_r16.c @@ -0,0 +1,208 @@ +/* Implementation of the NORM2 intrinsic + Copyright 2010 Free Software Foundation, Inc. + Contributed by Tobias Burnus <burnus@net-b.de> + +This file is part of the GNU Fortran runtime library (libgfortran). + +Libgfortran is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public +License as published by the Free Software Foundation; either +version 3 of the License, or (at your option) any later version. + +Libgfortran is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +#include "libgfortran.h" +#include <stdlib.h> +#include <math.h> +#include <assert.h> + + +#if defined (HAVE_GFC_REAL_16) && defined (HAVE_GFC_REAL_16) + + +extern void norm2_r16 (gfc_array_r16 * const restrict, + gfc_array_r16 * const restrict, const index_type * const restrict); +export_proto(norm2_r16); + +void +norm2_r16 (gfc_array_r16 * const restrict retarray, + gfc_array_r16 * const restrict array, + const index_type * const restrict pdim) +{ + index_type count[GFC_MAX_DIMENSIONS]; + index_type extent[GFC_MAX_DIMENSIONS]; + index_type sstride[GFC_MAX_DIMENSIONS]; + index_type dstride[GFC_MAX_DIMENSIONS]; + const GFC_REAL_16 * restrict base; + GFC_REAL_16 * restrict dest; + index_type rank; + index_type n; + index_type len; + index_type delta; + index_type dim; + int continue_loop; + + /* Make dim zero based to avoid confusion. */ + dim = (*pdim) - 1; + rank = GFC_DESCRIPTOR_RANK (array) - 1; + + len = GFC_DESCRIPTOR_EXTENT(array,dim); + if (len < 0) + len = 0; + delta = GFC_DESCRIPTOR_STRIDE(array,dim); + + for (n = 0; n < dim; n++) + { + sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); + + if (extent[n] < 0) + extent[n] = 0; + } + for (n = dim; n < rank; n++) + { + sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); + + if (extent[n] < 0) + extent[n] = 0; + } + + if (retarray->data == NULL) + { + size_t alloc_size, str; + + for (n = 0; n < rank; n++) + { + if (n == 0) + str = 1; + else + str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + + GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + + } + + retarray->offset = 0; + retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + + alloc_size = sizeof (GFC_REAL_16) * GFC_DESCRIPTOR_STRIDE(retarray,rank-1) + * extent[rank-1]; + + if (alloc_size == 0) + { + /* Make sure we have a zero-sized array. */ + GFC_DIMENSION_SET(retarray->dim[0], 0, -1, 1); + return; + + } + else + retarray->data = internal_malloc_size (alloc_size); + } + else + { + if (rank != GFC_DESCRIPTOR_RANK (retarray)) + runtime_error ("rank of return array incorrect in" + " NORM intrinsic: is %ld, should be %ld", + (long int) (GFC_DESCRIPTOR_RANK (retarray)), + (long int) rank); + + if (unlikely (compile_options.bounds_check)) + bounds_ifunction_return ((array_t *) retarray, extent, + "return value", "NORM"); + } + + for (n = 0; n < rank; n++) + { + count[n] = 0; + dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + if (extent[n] <= 0) + len = 0; + } + + base = array->data; + dest = retarray->data; + + continue_loop = 1; + while (continue_loop) + { + const GFC_REAL_16 * restrict src; + GFC_REAL_16 result; + src = base; + { + + GFC_REAL_16 scale; + result = 0.0L; + scale = 1.0L; + if (len <= 0) + *dest = 0.0L; + else + { + for (n = 0; n < len; n++, src += delta) + { + + if (*src != 0.0L) + { + GFC_REAL_16 absX, val; + absX = fabsl (*src); + if (scale < absX) + { + val = scale / absX; + result = 1.0L + result * val * val; + scale = absX; + } + else + { + val = absX / scale; + result += val * val; + } + } + } + result = scale * sqrtl (result); + *dest = result; + } + } + /* Advance to the next element. */ + count[0]++; + base += sstride[0]; + dest += dstride[0]; + n = 0; + while (count[n] == extent[n]) + { + /* When we get to the end of a dimension, reset it and increment + the next dimension. */ + count[n] = 0; + /* We could precalculate these products, but this is a less + frequently used path so probably not worth it. */ + base -= sstride[n] * extent[n]; + dest -= dstride[n] * extent[n]; + n++; + if (n == rank) + { + /* Break out of the look. */ + continue_loop = 0; + break; + } + else + { + count[n]++; + base += sstride[n]; + dest += dstride[n]; + } + } + } +} + +#endif diff --git a/libgfortran/generated/norm2_r4.c b/libgfortran/generated/norm2_r4.c new file mode 100644 index 0000000..78f28dc --- /dev/null +++ b/libgfortran/generated/norm2_r4.c @@ -0,0 +1,208 @@ +/* Implementation of the NORM2 intrinsic + Copyright 2010 Free Software Foundation, Inc. + Contributed by Tobias Burnus <burnus@net-b.de> + +This file is part of the GNU Fortran runtime library (libgfortran). + +Libgfortran is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public +License as published by the Free Software Foundation; either +version 3 of the License, or (at your option) any later version. + +Libgfortran is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +#include "libgfortran.h" +#include <stdlib.h> +#include <math.h> +#include <assert.h> + + +#if defined (HAVE_GFC_REAL_4) && defined (HAVE_GFC_REAL_4) + + +extern void norm2_r4 (gfc_array_r4 * const restrict, + gfc_array_r4 * const restrict, const index_type * const restrict); +export_proto(norm2_r4); + +void +norm2_r4 (gfc_array_r4 * const restrict retarray, + gfc_array_r4 * const restrict array, + const index_type * const restrict pdim) +{ + index_type count[GFC_MAX_DIMENSIONS]; + index_type extent[GFC_MAX_DIMENSIONS]; + index_type sstride[GFC_MAX_DIMENSIONS]; + index_type dstride[GFC_MAX_DIMENSIONS]; + const GFC_REAL_4 * restrict base; + GFC_REAL_4 * restrict dest; + index_type rank; + index_type n; + index_type len; + index_type delta; + index_type dim; + int continue_loop; + + /* Make dim zero based to avoid confusion. */ + dim = (*pdim) - 1; + rank = GFC_DESCRIPTOR_RANK (array) - 1; + + len = GFC_DESCRIPTOR_EXTENT(array,dim); + if (len < 0) + len = 0; + delta = GFC_DESCRIPTOR_STRIDE(array,dim); + + for (n = 0; n < dim; n++) + { + sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); + + if (extent[n] < 0) + extent[n] = 0; + } + for (n = dim; n < rank; n++) + { + sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); + + if (extent[n] < 0) + extent[n] = 0; + } + + if (retarray->data == NULL) + { + size_t alloc_size, str; + + for (n = 0; n < rank; n++) + { + if (n == 0) + str = 1; + else + str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + + GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + + } + + retarray->offset = 0; + retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + + alloc_size = sizeof (GFC_REAL_4) * GFC_DESCRIPTOR_STRIDE(retarray,rank-1) + * extent[rank-1]; + + if (alloc_size == 0) + { + /* Make sure we have a zero-sized array. */ + GFC_DIMENSION_SET(retarray->dim[0], 0, -1, 1); + return; + + } + else + retarray->data = internal_malloc_size (alloc_size); + } + else + { + if (rank != GFC_DESCRIPTOR_RANK (retarray)) + runtime_error ("rank of return array incorrect in" + " NORM intrinsic: is %ld, should be %ld", + (long int) (GFC_DESCRIPTOR_RANK (retarray)), + (long int) rank); + + if (unlikely (compile_options.bounds_check)) + bounds_ifunction_return ((array_t *) retarray, extent, + "return value", "NORM"); + } + + for (n = 0; n < rank; n++) + { + count[n] = 0; + dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + if (extent[n] <= 0) + len = 0; + } + + base = array->data; + dest = retarray->data; + + continue_loop = 1; + while (continue_loop) + { + const GFC_REAL_4 * restrict src; + GFC_REAL_4 result; + src = base; + { + + GFC_REAL_4 scale; + result = 0.0F; + scale = 1.0F; + if (len <= 0) + *dest = 0.0F; + else + { + for (n = 0; n < len; n++, src += delta) + { + + if (*src != 0.0F) + { + GFC_REAL_4 absX, val; + absX = fabsf (*src); + if (scale < absX) + { + val = scale / absX; + result = 1.0F + result * val * val; + scale = absX; + } + else + { + val = absX / scale; + result += val * val; + } + } + } + result = scale * sqrtf (result); + *dest = result; + } + } + /* Advance to the next element. */ + count[0]++; + base += sstride[0]; + dest += dstride[0]; + n = 0; + while (count[n] == extent[n]) + { + /* When we get to the end of a dimension, reset it and increment + the next dimension. */ + count[n] = 0; + /* We could precalculate these products, but this is a less + frequently used path so probably not worth it. */ + base -= sstride[n] * extent[n]; + dest -= dstride[n] * extent[n]; + n++; + if (n == rank) + { + /* Break out of the look. */ + continue_loop = 0; + break; + } + else + { + count[n]++; + base += sstride[n]; + dest += dstride[n]; + } + } + } +} + +#endif diff --git a/libgfortran/generated/norm2_r8.c b/libgfortran/generated/norm2_r8.c new file mode 100644 index 0000000..fd9aba7 --- /dev/null +++ b/libgfortran/generated/norm2_r8.c @@ -0,0 +1,208 @@ +/* Implementation of the NORM2 intrinsic + Copyright 2010 Free Software Foundation, Inc. + Contributed by Tobias Burnus <burnus@net-b.de> + +This file is part of the GNU Fortran runtime library (libgfortran). + +Libgfortran is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public +License as published by the Free Software Foundation; either +version 3 of the License, or (at your option) any later version. + +Libgfortran is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +#include "libgfortran.h" +#include <stdlib.h> +#include <math.h> +#include <assert.h> + + +#if defined (HAVE_GFC_REAL_8) && defined (HAVE_GFC_REAL_8) + + +extern void norm2_r8 (gfc_array_r8 * const restrict, + gfc_array_r8 * const restrict, const index_type * const restrict); +export_proto(norm2_r8); + +void +norm2_r8 (gfc_array_r8 * const restrict retarray, + gfc_array_r8 * const restrict array, + const index_type * const restrict pdim) +{ + index_type count[GFC_MAX_DIMENSIONS]; + index_type extent[GFC_MAX_DIMENSIONS]; + index_type sstride[GFC_MAX_DIMENSIONS]; + index_type dstride[GFC_MAX_DIMENSIONS]; + const GFC_REAL_8 * restrict base; + GFC_REAL_8 * restrict dest; + index_type rank; + index_type n; + index_type len; + index_type delta; + index_type dim; + int continue_loop; + + /* Make dim zero based to avoid confusion. */ + dim = (*pdim) - 1; + rank = GFC_DESCRIPTOR_RANK (array) - 1; + + len = GFC_DESCRIPTOR_EXTENT(array,dim); + if (len < 0) + len = 0; + delta = GFC_DESCRIPTOR_STRIDE(array,dim); + + for (n = 0; n < dim; n++) + { + sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); + + if (extent[n] < 0) + extent[n] = 0; + } + for (n = dim; n < rank; n++) + { + sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); + + if (extent[n] < 0) + extent[n] = 0; + } + + if (retarray->data == NULL) + { + size_t alloc_size, str; + + for (n = 0; n < rank; n++) + { + if (n == 0) + str = 1; + else + str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + + GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + + } + + retarray->offset = 0; + retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + + alloc_size = sizeof (GFC_REAL_8) * GFC_DESCRIPTOR_STRIDE(retarray,rank-1) + * extent[rank-1]; + + if (alloc_size == 0) + { + /* Make sure we have a zero-sized array. */ + GFC_DIMENSION_SET(retarray->dim[0], 0, -1, 1); + return; + + } + else + retarray->data = internal_malloc_size (alloc_size); + } + else + { + if (rank != GFC_DESCRIPTOR_RANK (retarray)) + runtime_error ("rank of return array incorrect in" + " NORM intrinsic: is %ld, should be %ld", + (long int) (GFC_DESCRIPTOR_RANK (retarray)), + (long int) rank); + + if (unlikely (compile_options.bounds_check)) + bounds_ifunction_return ((array_t *) retarray, extent, + "return value", "NORM"); + } + + for (n = 0; n < rank; n++) + { + count[n] = 0; + dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + if (extent[n] <= 0) + len = 0; + } + + base = array->data; + dest = retarray->data; + + continue_loop = 1; + while (continue_loop) + { + const GFC_REAL_8 * restrict src; + GFC_REAL_8 result; + src = base; + { + + GFC_REAL_8 scale; + result = 0.0; + scale = 1.0; + if (len <= 0) + *dest = 0.0; + else + { + for (n = 0; n < len; n++, src += delta) + { + + if (*src != 0.0) + { + GFC_REAL_8 absX, val; + absX = fabs (*src); + if (scale < absX) + { + val = scale / absX; + result = 1.0 + result * val * val; + scale = absX; + } + else + { + val = absX / scale; + result += val * val; + } + } + } + result = scale * sqrt (result); + *dest = result; + } + } + /* Advance to the next element. */ + count[0]++; + base += sstride[0]; + dest += dstride[0]; + n = 0; + while (count[n] == extent[n]) + { + /* When we get to the end of a dimension, reset it and increment + the next dimension. */ + count[n] = 0; + /* We could precalculate these products, but this is a less + frequently used path so probably not worth it. */ + base -= sstride[n] * extent[n]; + dest -= dstride[n] * extent[n]; + n++; + if (n == rank) + { + /* Break out of the look. */ + continue_loop = 0; + break; + } + else + { + count[n]++; + base += sstride[n]; + dest += dstride[n]; + } + } + } +} + +#endif diff --git a/libgfortran/generated/parity_l1.c b/libgfortran/generated/parity_l1.c new file mode 100644 index 0000000..4fef277 --- /dev/null +++ b/libgfortran/generated/parity_l1.c @@ -0,0 +1,191 @@ +/* Implementation of the NORM2 intrinsic + Copyright 2010 Free Software Foundation, Inc. + Contributed by Tobias Burnus <burnus@net-b.de> + +This file is part of the GNU Fortran runtime library (libgfortran). + +Libgfortran is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public +License as published by the Free Software Foundation; either +version 3 of the License, or (at your option) any later version. + +Libgfortran is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +#include "libgfortran.h" +#include <stdlib.h> +#include <math.h> +#include <assert.h> + + +#if defined (HAVE_GFC_LOGICAL_1) && defined (HAVE_GFC_LOGICAL_1) + + +extern void parity_l1 (gfc_array_l1 * const restrict, + gfc_array_l1 * const restrict, const index_type * const restrict); +export_proto(parity_l1); + +void +parity_l1 (gfc_array_l1 * const restrict retarray, + gfc_array_l1 * const restrict array, + const index_type * const restrict pdim) +{ + index_type count[GFC_MAX_DIMENSIONS]; + index_type extent[GFC_MAX_DIMENSIONS]; + index_type sstride[GFC_MAX_DIMENSIONS]; + index_type dstride[GFC_MAX_DIMENSIONS]; + const GFC_LOGICAL_1 * restrict base; + GFC_LOGICAL_1 * restrict dest; + index_type rank; + index_type n; + index_type len; + index_type delta; + index_type dim; + int continue_loop; + + /* Make dim zero based to avoid confusion. */ + dim = (*pdim) - 1; + rank = GFC_DESCRIPTOR_RANK (array) - 1; + + len = GFC_DESCRIPTOR_EXTENT(array,dim); + if (len < 0) + len = 0; + delta = GFC_DESCRIPTOR_STRIDE(array,dim); + + for (n = 0; n < dim; n++) + { + sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); + + if (extent[n] < 0) + extent[n] = 0; + } + for (n = dim; n < rank; n++) + { + sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); + + if (extent[n] < 0) + extent[n] = 0; + } + + if (retarray->data == NULL) + { + size_t alloc_size, str; + + for (n = 0; n < rank; n++) + { + if (n == 0) + str = 1; + else + str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + + GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + + } + + retarray->offset = 0; + retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + + alloc_size = sizeof (GFC_LOGICAL_1) * GFC_DESCRIPTOR_STRIDE(retarray,rank-1) + * extent[rank-1]; + + if (alloc_size == 0) + { + /* Make sure we have a zero-sized array. */ + GFC_DIMENSION_SET(retarray->dim[0], 0, -1, 1); + return; + + } + else + retarray->data = internal_malloc_size (alloc_size); + } + else + { + if (rank != GFC_DESCRIPTOR_RANK (retarray)) + runtime_error ("rank of return array incorrect in" + " PARITY intrinsic: is %ld, should be %ld", + (long int) (GFC_DESCRIPTOR_RANK (retarray)), + (long int) rank); + + if (unlikely (compile_options.bounds_check)) + bounds_ifunction_return ((array_t *) retarray, extent, + "return value", "PARITY"); + } + + for (n = 0; n < rank; n++) + { + count[n] = 0; + dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + if (extent[n] <= 0) + len = 0; + } + + base = array->data; + dest = retarray->data; + + continue_loop = 1; + while (continue_loop) + { + const GFC_LOGICAL_1 * restrict src; + GFC_LOGICAL_1 result; + src = base; + { + + result = 0; + if (len <= 0) + *dest = 0; + else + { + for (n = 0; n < len; n++, src += delta) + { + + result = result != *src; + } + + *dest = result; + } + } + /* Advance to the next element. */ + count[0]++; + base += sstride[0]; + dest += dstride[0]; + n = 0; + while (count[n] == extent[n]) + { + /* When we get to the end of a dimension, reset it and increment + the next dimension. */ + count[n] = 0; + /* We could precalculate these products, but this is a less + frequently used path so probably not worth it. */ + base -= sstride[n] * extent[n]; + dest -= dstride[n] * extent[n]; + n++; + if (n == rank) + { + /* Break out of the look. */ + continue_loop = 0; + break; + } + else + { + count[n]++; + base += sstride[n]; + dest += dstride[n]; + } + } + } +} + +#endif diff --git a/libgfortran/generated/parity_l16.c b/libgfortran/generated/parity_l16.c new file mode 100644 index 0000000..45f4457 --- /dev/null +++ b/libgfortran/generated/parity_l16.c @@ -0,0 +1,191 @@ +/* Implementation of the NORM2 intrinsic + Copyright 2010 Free Software Foundation, Inc. + Contributed by Tobias Burnus <burnus@net-b.de> + +This file is part of the GNU Fortran runtime library (libgfortran). + +Libgfortran is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public +License as published by the Free Software Foundation; either +version 3 of the License, or (at your option) any later version. + +Libgfortran is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +#include "libgfortran.h" +#include <stdlib.h> +#include <math.h> +#include <assert.h> + + +#if defined (HAVE_GFC_LOGICAL_16) && defined (HAVE_GFC_LOGICAL_16) + + +extern void parity_l16 (gfc_array_l16 * const restrict, + gfc_array_l16 * const restrict, const index_type * const restrict); +export_proto(parity_l16); + +void +parity_l16 (gfc_array_l16 * const restrict retarray, + gfc_array_l16 * const restrict array, + const index_type * const restrict pdim) +{ + index_type count[GFC_MAX_DIMENSIONS]; + index_type extent[GFC_MAX_DIMENSIONS]; + index_type sstride[GFC_MAX_DIMENSIONS]; + index_type dstride[GFC_MAX_DIMENSIONS]; + const GFC_LOGICAL_16 * restrict base; + GFC_LOGICAL_16 * restrict dest; + index_type rank; + index_type n; + index_type len; + index_type delta; + index_type dim; + int continue_loop; + + /* Make dim zero based to avoid confusion. */ + dim = (*pdim) - 1; + rank = GFC_DESCRIPTOR_RANK (array) - 1; + + len = GFC_DESCRIPTOR_EXTENT(array,dim); + if (len < 0) + len = 0; + delta = GFC_DESCRIPTOR_STRIDE(array,dim); + + for (n = 0; n < dim; n++) + { + sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); + + if (extent[n] < 0) + extent[n] = 0; + } + for (n = dim; n < rank; n++) + { + sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); + + if (extent[n] < 0) + extent[n] = 0; + } + + if (retarray->data == NULL) + { + size_t alloc_size, str; + + for (n = 0; n < rank; n++) + { + if (n == 0) + str = 1; + else + str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + + GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + + } + + retarray->offset = 0; + retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + + alloc_size = sizeof (GFC_LOGICAL_16) * GFC_DESCRIPTOR_STRIDE(retarray,rank-1) + * extent[rank-1]; + + if (alloc_size == 0) + { + /* Make sure we have a zero-sized array. */ + GFC_DIMENSION_SET(retarray->dim[0], 0, -1, 1); + return; + + } + else + retarray->data = internal_malloc_size (alloc_size); + } + else + { + if (rank != GFC_DESCRIPTOR_RANK (retarray)) + runtime_error ("rank of return array incorrect in" + " PARITY intrinsic: is %ld, should be %ld", + (long int) (GFC_DESCRIPTOR_RANK (retarray)), + (long int) rank); + + if (unlikely (compile_options.bounds_check)) + bounds_ifunction_return ((array_t *) retarray, extent, + "return value", "PARITY"); + } + + for (n = 0; n < rank; n++) + { + count[n] = 0; + dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + if (extent[n] <= 0) + len = 0; + } + + base = array->data; + dest = retarray->data; + + continue_loop = 1; + while (continue_loop) + { + const GFC_LOGICAL_16 * restrict src; + GFC_LOGICAL_16 result; + src = base; + { + + result = 0; + if (len <= 0) + *dest = 0; + else + { + for (n = 0; n < len; n++, src += delta) + { + + result = result != *src; + } + + *dest = result; + } + } + /* Advance to the next element. */ + count[0]++; + base += sstride[0]; + dest += dstride[0]; + n = 0; + while (count[n] == extent[n]) + { + /* When we get to the end of a dimension, reset it and increment + the next dimension. */ + count[n] = 0; + /* We could precalculate these products, but this is a less + frequently used path so probably not worth it. */ + base -= sstride[n] * extent[n]; + dest -= dstride[n] * extent[n]; + n++; + if (n == rank) + { + /* Break out of the look. */ + continue_loop = 0; + break; + } + else + { + count[n]++; + base += sstride[n]; + dest += dstride[n]; + } + } + } +} + +#endif diff --git a/libgfortran/generated/parity_l2.c b/libgfortran/generated/parity_l2.c new file mode 100644 index 0000000..13e77bd --- /dev/null +++ b/libgfortran/generated/parity_l2.c @@ -0,0 +1,191 @@ +/* Implementation of the NORM2 intrinsic + Copyright 2010 Free Software Foundation, Inc. + Contributed by Tobias Burnus <burnus@net-b.de> + +This file is part of the GNU Fortran runtime library (libgfortran). + +Libgfortran is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public +License as published by the Free Software Foundation; either +version 3 of the License, or (at your option) any later version. + +Libgfortran is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +#include "libgfortran.h" +#include <stdlib.h> +#include <math.h> +#include <assert.h> + + +#if defined (HAVE_GFC_LOGICAL_2) && defined (HAVE_GFC_LOGICAL_2) + + +extern void parity_l2 (gfc_array_l2 * const restrict, + gfc_array_l2 * const restrict, const index_type * const restrict); +export_proto(parity_l2); + +void +parity_l2 (gfc_array_l2 * const restrict retarray, + gfc_array_l2 * const restrict array, + const index_type * const restrict pdim) +{ + index_type count[GFC_MAX_DIMENSIONS]; + index_type extent[GFC_MAX_DIMENSIONS]; + index_type sstride[GFC_MAX_DIMENSIONS]; + index_type dstride[GFC_MAX_DIMENSIONS]; + const GFC_LOGICAL_2 * restrict base; + GFC_LOGICAL_2 * restrict dest; + index_type rank; + index_type n; + index_type len; + index_type delta; + index_type dim; + int continue_loop; + + /* Make dim zero based to avoid confusion. */ + dim = (*pdim) - 1; + rank = GFC_DESCRIPTOR_RANK (array) - 1; + + len = GFC_DESCRIPTOR_EXTENT(array,dim); + if (len < 0) + len = 0; + delta = GFC_DESCRIPTOR_STRIDE(array,dim); + + for (n = 0; n < dim; n++) + { + sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); + + if (extent[n] < 0) + extent[n] = 0; + } + for (n = dim; n < rank; n++) + { + sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); + + if (extent[n] < 0) + extent[n] = 0; + } + + if (retarray->data == NULL) + { + size_t alloc_size, str; + + for (n = 0; n < rank; n++) + { + if (n == 0) + str = 1; + else + str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + + GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + + } + + retarray->offset = 0; + retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + + alloc_size = sizeof (GFC_LOGICAL_2) * GFC_DESCRIPTOR_STRIDE(retarray,rank-1) + * extent[rank-1]; + + if (alloc_size == 0) + { + /* Make sure we have a zero-sized array. */ + GFC_DIMENSION_SET(retarray->dim[0], 0, -1, 1); + return; + + } + else + retarray->data = internal_malloc_size (alloc_size); + } + else + { + if (rank != GFC_DESCRIPTOR_RANK (retarray)) + runtime_error ("rank of return array incorrect in" + " PARITY intrinsic: is %ld, should be %ld", + (long int) (GFC_DESCRIPTOR_RANK (retarray)), + (long int) rank); + + if (unlikely (compile_options.bounds_check)) + bounds_ifunction_return ((array_t *) retarray, extent, + "return value", "PARITY"); + } + + for (n = 0; n < rank; n++) + { + count[n] = 0; + dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + if (extent[n] <= 0) + len = 0; + } + + base = array->data; + dest = retarray->data; + + continue_loop = 1; + while (continue_loop) + { + const GFC_LOGICAL_2 * restrict src; + GFC_LOGICAL_2 result; + src = base; + { + + result = 0; + if (len <= 0) + *dest = 0; + else + { + for (n = 0; n < len; n++, src += delta) + { + + result = result != *src; + } + + *dest = result; + } + } + /* Advance to the next element. */ + count[0]++; + base += sstride[0]; + dest += dstride[0]; + n = 0; + while (count[n] == extent[n]) + { + /* When we get to the end of a dimension, reset it and increment + the next dimension. */ + count[n] = 0; + /* We could precalculate these products, but this is a less + frequently used path so probably not worth it. */ + base -= sstride[n] * extent[n]; + dest -= dstride[n] * extent[n]; + n++; + if (n == rank) + { + /* Break out of the look. */ + continue_loop = 0; + break; + } + else + { + count[n]++; + base += sstride[n]; + dest += dstride[n]; + } + } + } +} + +#endif diff --git a/libgfortran/generated/parity_l4.c b/libgfortran/generated/parity_l4.c new file mode 100644 index 0000000..5d7fbbe --- /dev/null +++ b/libgfortran/generated/parity_l4.c @@ -0,0 +1,191 @@ +/* Implementation of the NORM2 intrinsic + Copyright 2010 Free Software Foundation, Inc. + Contributed by Tobias Burnus <burnus@net-b.de> + +This file is part of the GNU Fortran runtime library (libgfortran). + +Libgfortran is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public +License as published by the Free Software Foundation; either +version 3 of the License, or (at your option) any later version. + +Libgfortran is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +#include "libgfortran.h" +#include <stdlib.h> +#include <math.h> +#include <assert.h> + + +#if defined (HAVE_GFC_LOGICAL_4) && defined (HAVE_GFC_LOGICAL_4) + + +extern void parity_l4 (gfc_array_l4 * const restrict, + gfc_array_l4 * const restrict, const index_type * const restrict); +export_proto(parity_l4); + +void +parity_l4 (gfc_array_l4 * const restrict retarray, + gfc_array_l4 * const restrict array, + const index_type * const restrict pdim) +{ + index_type count[GFC_MAX_DIMENSIONS]; + index_type extent[GFC_MAX_DIMENSIONS]; + index_type sstride[GFC_MAX_DIMENSIONS]; + index_type dstride[GFC_MAX_DIMENSIONS]; + const GFC_LOGICAL_4 * restrict base; + GFC_LOGICAL_4 * restrict dest; + index_type rank; + index_type n; + index_type len; + index_type delta; + index_type dim; + int continue_loop; + + /* Make dim zero based to avoid confusion. */ + dim = (*pdim) - 1; + rank = GFC_DESCRIPTOR_RANK (array) - 1; + + len = GFC_DESCRIPTOR_EXTENT(array,dim); + if (len < 0) + len = 0; + delta = GFC_DESCRIPTOR_STRIDE(array,dim); + + for (n = 0; n < dim; n++) + { + sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); + + if (extent[n] < 0) + extent[n] = 0; + } + for (n = dim; n < rank; n++) + { + sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); + + if (extent[n] < 0) + extent[n] = 0; + } + + if (retarray->data == NULL) + { + size_t alloc_size, str; + + for (n = 0; n < rank; n++) + { + if (n == 0) + str = 1; + else + str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + + GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + + } + + retarray->offset = 0; + retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + + alloc_size = sizeof (GFC_LOGICAL_4) * GFC_DESCRIPTOR_STRIDE(retarray,rank-1) + * extent[rank-1]; + + if (alloc_size == 0) + { + /* Make sure we have a zero-sized array. */ + GFC_DIMENSION_SET(retarray->dim[0], 0, -1, 1); + return; + + } + else + retarray->data = internal_malloc_size (alloc_size); + } + else + { + if (rank != GFC_DESCRIPTOR_RANK (retarray)) + runtime_error ("rank of return array incorrect in" + " PARITY intrinsic: is %ld, should be %ld", + (long int) (GFC_DESCRIPTOR_RANK (retarray)), + (long int) rank); + + if (unlikely (compile_options.bounds_check)) + bounds_ifunction_return ((array_t *) retarray, extent, + "return value", "PARITY"); + } + + for (n = 0; n < rank; n++) + { + count[n] = 0; + dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + if (extent[n] <= 0) + len = 0; + } + + base = array->data; + dest = retarray->data; + + continue_loop = 1; + while (continue_loop) + { + const GFC_LOGICAL_4 * restrict src; + GFC_LOGICAL_4 result; + src = base; + { + + result = 0; + if (len <= 0) + *dest = 0; + else + { + for (n = 0; n < len; n++, src += delta) + { + + result = result != *src; + } + + *dest = result; + } + } + /* Advance to the next element. */ + count[0]++; + base += sstride[0]; + dest += dstride[0]; + n = 0; + while (count[n] == extent[n]) + { + /* When we get to the end of a dimension, reset it and increment + the next dimension. */ + count[n] = 0; + /* We could precalculate these products, but this is a less + frequently used path so probably not worth it. */ + base -= sstride[n] * extent[n]; + dest -= dstride[n] * extent[n]; + n++; + if (n == rank) + { + /* Break out of the look. */ + continue_loop = 0; + break; + } + else + { + count[n]++; + base += sstride[n]; + dest += dstride[n]; + } + } + } +} + +#endif diff --git a/libgfortran/generated/parity_l8.c b/libgfortran/generated/parity_l8.c new file mode 100644 index 0000000..1d9ba82 --- /dev/null +++ b/libgfortran/generated/parity_l8.c @@ -0,0 +1,191 @@ +/* Implementation of the NORM2 intrinsic + Copyright 2010 Free Software Foundation, Inc. + Contributed by Tobias Burnus <burnus@net-b.de> + +This file is part of the GNU Fortran runtime library (libgfortran). + +Libgfortran is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public +License as published by the Free Software Foundation; either +version 3 of the License, or (at your option) any later version. + +Libgfortran is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +#include "libgfortran.h" +#include <stdlib.h> +#include <math.h> +#include <assert.h> + + +#if defined (HAVE_GFC_LOGICAL_8) && defined (HAVE_GFC_LOGICAL_8) + + +extern void parity_l8 (gfc_array_l8 * const restrict, + gfc_array_l8 * const restrict, const index_type * const restrict); +export_proto(parity_l8); + +void +parity_l8 (gfc_array_l8 * const restrict retarray, + gfc_array_l8 * const restrict array, + const index_type * const restrict pdim) +{ + index_type count[GFC_MAX_DIMENSIONS]; + index_type extent[GFC_MAX_DIMENSIONS]; + index_type sstride[GFC_MAX_DIMENSIONS]; + index_type dstride[GFC_MAX_DIMENSIONS]; + const GFC_LOGICAL_8 * restrict base; + GFC_LOGICAL_8 * restrict dest; + index_type rank; + index_type n; + index_type len; + index_type delta; + index_type dim; + int continue_loop; + + /* Make dim zero based to avoid confusion. */ + dim = (*pdim) - 1; + rank = GFC_DESCRIPTOR_RANK (array) - 1; + + len = GFC_DESCRIPTOR_EXTENT(array,dim); + if (len < 0) + len = 0; + delta = GFC_DESCRIPTOR_STRIDE(array,dim); + + for (n = 0; n < dim; n++) + { + sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); + + if (extent[n] < 0) + extent[n] = 0; + } + for (n = dim; n < rank; n++) + { + sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); + + if (extent[n] < 0) + extent[n] = 0; + } + + if (retarray->data == NULL) + { + size_t alloc_size, str; + + for (n = 0; n < rank; n++) + { + if (n == 0) + str = 1; + else + str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + + GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + + } + + retarray->offset = 0; + retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + + alloc_size = sizeof (GFC_LOGICAL_8) * GFC_DESCRIPTOR_STRIDE(retarray,rank-1) + * extent[rank-1]; + + if (alloc_size == 0) + { + /* Make sure we have a zero-sized array. */ + GFC_DIMENSION_SET(retarray->dim[0], 0, -1, 1); + return; + + } + else + retarray->data = internal_malloc_size (alloc_size); + } + else + { + if (rank != GFC_DESCRIPTOR_RANK (retarray)) + runtime_error ("rank of return array incorrect in" + " PARITY intrinsic: is %ld, should be %ld", + (long int) (GFC_DESCRIPTOR_RANK (retarray)), + (long int) rank); + + if (unlikely (compile_options.bounds_check)) + bounds_ifunction_return ((array_t *) retarray, extent, + "return value", "PARITY"); + } + + for (n = 0; n < rank; n++) + { + count[n] = 0; + dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + if (extent[n] <= 0) + len = 0; + } + + base = array->data; + dest = retarray->data; + + continue_loop = 1; + while (continue_loop) + { + const GFC_LOGICAL_8 * restrict src; + GFC_LOGICAL_8 result; + src = base; + { + + result = 0; + if (len <= 0) + *dest = 0; + else + { + for (n = 0; n < len; n++, src += delta) + { + + result = result != *src; + } + + *dest = result; + } + } + /* Advance to the next element. */ + count[0]++; + base += sstride[0]; + dest += dstride[0]; + n = 0; + while (count[n] == extent[n]) + { + /* When we get to the end of a dimension, reset it and increment + the next dimension. */ + count[n] = 0; + /* We could precalculate these products, but this is a less + frequently used path so probably not worth it. */ + base -= sstride[n] * extent[n]; + dest -= dstride[n] * extent[n]; + n++; + if (n == rank) + { + /* Break out of the look. */ + continue_loop = 0; + break; + } + else + { + count[n]++; + base += sstride[n]; + dest += dstride[n]; + } + } + } +} + +#endif diff --git a/libgfortran/generated/product_c10.c b/libgfortran/generated/product_c10.c index ee1da3c..125c44d 100644 --- a/libgfortran/generated/product_c10.c +++ b/libgfortran/generated/product_c10.c @@ -1,8 +1,8 @@ /* Implementation of the PRODUCT intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -152,6 +152,7 @@ product_c10 (gfc_array_c10 * const restrict retarray, result *= *src; } + *dest = result; } } diff --git a/libgfortran/generated/product_c16.c b/libgfortran/generated/product_c16.c index eeeeb66..6a64e65 100644 --- a/libgfortran/generated/product_c16.c +++ b/libgfortran/generated/product_c16.c @@ -1,8 +1,8 @@ /* Implementation of the PRODUCT intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -152,6 +152,7 @@ product_c16 (gfc_array_c16 * const restrict retarray, result *= *src; } + *dest = result; } } diff --git a/libgfortran/generated/product_c4.c b/libgfortran/generated/product_c4.c index 1a44948..9c092eb 100644 --- a/libgfortran/generated/product_c4.c +++ b/libgfortran/generated/product_c4.c @@ -1,8 +1,8 @@ /* Implementation of the PRODUCT intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -152,6 +152,7 @@ product_c4 (gfc_array_c4 * const restrict retarray, result *= *src; } + *dest = result; } } diff --git a/libgfortran/generated/product_c8.c b/libgfortran/generated/product_c8.c index ad3f111..a6b3c3d 100644 --- a/libgfortran/generated/product_c8.c +++ b/libgfortran/generated/product_c8.c @@ -1,8 +1,8 @@ /* Implementation of the PRODUCT intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -152,6 +152,7 @@ product_c8 (gfc_array_c8 * const restrict retarray, result *= *src; } + *dest = result; } } diff --git a/libgfortran/generated/product_i1.c b/libgfortran/generated/product_i1.c index 202d0cb..96c4f9c 100644 --- a/libgfortran/generated/product_i1.c +++ b/libgfortran/generated/product_i1.c @@ -1,8 +1,8 @@ /* Implementation of the PRODUCT intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -152,6 +152,7 @@ product_i1 (gfc_array_i1 * const restrict retarray, result *= *src; } + *dest = result; } } diff --git a/libgfortran/generated/product_i16.c b/libgfortran/generated/product_i16.c index 5e47186..bae7554 100644 --- a/libgfortran/generated/product_i16.c +++ b/libgfortran/generated/product_i16.c @@ -1,8 +1,8 @@ /* Implementation of the PRODUCT intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -152,6 +152,7 @@ product_i16 (gfc_array_i16 * const restrict retarray, result *= *src; } + *dest = result; } } diff --git a/libgfortran/generated/product_i2.c b/libgfortran/generated/product_i2.c index c5bfc29..5546f59 100644 --- a/libgfortran/generated/product_i2.c +++ b/libgfortran/generated/product_i2.c @@ -1,8 +1,8 @@ /* Implementation of the PRODUCT intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -152,6 +152,7 @@ product_i2 (gfc_array_i2 * const restrict retarray, result *= *src; } + *dest = result; } } diff --git a/libgfortran/generated/product_i4.c b/libgfortran/generated/product_i4.c index 0341445..acb2f97 100644 --- a/libgfortran/generated/product_i4.c +++ b/libgfortran/generated/product_i4.c @@ -1,8 +1,8 @@ /* Implementation of the PRODUCT intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -152,6 +152,7 @@ product_i4 (gfc_array_i4 * const restrict retarray, result *= *src; } + *dest = result; } } diff --git a/libgfortran/generated/product_i8.c b/libgfortran/generated/product_i8.c index d0bfb85..bb2e631 100644 --- a/libgfortran/generated/product_i8.c +++ b/libgfortran/generated/product_i8.c @@ -1,8 +1,8 @@ /* Implementation of the PRODUCT intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -152,6 +152,7 @@ product_i8 (gfc_array_i8 * const restrict retarray, result *= *src; } + *dest = result; } } diff --git a/libgfortran/generated/product_r10.c b/libgfortran/generated/product_r10.c index 694cc86..ae86e72 100644 --- a/libgfortran/generated/product_r10.c +++ b/libgfortran/generated/product_r10.c @@ -1,8 +1,8 @@ /* Implementation of the PRODUCT intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -152,6 +152,7 @@ product_r10 (gfc_array_r10 * const restrict retarray, result *= *src; } + *dest = result; } } diff --git a/libgfortran/generated/product_r16.c b/libgfortran/generated/product_r16.c index dcad0ed..71bc8cc 100644 --- a/libgfortran/generated/product_r16.c +++ b/libgfortran/generated/product_r16.c @@ -1,8 +1,8 @@ /* Implementation of the PRODUCT intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -152,6 +152,7 @@ product_r16 (gfc_array_r16 * const restrict retarray, result *= *src; } + *dest = result; } } diff --git a/libgfortran/generated/product_r4.c b/libgfortran/generated/product_r4.c index 26fad0d..142b7c3 100644 --- a/libgfortran/generated/product_r4.c +++ b/libgfortran/generated/product_r4.c @@ -1,8 +1,8 @@ /* Implementation of the PRODUCT intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -152,6 +152,7 @@ product_r4 (gfc_array_r4 * const restrict retarray, result *= *src; } + *dest = result; } } diff --git a/libgfortran/generated/product_r8.c b/libgfortran/generated/product_r8.c index 06ee57d..8e50e01 100644 --- a/libgfortran/generated/product_r8.c +++ b/libgfortran/generated/product_r8.c @@ -1,8 +1,8 @@ /* Implementation of the PRODUCT intrinsic - Copyright 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright 2002, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> -This file is part of the GNU Fortran 95 runtime library (libgfortran). +This file is part of the GNU Fortran runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -152,6 +152,7 @@ product_r8 (gfc_array_r8 * const restrict retarray, result *= *src; } + *dest = result; } } diff --git a/libgfortran/generated/sum_c10.c b/libgfortran/generated/sum_c10.c index 4008607..f254190 100644 --- a/libgfortran/generated/sum_c10.c +++ b/libgfortran/generated/sum_c10.c @@ -152,6 +152,7 @@ sum_c10 (gfc_array_c10 * const restrict retarray, result += *src; } + *dest = result; } } diff --git a/libgfortran/generated/sum_c16.c b/libgfortran/generated/sum_c16.c index 426eb10..5505647 100644 --- a/libgfortran/generated/sum_c16.c +++ b/libgfortran/generated/sum_c16.c @@ -152,6 +152,7 @@ sum_c16 (gfc_array_c16 * const restrict retarray, result += *src; } + *dest = result; } } diff --git a/libgfortran/generated/sum_c4.c b/libgfortran/generated/sum_c4.c index 1991a3e..99a6e35 100644 --- a/libgfortran/generated/sum_c4.c +++ b/libgfortran/generated/sum_c4.c @@ -152,6 +152,7 @@ sum_c4 (gfc_array_c4 * const restrict retarray, result += *src; } + *dest = result; } } diff --git a/libgfortran/generated/sum_c8.c b/libgfortran/generated/sum_c8.c index 3272bbc..5050507 100644 --- a/libgfortran/generated/sum_c8.c +++ b/libgfortran/generated/sum_c8.c @@ -152,6 +152,7 @@ sum_c8 (gfc_array_c8 * const restrict retarray, result += *src; } + *dest = result; } } diff --git a/libgfortran/generated/sum_i1.c b/libgfortran/generated/sum_i1.c index df8338d..d839b0f 100644 --- a/libgfortran/generated/sum_i1.c +++ b/libgfortran/generated/sum_i1.c @@ -152,6 +152,7 @@ sum_i1 (gfc_array_i1 * const restrict retarray, result += *src; } + *dest = result; } } diff --git a/libgfortran/generated/sum_i16.c b/libgfortran/generated/sum_i16.c index 50ff8ab..d02a171 100644 --- a/libgfortran/generated/sum_i16.c +++ b/libgfortran/generated/sum_i16.c @@ -152,6 +152,7 @@ sum_i16 (gfc_array_i16 * const restrict retarray, result += *src; } + *dest = result; } } diff --git a/libgfortran/generated/sum_i2.c b/libgfortran/generated/sum_i2.c index 3fb848f..d5b16dd 100644 --- a/libgfortran/generated/sum_i2.c +++ b/libgfortran/generated/sum_i2.c @@ -152,6 +152,7 @@ sum_i2 (gfc_array_i2 * const restrict retarray, result += *src; } + *dest = result; } } diff --git a/libgfortran/generated/sum_i4.c b/libgfortran/generated/sum_i4.c index 7ad317c..db0ad0e 100644 --- a/libgfortran/generated/sum_i4.c +++ b/libgfortran/generated/sum_i4.c @@ -152,6 +152,7 @@ sum_i4 (gfc_array_i4 * const restrict retarray, result += *src; } + *dest = result; } } diff --git a/libgfortran/generated/sum_i8.c b/libgfortran/generated/sum_i8.c index 050e596..f872bd4 100644 --- a/libgfortran/generated/sum_i8.c +++ b/libgfortran/generated/sum_i8.c @@ -152,6 +152,7 @@ sum_i8 (gfc_array_i8 * const restrict retarray, result += *src; } + *dest = result; } } diff --git a/libgfortran/generated/sum_r10.c b/libgfortran/generated/sum_r10.c index 333dbb4..a1bf9fa 100644 --- a/libgfortran/generated/sum_r10.c +++ b/libgfortran/generated/sum_r10.c @@ -152,6 +152,7 @@ sum_r10 (gfc_array_r10 * const restrict retarray, result += *src; } + *dest = result; } } diff --git a/libgfortran/generated/sum_r16.c b/libgfortran/generated/sum_r16.c index a765758..d381702 100644 --- a/libgfortran/generated/sum_r16.c +++ b/libgfortran/generated/sum_r16.c @@ -152,6 +152,7 @@ sum_r16 (gfc_array_r16 * const restrict retarray, result += *src; } + *dest = result; } } diff --git a/libgfortran/generated/sum_r4.c b/libgfortran/generated/sum_r4.c index 235195a..53787f9 100644 --- a/libgfortran/generated/sum_r4.c +++ b/libgfortran/generated/sum_r4.c @@ -152,6 +152,7 @@ sum_r4 (gfc_array_r4 * const restrict retarray, result += *src; } + *dest = result; } } diff --git a/libgfortran/generated/sum_r8.c b/libgfortran/generated/sum_r8.c index d5c5bbb..c4ab3ca 100644 --- a/libgfortran/generated/sum_r8.c +++ b/libgfortran/generated/sum_r8.c @@ -152,6 +152,7 @@ sum_r8 (gfc_array_r8 * const restrict retarray, result += *src; } + *dest = result; } } |