(root)/
gcc-13.2.0/
gcc/
fortran/
intrinsic.h
       1  /* Header file for intrinsics check, resolve and simplify function
       2     prototypes.
       3     Copyright (C) 2000-2023 Free Software Foundation, Inc.
       4     Contributed by Andy Vaught & Katherine Holcomb
       5  
       6  This file is part of GCC.
       7  
       8  GCC is free software; you can redistribute it and/or modify it under
       9  the terms of the GNU General Public License as published by the Free
      10  Software Foundation; either version 3, or (at your option) any later
      11  version.
      12  
      13  GCC is distributed in the hope that it will be useful, but WITHOUT ANY
      14  WARRANTY; without even the implied warranty of MERCHANTABILITY or
      15  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
      16  for more details.
      17  
      18  You should have received a copy of the GNU General Public License
      19  along with GCC; see the file COPYING3.  If not see
      20  <http://www.gnu.org/licenses/>.  */
      21  
      22  /* Expression returned when simplification fails.  */
      23  
      24  extern gfc_expr gfc_bad_expr;
      25  
      26  
      27  /* Check functions.  */
      28  bool gfc_check_a_ikind (gfc_expr *, gfc_expr *);
      29  bool gfc_check_a_xkind (gfc_expr *, gfc_expr *);
      30  bool gfc_check_a_p (gfc_expr *, gfc_expr *);
      31  bool gfc_check_x_yd (gfc_expr *, gfc_expr *);
      32  
      33  bool gfc_check_abs (gfc_expr *);
      34  bool gfc_check_access_func (gfc_expr *, gfc_expr *);
      35  bool gfc_check_achar (gfc_expr *, gfc_expr *);
      36  bool gfc_check_all_any (gfc_expr *, gfc_expr *);
      37  bool gfc_check_allocated (gfc_expr *);
      38  bool gfc_check_associated (gfc_expr *, gfc_expr *);
      39  bool gfc_check_atan_2 (gfc_expr *, gfc_expr *);
      40  bool gfc_check_atan2 (gfc_expr *, gfc_expr *);
      41  bool gfc_check_atomic_cas (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *,
      42  			   gfc_expr *);
      43  bool gfc_check_atomic_def (gfc_expr *, gfc_expr *, gfc_expr *);
      44  bool gfc_check_atomic_fetch_op (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
      45  bool gfc_check_atomic_op (gfc_expr *, gfc_expr *, gfc_expr *);
      46  bool gfc_check_atomic_ref (gfc_expr *, gfc_expr *, gfc_expr *);
      47  bool gfc_check_besn (gfc_expr *, gfc_expr *);
      48  bool gfc_check_bessel_n2 (gfc_expr *, gfc_expr *, gfc_expr *);
      49  bool gfc_check_bge_bgt_ble_blt (gfc_expr *, gfc_expr *);
      50  bool gfc_check_bitfcn (gfc_expr *, gfc_expr *);
      51  bool gfc_check_char (gfc_expr *, gfc_expr *);
      52  bool gfc_check_chdir (gfc_expr *);
      53  bool gfc_check_chmod (gfc_expr *, gfc_expr *);
      54  bool gfc_check_cmplx (gfc_expr *, gfc_expr *, gfc_expr *);
      55  bool gfc_check_complex (gfc_expr *, gfc_expr *);
      56  bool gfc_check_co_broadcast (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
      57  bool gfc_check_co_minmax (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
      58  bool gfc_check_co_sum (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
      59  bool gfc_check_co_reduce (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *,
      60  			  gfc_expr *);
      61  bool gfc_check_count (gfc_expr *, gfc_expr *, gfc_expr *);
      62  bool gfc_check_cshift (gfc_expr *, gfc_expr *, gfc_expr *);
      63  bool gfc_check_ctime (gfc_expr *);
      64  bool gfc_check_datan2 (gfc_expr *, gfc_expr *);
      65  bool gfc_check_dcmplx (gfc_expr *, gfc_expr *);
      66  bool gfc_check_dble (gfc_expr *);
      67  bool gfc_check_digits (gfc_expr *);
      68  bool gfc_check_dot_product (gfc_expr *, gfc_expr *);
      69  bool gfc_check_dprod (gfc_expr *, gfc_expr *);
      70  bool gfc_check_dshift (gfc_expr *, gfc_expr *, gfc_expr *);
      71  bool gfc_check_eoshift (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
      72  bool gfc_check_dtime_etime (gfc_expr *);
      73  bool gfc_check_event_query (gfc_expr *, gfc_expr *, gfc_expr *);
      74  bool gfc_check_failed_or_stopped_images (gfc_expr *, gfc_expr *);
      75  bool gfc_check_fgetputc (gfc_expr *, gfc_expr *);
      76  bool gfc_check_fgetput (gfc_expr *);
      77  bool gfc_check_findloc (gfc_actual_arglist *);
      78  bool gfc_check_float (gfc_expr *);
      79  bool gfc_check_fstat (gfc_expr *, gfc_expr *);
      80  bool gfc_check_ftell (gfc_expr *);
      81  bool gfc_check_fn_c (gfc_expr *);
      82  bool gfc_check_fn_d (gfc_expr *);
      83  bool gfc_check_fn_r (gfc_expr *);
      84  bool gfc_check_fn_rc (gfc_expr *);
      85  bool gfc_check_fn_rc2008 (gfc_expr *);
      86  bool gfc_check_fnum (gfc_expr *);
      87  bool gfc_check_get_team (gfc_expr *);
      88  bool gfc_check_hostnm (gfc_expr *);
      89  bool gfc_check_huge (gfc_expr *);
      90  bool gfc_check_hypot (gfc_expr *, gfc_expr *);
      91  bool gfc_check_i (gfc_expr *);
      92  bool gfc_check_iand_ieor_ior (gfc_expr *, gfc_expr *);
      93  bool gfc_check_and (gfc_expr *, gfc_expr *);
      94  bool gfc_check_ibits (gfc_expr *, gfc_expr *, gfc_expr *);
      95  bool gfc_check_ichar_iachar (gfc_expr *, gfc_expr *);
      96  bool gfc_check_idnint (gfc_expr *);
      97  bool gfc_check_image_status (gfc_expr *, gfc_expr *);
      98  bool gfc_check_index (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
      99  bool gfc_check_int (gfc_expr *, gfc_expr *);
     100  bool gfc_check_intconv (gfc_expr *);
     101  bool gfc_check_irand (gfc_expr *);
     102  bool gfc_check_is_contiguous (gfc_expr *);
     103  bool gfc_check_isatty (gfc_expr *);
     104  bool gfc_check_isnan (gfc_expr *);
     105  bool gfc_check_ishft (gfc_expr *, gfc_expr *);
     106  bool gfc_check_ishftc (gfc_expr *, gfc_expr *, gfc_expr *);
     107  bool gfc_check_kill (gfc_expr *, gfc_expr *);
     108  bool gfc_check_kind (gfc_expr *);
     109  bool gfc_check_lbound (gfc_expr *, gfc_expr *, gfc_expr *);
     110  bool gfc_check_lcobound (gfc_expr *, gfc_expr *, gfc_expr *);
     111  bool gfc_check_len_lentrim (gfc_expr *, gfc_expr *);
     112  bool gfc_check_link (gfc_expr *, gfc_expr *);
     113  bool gfc_check_lge_lgt_lle_llt (gfc_expr *, gfc_expr *);
     114  bool gfc_check_loc (gfc_expr *);
     115  bool gfc_check_logical (gfc_expr *, gfc_expr *);
     116  bool gfc_check_min_max (gfc_actual_arglist *);
     117  bool gfc_check_min_max_integer (gfc_actual_arglist *);
     118  bool gfc_check_min_max_real (gfc_actual_arglist *);
     119  bool gfc_check_min_max_double (gfc_actual_arglist *);
     120  bool gfc_check_malloc (gfc_expr *);
     121  bool gfc_check_mask (gfc_expr *, gfc_expr *);
     122  bool gfc_check_matmul (gfc_expr *, gfc_expr *);
     123  bool gfc_check_merge (gfc_expr *, gfc_expr *, gfc_expr *);
     124  bool gfc_check_merge_bits (gfc_expr *, gfc_expr *, gfc_expr *);
     125  bool gfc_check_minloc_maxloc (gfc_actual_arglist *);
     126  bool gfc_check_minval_maxval (gfc_actual_arglist *);
     127  bool gfc_check_nearest (gfc_expr *, gfc_expr *);
     128  bool gfc_check_new_line (gfc_expr *);
     129  bool gfc_check_norm2 (gfc_expr *, gfc_expr *);
     130  bool gfc_check_null (gfc_expr *);
     131  bool gfc_check_num_images (gfc_expr *, gfc_expr *);
     132  bool gfc_check_pack (gfc_expr *, gfc_expr *, gfc_expr *);
     133  bool gfc_check_parity (gfc_expr *, gfc_expr *);
     134  bool gfc_check_precision (gfc_expr *);
     135  bool gfc_check_present (gfc_expr *);
     136  bool gfc_check_product_sum (gfc_actual_arglist *);
     137  bool gfc_check_radix (gfc_expr *);
     138  bool gfc_check_rand (gfc_expr *);
     139  bool gfc_check_range (gfc_expr *);
     140  bool gfc_check_rank (gfc_expr *);
     141  bool gfc_check_real (gfc_expr *, gfc_expr *);
     142  bool gfc_check_rename (gfc_expr *, gfc_expr *);
     143  bool gfc_check_repeat (gfc_expr *, gfc_expr *);
     144  bool gfc_check_reshape (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
     145  bool gfc_check_same_type_as (gfc_expr *, gfc_expr *);
     146  bool gfc_check_scale (gfc_expr *, gfc_expr *);
     147  bool gfc_check_scan (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
     148  bool gfc_check_second_sub (gfc_expr *);
     149  bool gfc_check_secnds (gfc_expr *);
     150  bool gfc_check_selected_char_kind (gfc_expr *);
     151  bool gfc_check_selected_int_kind (gfc_expr *);
     152  bool gfc_check_selected_real_kind (gfc_expr *, gfc_expr *, gfc_expr *);
     153  bool gfc_check_set_exponent (gfc_expr *, gfc_expr *);
     154  bool gfc_check_shape (gfc_expr *, gfc_expr *);
     155  bool gfc_check_shift (gfc_expr *, gfc_expr *);
     156  bool gfc_check_size (gfc_expr *, gfc_expr *, gfc_expr *);
     157  bool gfc_check_sign (gfc_expr *, gfc_expr *);
     158  bool gfc_check_signal (gfc_expr *, gfc_expr *);
     159  bool gfc_check_sizeof (gfc_expr *);
     160  bool gfc_check_c_associated (gfc_expr *, gfc_expr *);
     161  bool gfc_check_c_f_pointer (gfc_expr *, gfc_expr *, gfc_expr *);
     162  bool gfc_check_c_f_procpointer (gfc_expr *, gfc_expr *);
     163  bool gfc_check_c_funloc (gfc_expr *);
     164  bool gfc_check_c_loc (gfc_expr *);
     165  bool gfc_check_c_sizeof (gfc_expr *);
     166  bool gfc_check_sngl (gfc_expr *);
     167  bool gfc_check_spread (gfc_expr *, gfc_expr *, gfc_expr *);
     168  bool gfc_check_srand (gfc_expr *);
     169  bool gfc_check_stat (gfc_expr *, gfc_expr *);
     170  bool gfc_check_storage_size (gfc_expr *, gfc_expr *);
     171  bool gfc_check_symlnk (gfc_expr *, gfc_expr *);
     172  bool gfc_check_team_number (gfc_expr *);
     173  bool gfc_check_transf_bit_intrins (gfc_actual_arglist *);
     174  bool gfc_check_transfer (gfc_expr *, gfc_expr *, gfc_expr *);
     175  bool gfc_check_transpose (gfc_expr *);
     176  bool gfc_check_trim (gfc_expr *);
     177  bool gfc_check_ttynam (gfc_expr *);
     178  bool gfc_check_ubound (gfc_expr *, gfc_expr *, gfc_expr *);
     179  bool gfc_check_ucobound (gfc_expr *, gfc_expr *, gfc_expr *);
     180  bool gfc_check_umask (gfc_expr *);
     181  bool gfc_check_unlink (gfc_expr *);
     182  bool gfc_check_unpack (gfc_expr *, gfc_expr *, gfc_expr *);
     183  bool gfc_check_verify (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
     184  bool gfc_check_x (gfc_expr *);
     185  
     186  
     187  /* Intrinsic subroutines.  */
     188  bool gfc_check_alarm_sub (gfc_expr *, gfc_expr *, gfc_expr *);
     189  bool gfc_check_chdir_sub (gfc_expr *, gfc_expr *);
     190  bool gfc_check_chmod_sub (gfc_expr *, gfc_expr *, gfc_expr *);
     191  bool gfc_check_cpu_time (gfc_expr *);
     192  bool gfc_check_ctime_sub (gfc_expr *, gfc_expr *);
     193  bool gfc_check_system_clock (gfc_expr *, gfc_expr *, gfc_expr *);
     194  bool gfc_check_date_and_time (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
     195  bool gfc_check_exit (gfc_expr *);
     196  bool gfc_check_fdate_sub (gfc_expr *);
     197  bool gfc_check_fe_runtime_error (gfc_actual_arglist *);
     198  bool gfc_check_flush (gfc_expr *);
     199  bool gfc_check_free (gfc_expr *);
     200  bool gfc_check_fstat_sub (gfc_expr *, gfc_expr *, gfc_expr *);
     201  bool gfc_check_gerror (gfc_expr *);
     202  bool gfc_check_getarg (gfc_expr *, gfc_expr *);
     203  bool gfc_check_getlog (gfc_expr *);
     204  bool gfc_check_move_alloc (gfc_expr *, gfc_expr *);
     205  bool gfc_check_mvbits (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *,
     206  		      gfc_expr *);
     207  bool gfc_check_random_init (gfc_expr *, gfc_expr *);
     208  bool gfc_check_random_number (gfc_expr *);
     209  bool gfc_check_random_seed (gfc_expr *, gfc_expr *, gfc_expr *);
     210  bool gfc_check_dtime_etime_sub (gfc_expr *, gfc_expr *);
     211  bool gfc_check_fgetputc_sub (gfc_expr *, gfc_expr *, gfc_expr *);
     212  bool gfc_check_fgetput_sub (gfc_expr *, gfc_expr *);
     213  bool gfc_check_fseek_sub (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
     214  bool gfc_check_ftell_sub (gfc_expr *, gfc_expr *);
     215  bool gfc_check_getcwd_sub (gfc_expr *, gfc_expr *);
     216  bool gfc_check_hostnm_sub (gfc_expr *, gfc_expr *);
     217  bool gfc_check_image_index (gfc_expr *, gfc_expr *);
     218  bool gfc_check_itime_idate (gfc_expr *);
     219  bool gfc_check_kill_sub (gfc_expr *, gfc_expr *, gfc_expr *);
     220  bool gfc_check_ltime_gmtime (gfc_expr *, gfc_expr *);
     221  bool gfc_check_perror (gfc_expr *);
     222  bool gfc_check_rename_sub (gfc_expr *, gfc_expr *, gfc_expr *);
     223  bool gfc_check_link_sub (gfc_expr *, gfc_expr *, gfc_expr *);
     224  bool gfc_check_symlnk_sub (gfc_expr *, gfc_expr *, gfc_expr *);
     225  bool gfc_check_signal_sub (gfc_expr *, gfc_expr *, gfc_expr *);
     226  bool gfc_check_sleep_sub (gfc_expr *);
     227  bool gfc_check_stat_sub (gfc_expr *, gfc_expr *, gfc_expr *);
     228  bool gfc_check_system_sub (gfc_expr *, gfc_expr *);
     229  bool gfc_check_this_image (gfc_expr *, gfc_expr *, gfc_expr *);
     230  bool gfc_check_ttynam_sub (gfc_expr *, gfc_expr *);
     231  bool gfc_check_umask_sub (gfc_expr *, gfc_expr *);
     232  bool gfc_check_unlink_sub (gfc_expr *, gfc_expr *);
     233  
     234  
     235  /* Simplification functions.  */
     236  gfc_expr *gfc_simplify_abs (gfc_expr *);
     237  gfc_expr *gfc_simplify_achar (gfc_expr *, gfc_expr *);
     238  gfc_expr *gfc_simplify_acos (gfc_expr *);
     239  gfc_expr *gfc_simplify_acosd (gfc_expr *);
     240  gfc_expr *gfc_simplify_acosh (gfc_expr *);
     241  gfc_expr *gfc_simplify_adjustl (gfc_expr *);
     242  gfc_expr *gfc_simplify_adjustr (gfc_expr *);
     243  gfc_expr *gfc_simplify_aimag (gfc_expr *);
     244  gfc_expr *gfc_simplify_aint (gfc_expr *, gfc_expr *);
     245  gfc_expr *gfc_simplify_all (gfc_expr *, gfc_expr *);
     246  gfc_expr *gfc_simplify_asind (gfc_expr *);
     247  gfc_expr *gfc_simplify_dint (gfc_expr *);
     248  gfc_expr *gfc_simplify_anint (gfc_expr *, gfc_expr *);
     249  gfc_expr *gfc_simplify_dnint (gfc_expr *);
     250  gfc_expr *gfc_simplify_and (gfc_expr *, gfc_expr *);
     251  gfc_expr *gfc_simplify_any (gfc_expr *, gfc_expr *);
     252  gfc_expr *gfc_simplify_asin (gfc_expr *);
     253  gfc_expr *gfc_simplify_asinh (gfc_expr *);
     254  gfc_expr *gfc_simplify_atan (gfc_expr *);
     255  gfc_expr *gfc_simplify_atand (gfc_expr *);
     256  gfc_expr *gfc_simplify_atanh (gfc_expr *);
     257  gfc_expr *gfc_simplify_atan2 (gfc_expr *, gfc_expr *);
     258  gfc_expr *gfc_simplify_atan2d (gfc_expr *, gfc_expr *);
     259  gfc_expr *gfc_simplify_bessel_j0 (gfc_expr *);
     260  gfc_expr *gfc_simplify_bessel_j1 (gfc_expr *);
     261  gfc_expr *gfc_simplify_bessel_jn (gfc_expr *, gfc_expr *);
     262  gfc_expr *gfc_simplify_bessel_jn2 (gfc_expr *, gfc_expr *, gfc_expr *);
     263  gfc_expr *gfc_simplify_bessel_y0 (gfc_expr *);
     264  gfc_expr *gfc_simplify_bessel_y1 (gfc_expr *);
     265  gfc_expr *gfc_simplify_bessel_yn (gfc_expr *, gfc_expr *);
     266  gfc_expr *gfc_simplify_bessel_yn2 (gfc_expr *, gfc_expr *, gfc_expr *);
     267  gfc_expr *gfc_simplify_bge (gfc_expr *, gfc_expr *);
     268  gfc_expr *gfc_simplify_bgt (gfc_expr *, gfc_expr *);
     269  gfc_expr *gfc_simplify_bit_size (gfc_expr *);
     270  gfc_expr *gfc_simplify_ble (gfc_expr *, gfc_expr *);
     271  gfc_expr *gfc_simplify_blt (gfc_expr *, gfc_expr *);
     272  gfc_expr *gfc_simplify_btest (gfc_expr *, gfc_expr *);
     273  gfc_expr *gfc_simplify_ceiling (gfc_expr *, gfc_expr *);
     274  gfc_expr *gfc_simplify_char (gfc_expr *, gfc_expr *);
     275  gfc_expr *gfc_simplify_cmplx (gfc_expr *, gfc_expr *, gfc_expr *);
     276  gfc_expr *gfc_simplify_compiler_options (void);
     277  gfc_expr *gfc_simplify_compiler_version (void);
     278  gfc_expr *gfc_simplify_complex (gfc_expr *, gfc_expr *);
     279  gfc_expr *gfc_simplify_conjg (gfc_expr *);
     280  gfc_expr *gfc_simplify_cos (gfc_expr *);
     281  gfc_expr *gfc_simplify_cosd (gfc_expr *);
     282  gfc_expr *gfc_simplify_cosh (gfc_expr *);
     283  gfc_expr *gfc_simplify_cotan (gfc_expr *);
     284  gfc_expr *gfc_simplify_cotand (gfc_expr *);
     285  gfc_expr *gfc_simplify_count (gfc_expr *, gfc_expr *, gfc_expr *);
     286  gfc_expr *gfc_simplify_cshift (gfc_expr *, gfc_expr *, gfc_expr *);
     287  gfc_expr *gfc_simplify_dcmplx (gfc_expr *, gfc_expr *);
     288  gfc_expr *gfc_simplify_dble (gfc_expr *);
     289  gfc_expr *gfc_simplify_digits (gfc_expr *);
     290  gfc_expr *gfc_simplify_dim (gfc_expr *, gfc_expr *);
     291  gfc_expr *gfc_simplify_dprod (gfc_expr *, gfc_expr *);
     292  gfc_expr *gfc_simplify_dot_product (gfc_expr *, gfc_expr *);
     293  gfc_expr *gfc_simplify_dreal (gfc_expr *);
     294  gfc_expr *gfc_simplify_dshiftl (gfc_expr *, gfc_expr *, gfc_expr *);
     295  gfc_expr *gfc_simplify_dshiftr (gfc_expr *, gfc_expr *, gfc_expr *);
     296  gfc_expr *gfc_simplify_eoshift (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
     297  gfc_expr *gfc_simplify_epsilon (gfc_expr *);
     298  gfc_expr *gfc_simplify_erf (gfc_expr *);
     299  gfc_expr *gfc_simplify_erfc (gfc_expr *);
     300  gfc_expr *gfc_simplify_erfc_scaled (gfc_expr *);
     301  gfc_expr *gfc_simplify_exp (gfc_expr *);
     302  gfc_expr *gfc_simplify_exponent (gfc_expr *);
     303  gfc_expr *gfc_simplify_extends_type_of (gfc_expr *, gfc_expr *);
     304  gfc_expr *gfc_simplify_failed_or_stopped_images (gfc_expr *, gfc_expr *);
     305  gfc_expr *gfc_simplify_findloc (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *,
     306  				gfc_expr *, gfc_expr *);
     307  gfc_expr *gfc_simplify_float (gfc_expr *);
     308  gfc_expr *gfc_simplify_floor (gfc_expr *, gfc_expr *);
     309  gfc_expr *gfc_simplify_fraction (gfc_expr *);
     310  gfc_expr *gfc_simplify_gamma (gfc_expr *);
     311  gfc_expr *gfc_simplify_get_team (gfc_expr *);
     312  gfc_expr *gfc_simplify_huge (gfc_expr *);
     313  gfc_expr *gfc_simplify_hypot (gfc_expr *, gfc_expr *);
     314  gfc_expr *gfc_simplify_iachar (gfc_expr *, gfc_expr *);
     315  gfc_expr *gfc_simplify_iall (gfc_expr *, gfc_expr *, gfc_expr *);
     316  gfc_expr *gfc_simplify_iand (gfc_expr *, gfc_expr *);
     317  gfc_expr *gfc_simplify_iany (gfc_expr *, gfc_expr *, gfc_expr *);
     318  gfc_expr *gfc_simplify_ibclr (gfc_expr *, gfc_expr *);
     319  gfc_expr *gfc_simplify_ibits (gfc_expr *, gfc_expr *, gfc_expr *);
     320  gfc_expr *gfc_simplify_ibset (gfc_expr *, gfc_expr *);
     321  gfc_expr *gfc_simplify_ichar (gfc_expr *, gfc_expr *);
     322  gfc_expr *gfc_simplify_ieor (gfc_expr *, gfc_expr *);
     323  gfc_expr *gfc_simplify_image_index (gfc_expr *, gfc_expr *);
     324  gfc_expr *gfc_simplify_image_status (gfc_expr *, gfc_expr *);
     325  gfc_expr *gfc_simplify_index (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
     326  gfc_expr *gfc_simplify_int (gfc_expr *, gfc_expr *);
     327  gfc_expr *gfc_simplify_int2 (gfc_expr *);
     328  gfc_expr *gfc_simplify_int8 (gfc_expr *);
     329  gfc_expr *gfc_simplify_long (gfc_expr *);
     330  gfc_expr *gfc_simplify_ifix (gfc_expr *);
     331  gfc_expr *gfc_simplify_idint (gfc_expr *);
     332  gfc_expr *gfc_simplify_ior (gfc_expr *, gfc_expr *);
     333  gfc_expr *gfc_simplify_iparity (gfc_expr *, gfc_expr *, gfc_expr *);
     334  gfc_expr *gfc_simplify_is_contiguous (gfc_expr *);
     335  gfc_expr *gfc_simplify_is_iostat_end (gfc_expr *);
     336  gfc_expr *gfc_simplify_is_iostat_eor (gfc_expr *);
     337  gfc_expr *gfc_simplify_isnan (gfc_expr *);
     338  gfc_expr *gfc_simplify_ishft (gfc_expr *, gfc_expr *);
     339  gfc_expr *gfc_simplify_ishftc (gfc_expr *, gfc_expr *, gfc_expr *);
     340  gfc_expr *gfc_simplify_kind (gfc_expr *);
     341  gfc_expr *gfc_simplify_lbound (gfc_expr *, gfc_expr *, gfc_expr *);
     342  gfc_expr *gfc_simplify_lcobound (gfc_expr *, gfc_expr *, gfc_expr *);
     343  gfc_expr *gfc_simplify_leadz (gfc_expr *);
     344  gfc_expr *gfc_simplify_len (gfc_expr *, gfc_expr *);
     345  gfc_expr *gfc_simplify_len_trim (gfc_expr *, gfc_expr *);
     346  gfc_expr *gfc_simplify_lgamma (gfc_expr *);
     347  gfc_expr *gfc_simplify_lge (gfc_expr *, gfc_expr *);
     348  gfc_expr *gfc_simplify_lgt (gfc_expr *, gfc_expr *);
     349  gfc_expr *gfc_simplify_lle (gfc_expr *, gfc_expr *);
     350  gfc_expr *gfc_simplify_llt (gfc_expr *, gfc_expr *);
     351  gfc_expr *gfc_simplify_log (gfc_expr *);
     352  gfc_expr *gfc_simplify_log10 (gfc_expr *);
     353  gfc_expr *gfc_simplify_logical (gfc_expr *, gfc_expr *);
     354  gfc_expr *gfc_simplify_lshift (gfc_expr *, gfc_expr *);
     355  gfc_expr *gfc_simplify_matmul (gfc_expr *, gfc_expr *);
     356  gfc_expr *gfc_simplify_maskl (gfc_expr *, gfc_expr *);
     357  gfc_expr *gfc_simplify_maskr (gfc_expr *, gfc_expr *);
     358  gfc_expr *gfc_simplify_merge (gfc_expr *, gfc_expr *, gfc_expr *);
     359  gfc_expr *gfc_simplify_merge_bits (gfc_expr *, gfc_expr *, gfc_expr *);
     360  gfc_expr *gfc_simplify_min (gfc_expr *);
     361  gfc_expr *gfc_simplify_minloc (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *,
     362  			       gfc_expr *);
     363  gfc_expr *gfc_simplify_minval (gfc_expr *, gfc_expr*, gfc_expr*);
     364  gfc_expr *gfc_simplify_max (gfc_expr *);
     365  gfc_expr *gfc_simplify_maxloc (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *,
     366  			       gfc_expr *);
     367  gfc_expr *gfc_simplify_maxval (gfc_expr *, gfc_expr*, gfc_expr*);
     368  gfc_expr *gfc_simplify_maxexponent (gfc_expr *);
     369  gfc_expr *gfc_simplify_minexponent (gfc_expr *);
     370  gfc_expr *gfc_simplify_mod (gfc_expr *, gfc_expr *);
     371  gfc_expr *gfc_simplify_modulo (gfc_expr *, gfc_expr *);
     372  gfc_expr *gfc_simplify_nearest (gfc_expr *, gfc_expr *);
     373  gfc_expr *gfc_simplify_new_line (gfc_expr *);
     374  gfc_expr *gfc_simplify_nint (gfc_expr *, gfc_expr *);
     375  gfc_expr *gfc_simplify_norm2 (gfc_expr *, gfc_expr *);
     376  gfc_expr *gfc_simplify_null (gfc_expr *);
     377  gfc_expr *gfc_simplify_num_images (gfc_expr *, gfc_expr *);
     378  gfc_expr *gfc_simplify_idnint (gfc_expr *);
     379  gfc_expr *gfc_simplify_not (gfc_expr *);
     380  gfc_expr *gfc_simplify_or (gfc_expr *, gfc_expr *);
     381  gfc_expr *gfc_simplify_pack (gfc_expr *, gfc_expr *, gfc_expr *);
     382  gfc_expr *gfc_simplify_parity (gfc_expr *, gfc_expr *);
     383  gfc_expr *gfc_simplify_popcnt (gfc_expr *);
     384  gfc_expr *gfc_simplify_poppar (gfc_expr *);
     385  gfc_expr *gfc_simplify_precision (gfc_expr *);
     386  gfc_expr *gfc_simplify_product (gfc_expr *, gfc_expr *, gfc_expr *);
     387  gfc_expr *gfc_simplify_radix (gfc_expr *);
     388  gfc_expr *gfc_simplify_range (gfc_expr *);
     389  gfc_expr *gfc_simplify_rank (gfc_expr *);
     390  gfc_expr *gfc_simplify_real (gfc_expr *, gfc_expr *);
     391  gfc_expr *gfc_simplify_realpart (gfc_expr *);
     392  gfc_expr *gfc_simplify_repeat (gfc_expr *, gfc_expr *);
     393  gfc_expr *gfc_simplify_reshape (gfc_expr *, gfc_expr *, gfc_expr *,
     394  				gfc_expr *);
     395  gfc_expr *gfc_simplify_rrspacing (gfc_expr *);
     396  gfc_expr *gfc_simplify_rshift (gfc_expr *, gfc_expr *);
     397  gfc_expr *gfc_simplify_same_type_as (gfc_expr *, gfc_expr *);
     398  gfc_expr *gfc_simplify_scale (gfc_expr *, gfc_expr *);
     399  gfc_expr *gfc_simplify_scan (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
     400  gfc_expr *gfc_simplify_selected_char_kind (gfc_expr *);
     401  gfc_expr *gfc_simplify_selected_int_kind (gfc_expr *);
     402  gfc_expr *gfc_simplify_selected_real_kind (gfc_expr *, gfc_expr *, gfc_expr *);
     403  gfc_expr *gfc_simplify_set_exponent (gfc_expr *, gfc_expr *);
     404  gfc_expr *gfc_simplify_sign (gfc_expr *, gfc_expr *);
     405  gfc_expr *gfc_simplify_shape (gfc_expr *, gfc_expr *);
     406  gfc_expr *gfc_simplify_shifta (gfc_expr *, gfc_expr *);
     407  gfc_expr *gfc_simplify_shiftl (gfc_expr *, gfc_expr *);
     408  gfc_expr *gfc_simplify_shiftr (gfc_expr *, gfc_expr *);
     409  gfc_expr *gfc_simplify_sin (gfc_expr *);
     410  gfc_expr *gfc_simplify_sind (gfc_expr *);
     411  gfc_expr *gfc_simplify_sinh (gfc_expr *);
     412  gfc_expr *gfc_simplify_size (gfc_expr *, gfc_expr *, gfc_expr *);
     413  gfc_expr *gfc_simplify_sizeof (gfc_expr *);
     414  gfc_expr *gfc_simplify_storage_size (gfc_expr *, gfc_expr *);
     415  gfc_expr *gfc_simplify_sngl (gfc_expr *);
     416  gfc_expr *gfc_simplify_spacing (gfc_expr *);
     417  gfc_expr *gfc_simplify_spread (gfc_expr *, gfc_expr *, gfc_expr *);
     418  gfc_expr *gfc_simplify_sqrt (gfc_expr *);
     419  gfc_expr *gfc_simplify_sum (gfc_expr *, gfc_expr *, gfc_expr *);
     420  gfc_expr *gfc_simplify_tan (gfc_expr *);
     421  gfc_expr *gfc_simplify_tand (gfc_expr *);
     422  gfc_expr *gfc_simplify_tanh (gfc_expr *);
     423  gfc_expr *gfc_simplify_this_image (gfc_expr *, gfc_expr *, gfc_expr *);
     424  gfc_expr *gfc_simplify_tiny (gfc_expr *);
     425  gfc_expr *gfc_simplify_trailz (gfc_expr *);
     426  gfc_expr *gfc_simplify_transfer (gfc_expr *, gfc_expr *, gfc_expr *);
     427  gfc_expr *gfc_simplify_transpose (gfc_expr *);
     428  gfc_expr *gfc_simplify_trim (gfc_expr *);
     429  gfc_expr *gfc_simplify_ubound (gfc_expr *, gfc_expr *, gfc_expr *);
     430  gfc_expr *gfc_simplify_ucobound (gfc_expr *, gfc_expr *, gfc_expr *);
     431  gfc_expr *gfc_simplify_unpack (gfc_expr *, gfc_expr *, gfc_expr *);
     432  gfc_expr *gfc_simplify_verify (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
     433  gfc_expr *gfc_simplify_xor (gfc_expr *, gfc_expr *);
     434  
     435  /* Constant conversion simplification.  */
     436  gfc_expr *gfc_convert_constant (gfc_expr *, bt, int);
     437  gfc_expr *gfc_convert_char_constant (gfc_expr *, bt, int);
     438  
     439  
     440  /* Resolution functions.  */
     441  void gfc_resolve_abs (gfc_expr *, gfc_expr *);
     442  void gfc_resolve_access (gfc_expr *, gfc_expr *, gfc_expr *);
     443  void gfc_resolve_adjustl (gfc_expr *, gfc_expr *);
     444  void gfc_resolve_adjustr (gfc_expr *, gfc_expr *);
     445  void gfc_resolve_achar (gfc_expr *, gfc_expr *, gfc_expr *);
     446  void gfc_resolve_acos (gfc_expr *, gfc_expr *);
     447  void gfc_resolve_acosh (gfc_expr *, gfc_expr *);
     448  void gfc_resolve_aimag (gfc_expr *, gfc_expr *);
     449  void gfc_resolve_aint (gfc_expr *, gfc_expr *, gfc_expr *);
     450  void gfc_resolve_dint (gfc_expr *, gfc_expr *);
     451  void gfc_resolve_all (gfc_expr *, gfc_expr *, gfc_expr *);
     452  void gfc_resolve_anint (gfc_expr *, gfc_expr *, gfc_expr *);
     453  void gfc_resolve_dnint (gfc_expr *, gfc_expr *);
     454  void gfc_resolve_and (gfc_expr *, gfc_expr *, gfc_expr *);
     455  void gfc_resolve_any (gfc_expr *, gfc_expr *, gfc_expr *);
     456  void gfc_resolve_asin (gfc_expr *, gfc_expr *);
     457  void gfc_resolve_asinh (gfc_expr *, gfc_expr *);
     458  void gfc_resolve_atan (gfc_expr *, gfc_expr *);
     459  void gfc_resolve_atanh (gfc_expr *, gfc_expr *);
     460  void gfc_resolve_atan2 (gfc_expr *, gfc_expr *, gfc_expr *);
     461  void gfc_resolve_atomic_def (gfc_code *);
     462  void gfc_resolve_atomic_ref (gfc_code *);
     463  void gfc_resolve_besn (gfc_expr *, gfc_expr *, gfc_expr *);
     464  void gfc_resolve_bessel_n2 (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *a);
     465  void gfc_resolve_btest (gfc_expr *, gfc_expr *, gfc_expr *);
     466  void gfc_resolve_c_loc (gfc_expr *, gfc_expr *);
     467  void gfc_resolve_c_funloc (gfc_expr *, gfc_expr *);
     468  void gfc_resolve_ceiling (gfc_expr *, gfc_expr *, gfc_expr *);
     469  void gfc_resolve_char (gfc_expr *, gfc_expr *, gfc_expr *);
     470  void gfc_resolve_chdir (gfc_expr *, gfc_expr *);
     471  void gfc_resolve_chmod (gfc_expr *, gfc_expr *, gfc_expr *);
     472  void gfc_resolve_cmplx (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
     473  void gfc_resolve_dcmplx (gfc_expr *, gfc_expr *, gfc_expr *);
     474  void gfc_resolve_complex (gfc_expr *, gfc_expr *, gfc_expr *);
     475  void gfc_resolve_conjg (gfc_expr *, gfc_expr *);
     476  void gfc_resolve_cos (gfc_expr *, gfc_expr *);
     477  void gfc_resolve_cosh (gfc_expr *, gfc_expr *);
     478  void gfc_resolve_count (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
     479  void gfc_resolve_cshift (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
     480  void gfc_resolve_ctime (gfc_expr *, gfc_expr *);
     481  void gfc_resolve_dble (gfc_expr *, gfc_expr *);
     482  void gfc_resolve_dim (gfc_expr *, gfc_expr *, gfc_expr *);
     483  void gfc_resolve_dot_product (gfc_expr *, gfc_expr *, gfc_expr *);
     484  void gfc_resolve_dprod (gfc_expr *, gfc_expr *, gfc_expr *);
     485  void gfc_resolve_dshift (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
     486  void gfc_resolve_dtime_sub (gfc_code *);
     487  void gfc_resolve_eoshift (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *,
     488  			  gfc_expr *);
     489  void gfc_resolve_etime_sub (gfc_code *);
     490  void gfc_resolve_event_query (gfc_code *);
     491  void gfc_resolve_exp (gfc_expr *, gfc_expr *);
     492  void gfc_resolve_exponent (gfc_expr *, gfc_expr *);
     493  void gfc_resolve_extends_type_of (gfc_expr *, gfc_expr *, gfc_expr *);
     494  void gfc_resolve_failed_images (gfc_expr *, gfc_expr *, gfc_expr *);
     495  void gfc_resolve_fdate (gfc_expr *);
     496  void gfc_resolve_findloc (gfc_expr *,gfc_expr *, gfc_expr *, gfc_expr *,
     497  			  gfc_expr *, gfc_expr *, gfc_expr *);
     498  void gfc_resolve_floor (gfc_expr *, gfc_expr *, gfc_expr *);
     499  void gfc_resolve_fnum (gfc_expr *, gfc_expr *);
     500  void gfc_resolve_fraction (gfc_expr *, gfc_expr *);
     501  void gfc_resolve_fstat (gfc_expr *, gfc_expr *, gfc_expr *);
     502  void gfc_resolve_ftell (gfc_expr *, gfc_expr *);
     503  void gfc_resolve_fgetc (gfc_expr *, gfc_expr *, gfc_expr *);
     504  void gfc_resolve_fget (gfc_expr *, gfc_expr *);
     505  void gfc_resolve_fputc (gfc_expr *, gfc_expr *, gfc_expr *);
     506  void gfc_resolve_fput (gfc_expr *, gfc_expr *);
     507  void gfc_resolve_g77_math1 (gfc_expr *, gfc_expr *);
     508  void gfc_resolve_gamma (gfc_expr *, gfc_expr *);
     509  void gfc_resolve_getcwd (gfc_expr *, gfc_expr *);
     510  void gfc_resolve_getgid (gfc_expr *);
     511  void gfc_resolve_getpid (gfc_expr *);
     512  void gfc_resolve_get_team (gfc_expr *, gfc_expr *);
     513  void gfc_resolve_getuid (gfc_expr *);
     514  void gfc_resolve_hostnm (gfc_expr *, gfc_expr *);
     515  void gfc_resolve_hypot (gfc_expr *, gfc_expr *, gfc_expr *);
     516  void gfc_resolve_iand (gfc_expr *, gfc_expr *, gfc_expr *);
     517  void gfc_resolve_ibclr (gfc_expr *, gfc_expr *, gfc_expr *);
     518  void gfc_resolve_ibits (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
     519  void gfc_resolve_ibset (gfc_expr *, gfc_expr *, gfc_expr *);
     520  void gfc_resolve_image_index (gfc_expr *, gfc_expr *, gfc_expr *);
     521  void gfc_resolve_image_status (gfc_expr *, gfc_expr *, gfc_expr *);
     522  void gfc_resolve_index_func (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *,
     523  			     gfc_expr *);
     524  void gfc_resolve_ierrno (gfc_expr *);
     525  void gfc_resolve_ieor (gfc_expr *, gfc_expr *, gfc_expr *);
     526  void gfc_resolve_ichar (gfc_expr *, gfc_expr *, gfc_expr *);
     527  void gfc_resolve_iachar (gfc_expr *, gfc_expr *, gfc_expr *);
     528  void gfc_resolve_iall (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
     529  void gfc_resolve_iany (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
     530  void gfc_resolve_idnint (gfc_expr *, gfc_expr *);
     531  void gfc_resolve_int (gfc_expr *, gfc_expr *, gfc_expr *);
     532  void gfc_resolve_int2 (gfc_expr *, gfc_expr *);
     533  void gfc_resolve_int8 (gfc_expr *, gfc_expr *);
     534  void gfc_resolve_long (gfc_expr *, gfc_expr *);
     535  void gfc_resolve_ior (gfc_expr *, gfc_expr *, gfc_expr *);
     536  void gfc_resolve_iparity (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
     537  void gfc_resolve_isatty (gfc_expr *, gfc_expr *);
     538  void gfc_resolve_is_contiguous (gfc_expr *, gfc_expr *);
     539  void gfc_resolve_rank (gfc_expr *, gfc_expr *);
     540  void gfc_resolve_rshift (gfc_expr *, gfc_expr *, gfc_expr *);
     541  void gfc_resolve_lshift (gfc_expr *, gfc_expr *, gfc_expr *);
     542  void gfc_resolve_ishft (gfc_expr *, gfc_expr *, gfc_expr *);
     543  void gfc_resolve_ishftc (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
     544  void gfc_resolve_lbound (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
     545  void gfc_resolve_lcobound (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
     546  void gfc_resolve_len (gfc_expr *, gfc_expr *, gfc_expr *);
     547  void gfc_resolve_len_trim (gfc_expr *, gfc_expr *, gfc_expr *);
     548  void gfc_resolve_lgamma (gfc_expr *, gfc_expr *);
     549  void gfc_resolve_link (gfc_expr *, gfc_expr *, gfc_expr *);
     550  void gfc_resolve_loc (gfc_expr *, gfc_expr *);
     551  void gfc_resolve_log (gfc_expr *, gfc_expr *);
     552  void gfc_resolve_log10 (gfc_expr *, gfc_expr *);
     553  void gfc_resolve_logical (gfc_expr *, gfc_expr *, gfc_expr *);
     554  void gfc_resolve_lstat (gfc_expr *, gfc_expr *, gfc_expr *);
     555  void gfc_resolve_matmul (gfc_expr *, gfc_expr *, gfc_expr *);
     556  void gfc_resolve_max (gfc_expr *, gfc_actual_arglist *);
     557  void gfc_resolve_maxloc (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
     558  void gfc_resolve_maxval (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
     559  void gfc_resolve_mclock (gfc_expr *);
     560  void gfc_resolve_mclock8 (gfc_expr *);
     561  void gfc_resolve_mask (gfc_expr *, gfc_expr *, gfc_expr *);
     562  void gfc_resolve_merge (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
     563  void gfc_resolve_merge_bits (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
     564  void gfc_resolve_min (gfc_expr *, gfc_actual_arglist *);
     565  void gfc_resolve_minloc (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
     566  void gfc_resolve_minval (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
     567  void gfc_resolve_mod (gfc_expr *, gfc_expr *, gfc_expr *);
     568  void gfc_resolve_modulo (gfc_expr *, gfc_expr *, gfc_expr *);
     569  void gfc_resolve_nearest (gfc_expr *, gfc_expr *, gfc_expr *);
     570  void gfc_resolve_nint (gfc_expr *, gfc_expr *, gfc_expr *);
     571  void gfc_resolve_norm2 (gfc_expr *, gfc_expr *, gfc_expr *);
     572  void gfc_resolve_not (gfc_expr *, gfc_expr *);
     573  void gfc_resolve_or (gfc_expr *, gfc_expr *, gfc_expr *);
     574  void gfc_resolve_pack (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
     575  void gfc_resolve_parity (gfc_expr *, gfc_expr *, gfc_expr *);
     576  void gfc_resolve_product (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
     577  void gfc_resolve_real (gfc_expr *, gfc_expr *, gfc_expr *);
     578  void gfc_resolve_realpart (gfc_expr *, gfc_expr *);
     579  void gfc_resolve_rename (gfc_expr *, gfc_expr *, gfc_expr *);
     580  void gfc_resolve_repeat (gfc_expr *, gfc_expr *, gfc_expr *);
     581  void gfc_resolve_reshape (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *,
     582  			  gfc_expr *);
     583  void gfc_resolve_rrspacing (gfc_expr *, gfc_expr *);
     584  void gfc_resolve_scale (gfc_expr *, gfc_expr *, gfc_expr *);
     585  void gfc_resolve_scan (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *,
     586  		       gfc_expr *);
     587  void gfc_resolve_second_sub (gfc_code *);
     588  void gfc_resolve_secnds (gfc_expr *, gfc_expr *);
     589  void gfc_resolve_set_exponent (gfc_expr *, gfc_expr *, gfc_expr *);
     590  void gfc_resolve_shape (gfc_expr *, gfc_expr *, gfc_expr *);
     591  void gfc_resolve_shift (gfc_expr *, gfc_expr *, gfc_expr *);
     592  void gfc_resolve_sign (gfc_expr *, gfc_expr *, gfc_expr *);
     593  void gfc_resolve_signal (gfc_expr *, gfc_expr *, gfc_expr *);
     594  void gfc_resolve_sin (gfc_expr *, gfc_expr *);
     595  void gfc_resolve_sinh (gfc_expr *, gfc_expr *);
     596  void gfc_resolve_size (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
     597  void gfc_resolve_spacing (gfc_expr *, gfc_expr *);
     598  void gfc_resolve_spread (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
     599  void gfc_resolve_sqrt (gfc_expr *, gfc_expr *);
     600  void gfc_resolve_stat (gfc_expr *, gfc_expr *, gfc_expr *);
     601  void gfc_resolve_stopped_images (gfc_expr *, gfc_expr *, gfc_expr *);
     602  void gfc_resolve_storage_size (gfc_expr *f, gfc_expr *a, gfc_expr *kind);
     603  void gfc_resolve_stride (gfc_expr *, gfc_expr *, gfc_expr *);
     604  void gfc_resolve_srand (gfc_code *);
     605  void gfc_resolve_sum (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
     606  void gfc_resolve_symlnk (gfc_expr *, gfc_expr *, gfc_expr *);
     607  void gfc_resolve_system (gfc_expr *, gfc_expr *);
     608  void gfc_resolve_tan (gfc_expr *, gfc_expr *);
     609  void gfc_resolve_tanh (gfc_expr *, gfc_expr *);
     610  void gfc_resolve_team_number (gfc_expr *, gfc_expr *);
     611  void gfc_resolve_this_image (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
     612  void gfc_resolve_time (gfc_expr *);
     613  void gfc_resolve_time8 (gfc_expr *);
     614  void gfc_resolve_transfer (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
     615  void gfc_resolve_transpose (gfc_expr *, gfc_expr *);
     616  void gfc_resolve_trigd (gfc_expr *, gfc_expr *);
     617  void gfc_resolve_trigd2 (gfc_expr *, gfc_expr *, gfc_expr *);
     618  void gfc_resolve_trim (gfc_expr *, gfc_expr *);
     619  void gfc_resolve_ttynam (gfc_expr *, gfc_expr *);
     620  void gfc_resolve_ubound (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
     621  void gfc_resolve_ucobound (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
     622  void gfc_resolve_umask (gfc_expr *, gfc_expr *);
     623  void gfc_resolve_unlink (gfc_expr *, gfc_expr *);
     624  void gfc_resolve_unpack (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
     625  void gfc_resolve_verify (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *,
     626  			 gfc_expr *);
     627  void gfc_resolve_xor (gfc_expr *, gfc_expr *, gfc_expr *);
     628  
     629  
     630  /* Intrinsic subroutine resolution.  */
     631  void gfc_resolve_alarm_sub (gfc_code *);
     632  void gfc_resolve_chdir_sub (gfc_code *);
     633  void gfc_resolve_chmod_sub (gfc_code *);
     634  void gfc_resolve_cpu_time (gfc_code *);
     635  void gfc_resolve_ctime_sub (gfc_code *);
     636  void gfc_resolve_execute_command_line (gfc_code *);
     637  void gfc_resolve_exit (gfc_code *);
     638  void gfc_resolve_fdate_sub (gfc_code *);
     639  void gfc_resolve_fe_runtime_error (gfc_code *);
     640  void gfc_resolve_flush (gfc_code *);
     641  void gfc_resolve_fseek_sub (gfc_code *);
     642  void gfc_resolve_fstat_sub (gfc_code *);
     643  void gfc_resolve_ftell_sub (gfc_code *);
     644  void gfc_resolve_fgetc_sub (gfc_code *);
     645  void gfc_resolve_fget_sub (gfc_code *);
     646  void gfc_resolve_fputc_sub (gfc_code *);
     647  void gfc_resolve_fput_sub (gfc_code *);
     648  void gfc_resolve_gerror (gfc_code *);
     649  void gfc_resolve_getarg (gfc_code *);
     650  void gfc_resolve_getcwd_sub (gfc_code *);
     651  void gfc_resolve_getlog (gfc_code *);
     652  void gfc_resolve_get_command (gfc_code *);
     653  void gfc_resolve_get_command_argument (gfc_code *);
     654  void gfc_resolve_get_environment_variable (gfc_code *);
     655  void gfc_resolve_gmtime (gfc_code *);
     656  void gfc_resolve_hostnm_sub (gfc_code *);
     657  void gfc_resolve_idate (gfc_code *);
     658  void gfc_resolve_itime (gfc_code *);
     659  void gfc_resolve_lstat_sub (gfc_code *);
     660  void gfc_resolve_ltime (gfc_code *);
     661  void gfc_resolve_mvbits (gfc_code *);
     662  void gfc_resolve_perror (gfc_code *);
     663  void gfc_resolve_random_init (gfc_code *);
     664  void gfc_resolve_random_number (gfc_code *);
     665  void gfc_resolve_random_seed (gfc_code *);
     666  void gfc_resolve_rename_sub (gfc_code *);
     667  void gfc_resolve_link_sub (gfc_code *);
     668  void gfc_resolve_symlnk_sub (gfc_code *);
     669  void gfc_resolve_signal_sub (gfc_code *);
     670  void gfc_resolve_sleep_sub (gfc_code *);
     671  void gfc_resolve_stat_sub (gfc_code *);
     672  void gfc_resolve_system_clock (gfc_code *);
     673  void gfc_resolve_system_sub (gfc_code *);
     674  void gfc_resolve_ttynam_sub (gfc_code *);
     675  void gfc_resolve_umask_sub (gfc_code *);
     676  void gfc_resolve_unlink_sub (gfc_code *);
     677  
     678  
     679  /* The findloc() subroutine requires the most arguments: six.  */
     680  
     681  #define MAX_INTRINSIC_ARGS 6
     682  
     683  extern const char *gfc_current_intrinsic;
     684  extern gfc_intrinsic_arg *gfc_current_intrinsic_arg[MAX_INTRINSIC_ARGS];
     685  extern locus *gfc_current_intrinsic_where;