1 /* Declarations and data types for RTL call insn generation. 2 Copyright (C) 2013-2018 Free Software Foundation, Inc. 3 4 This file is part of GCC. 5 6 GCC is free software; you can redistribute it and/or modify it under 7 the terms of the GNU General Public License as published by the Free 8 Software Foundation; either version 3, or (at your option) any later 9 version. 10 11 GCC is distributed in the hope that it will be useful, but WITHOUT ANY 12 WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 for more details. 15 16 You should have received a copy of the GNU General Public License 17 along with GCC; see the file COPYING3. If not see 18 <http://www.gnu.org/licenses/>. */ 19 20 #ifndef GCC_CALLS_H 21 #define GCC_CALLS_H 22 23 extern int flags_from_decl_or_type (const_tree); 24 extern int call_expr_flags (const_tree); 25 extern int setjmp_call_p (const_tree); 26 extern bool gimple_maybe_alloca_call_p (const gimple *); 27 extern bool gimple_alloca_call_p (const gimple *); 28 extern bool alloca_call_p (const_tree); 29 extern bool must_pass_in_stack_var_size (machine_mode, const_tree); 30 extern bool must_pass_in_stack_var_size_or_pad (machine_mode, const_tree); 31 extern rtx prepare_call_address (tree, rtx, rtx, rtx *, int, int); 32 extern bool shift_return_value (machine_mode, bool, rtx); 33 extern rtx expand_call (tree, rtx, int); 34 extern void fixup_tail_calls (void); 35 36 extern bool pass_by_reference (CUMULATIVE_ARGS *, machine_mode, 37 tree, bool); 38 extern bool reference_callee_copied (CUMULATIVE_ARGS *, machine_mode, 39 tree, bool); 40 extern void maybe_warn_alloc_args_overflow (tree, tree, tree[2], int[2]); 41 extern tree get_attr_nonstring_decl (tree, tree * = NULL); 42 extern void maybe_warn_nonstring_arg (tree, tree); 43 extern bool get_size_range (tree, tree[2], bool = false); 44 extern rtx rtx_for_static_chain (const_tree, bool); 45 46 #endif // GCC_CALLS_H 47