]> git.ipfire.org Git - thirdparty/gcc.git/blame - libgfortran/m4/maxloc0.m4
Merge tree-ssa-20020619-branch into mainline.
[thirdparty/gcc.git] / libgfortran / m4 / maxloc0.m4
CommitLineData
6de9cd9a
DN
1`/* Implementation of the MAXLOC intrinsic
2 Copyright 2002 Free Software Foundation, Inc.
3 Contributed by Paul Brook <paul@nowt.org>
4
5This file is part of the GNU Fortran 95 runtime library (libgfor).
6
7Libgfortran is free software; you can redistribute it and/or
8modify it under the terms of the GNU Lesser General Public
9License as published by the Free Software Foundation; either
10version 2.1 of the License, or (at your option) any later version.
11
12Libgfortran is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU Lesser General Public License for more details.
16
17You should have received a copy of the GNU Lesser General Public
18License along with libgfor; see the file COPYING.LIB. If not,
19write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
20Boston, MA 02111-1307, USA. */
21
22#include "config.h"
23#include <stdlib.h>
24#include <assert.h>
25#include <float.h>
26#include <limits.h>
27#include "libgfortran.h"'
28
29include(iparm.m4)dnl
30include(iforeach.m4)dnl
31
32FOREACH_FUNCTION(
33` type_name maxval;
34
35 maxval = type_min;'
36,
37` if (*base > maxval)
38 {
39 maxval = *base;
40 for (n = 0; n < rank; n++)
41 dest[n * dstride] = count[n] + 1;
42 }')
43
44MASKED_FOREACH_FUNCTION(
45` type_name maxval;
46
47 maxval = type_min;'
48,
49` if (*mbase && *base > maxval)
50 {
51 maxval = *base;
52 for (n = 0; n < rank; n++)
53 dest[n * dstride] = count[n] + 1;
54 }')