1dnl Support macros for findloc.
2dnl This file is part of the GNU Fortran Runtime Library (libgfortran)
3dnl Distributed under the GNU GPL with exception.  See COPYING for details.
4include(iparm.m4)dnl
5define(header1,`extern void findloc1_'atype_code` (gfc_array_index_type * const restrict retarray,
6		         'atype` * const restrict array, 'atype_name` *const restrict value,
7			 const 'index_type` * restrict pdim, GFC_LOGICAL_4 back,
8			 gfc_charlen_type len_array, gfc_charlen_type len_value);
9export_proto(findloc1_'atype_code`);
10
11extern void
12findloc1_'atype_code` (gfc_array_index_type * const restrict retarray,
13	    'atype` * const restrict array, 'atype_name` *const restrict value,
14	    const 'index_type` * restrict pdim, GFC_LOGICAL_4 back,
15	    gfc_charlen_type len_array, gfc_charlen_type len_value)')dnl
16dnl
17define(header2,`extern void mfindloc1_'atype_code` (gfc_array_index_type * const restrict retarray,
18		         'atype` * const restrict array, 'atype_name` *const restrict value,
19			 const 'index_type` * restrict pdim, gfc_array_l1 *const restrict mask,
20			 GFC_LOGICAL_4 back, gfc_charlen_type len_array, gfc_charlen_type len_value);
21export_proto(mfindloc1_'atype_code`);
22
23extern void
24mfindloc1_'atype_code` (gfc_array_index_type * const restrict retarray,
25	    'atype` * const restrict array, 'atype_name` *const restrict value,
26	    const 'index_type` * restrict pdim, gfc_array_l1 *const restrict mask,
27	    GFC_LOGICAL_4 back, gfc_charlen_type len_array, gfc_charlen_type len_value)')dnl
28define(header3,`extern void sfindloc1_'atype_code` (gfc_array_index_type * const restrict retarray,
29		         'atype` * const restrict array, 'atype_name` *const restrict value,
30			 const 'index_type` * restrict pdim, GFC_LOGICAL_4 *const restrict mask,
31			 GFC_LOGICAL_4 back, gfc_charlen_type len_array, gfc_charlen_type len_value);
32export_proto(sfindloc1_'atype_code`);
33
34extern void
35sfindloc1_'atype_code` (gfc_array_index_type * const restrict retarray,
36	    'atype` * const restrict array, 'atype_name` *const restrict value,
37	    const 'index_type` * restrict pdim, GFC_LOGICAL_4 *const restrict  mask,
38	    GFC_LOGICAL_4 back, gfc_charlen_type len_array, gfc_charlen_type len_value)')dnl
39define(comparison,ifelse(atype_kind,4,dnl
40`compare_string_char4 (len_array, src, len_value, value) == 0',dnl
41`compare_string (len_array, (char *) src, len_value, (char *) value) == 0'))dnl
42define(len_arg,`, len_array, len_value')dnl
43define(base_mult,`len_array')dnl
44include(ifindloc1.m4)dnl
45