1`/* Implementation of the MAXLOC intrinsic 2 Copyright (C) 2017-2019 Free Software Foundation, Inc. 3 Contributed by Thomas Koenig 4 5This file is part of the GNU Fortran runtime library (libgfortran). 6 7Libgfortran is free software; you can redistribute it and/or 8modify it under the terms of the GNU General Public 9License as published by the Free Software Foundation; either 10version 3 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 General Public License for more details. 16 17Under Section 7 of GPL version 3, you are granted additional 18permissions described in the GCC Runtime Library Exception, version 193.1, as published by the Free Software Foundation. 20 21You should have received a copy of the GNU General Public License and 22a copy of the GCC Runtime Library Exception along with this program; 23see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 24<http://www.gnu.org/licenses/>. */ 25 26#include "libgfortran.h" 27#include <stdlib.h> 28#include <string.h> 29#include <assert.h> 30#include <limits.h>' 31 32include(iparm.m4)dnl 33include(iforeach-s2.m4)dnl 34 35`#if defined (HAVE_'atype_name`) && defined (HAVE_'rtype_name`)' 36 37FOREACH_FUNCTION( 38` const atype_name *retval; 39 retval = ret;' 40, 41` if (compare_fcn (base, retval, len) > 0) 42 { 43 retval = base; 44 }') 45 46MASKED_FOREACH_FUNCTION( 47` const atype_name *retval; 48 49 retval = ret;' 50, 51` if (*mbase && compare_fcn (base, retval, len) > 0) 52 { 53 retval = base; 54 }') 55 56SCALAR_FOREACH_FUNCTION 57 58#endif 59