1 /* Header for statement translation functions 2 Copyright (C) 2002-2018 Free Software Foundation, Inc. 3 Contributed by Paul Brook 4 5 This file is part of GCC. 6 7 GCC is free software; you can redistribute it and/or modify it under 8 the terms of the GNU General Public License as published by the Free 9 Software Foundation; either version 3, or (at your option) any later 10 version. 11 12 GCC is distributed in the hope that it will be useful, but WITHOUT ANY 13 WARRANTY; without even the implied warranty of MERCHANTABILITY or 14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 15 for more details. 16 17 You should have received a copy of the GNU General Public License 18 along with GCC; see the file COPYING3. If not see 19 <http://www.gnu.org/licenses/>. */ 20 21 /* Statement translators (gfc_trans_*) return a fully translated tree. 22 Calls gfc_trans_*. */ 23 tree gfc_trans_code (gfc_code *); 24 25 /* Wrapper function used to pass a check condition for implied DO loops. */ 26 tree gfc_trans_code_cond (gfc_code *, tree); 27 28 /* All other gfc_trans_* should only need be called by gfc_trans_code */ 29 30 /* trans-expr.c */ 31 tree gfc_trans_assign (gfc_code *); 32 tree gfc_trans_pointer_assign (gfc_code *); 33 tree gfc_trans_init_assign (gfc_code *); 34 tree gfc_trans_class_init_assign (gfc_code *); 35 36 /* trans-stmt.c */ 37 tree gfc_trans_cycle (gfc_code *); 38 tree gfc_trans_critical (gfc_code *); 39 tree gfc_trans_exit (gfc_code *); 40 tree gfc_trans_label_assign (gfc_code *); 41 tree gfc_trans_label_here (gfc_code *); 42 tree gfc_trans_goto (gfc_code *); 43 tree gfc_trans_entry (gfc_code *); 44 tree gfc_trans_pause (gfc_code *); 45 tree gfc_trans_stop (gfc_code *, bool); 46 tree gfc_trans_call (gfc_code *, bool, tree, tree, bool); 47 tree gfc_trans_return (gfc_code *); 48 tree gfc_trans_if (gfc_code *); 49 tree gfc_trans_arithmetic_if (gfc_code *); 50 tree gfc_trans_block_construct (gfc_code *); 51 tree gfc_trans_do (gfc_code *, tree); 52 tree gfc_trans_do_concurrent (gfc_code *); 53 tree gfc_trans_do_while (gfc_code *); 54 tree gfc_trans_select (gfc_code *); 55 tree gfc_trans_select_type (gfc_code *); 56 tree gfc_trans_sync (gfc_code *, gfc_exec_op); 57 tree gfc_trans_lock_unlock (gfc_code *, gfc_exec_op); 58 tree gfc_trans_event_post_wait (gfc_code *, gfc_exec_op); 59 tree gfc_trans_fail_image (gfc_code *); 60 tree gfc_trans_forall (gfc_code *); 61 tree gfc_trans_form_team (gfc_code *); 62 tree gfc_trans_change_team (gfc_code *); 63 tree gfc_trans_end_team (gfc_code *); 64 tree gfc_trans_sync_team (gfc_code *); 65 tree gfc_trans_where (gfc_code *); 66 tree gfc_trans_allocate (gfc_code *); 67 tree gfc_trans_deallocate (gfc_code *); 68 tree gfc_trans_deallocate_array (tree); 69 70 /* trans-openmp.c */ 71 tree gfc_trans_omp_directive (gfc_code *); 72 void gfc_trans_omp_declare_simd (gfc_namespace *); 73 74 /* trans-openacc.c */ 75 tree gfc_trans_oacc_directive (gfc_code *); 76 tree gfc_trans_oacc_declare (gfc_namespace *); 77 78 /* trans-io.c */ 79 tree gfc_trans_open (gfc_code *); 80 tree gfc_trans_close (gfc_code *); 81 tree gfc_trans_read (gfc_code *); 82 tree gfc_trans_write (gfc_code *); 83 tree gfc_trans_iolength (gfc_code *); 84 tree gfc_trans_backspace (gfc_code *); 85 tree gfc_trans_endfile (gfc_code *); 86 tree gfc_trans_inquire (gfc_code *); 87 tree gfc_trans_rewind (gfc_code *); 88 tree gfc_trans_flush (gfc_code *); 89 90 tree gfc_trans_transfer (gfc_code *); 91 tree gfc_trans_dt_end (gfc_code *); 92 tree gfc_trans_wait (gfc_code *); 93