1*e4b17023SJohn Marino /* Language hooks common to C and ObjC front ends. 2*e4b17023SJohn Marino Copyright (C) 2004, 2005, 2007, 2008, 2009, 2010 3*e4b17023SJohn Marino Free Software Foundation, Inc. 4*e4b17023SJohn Marino Contributed by Ziemowit Laski <zlaski@apple.com> 5*e4b17023SJohn Marino 6*e4b17023SJohn Marino This file is part of GCC. 7*e4b17023SJohn Marino 8*e4b17023SJohn Marino GCC is free software; you can redistribute it and/or modify it under 9*e4b17023SJohn Marino the terms of the GNU General Public License as published by the Free 10*e4b17023SJohn Marino Software Foundation; either version 3, or (at your option) any later 11*e4b17023SJohn Marino version. 12*e4b17023SJohn Marino 13*e4b17023SJohn Marino GCC is distributed in the hope that it will be useful, but WITHOUT ANY 14*e4b17023SJohn Marino WARRANTY; without even the implied warranty of MERCHANTABILITY or 15*e4b17023SJohn Marino FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 16*e4b17023SJohn Marino for more details. 17*e4b17023SJohn Marino 18*e4b17023SJohn Marino You should have received a copy of the GNU General Public License 19*e4b17023SJohn Marino along with GCC; see the file COPYING3. If not see 20*e4b17023SJohn Marino <http://www.gnu.org/licenses/>. */ 21*e4b17023SJohn Marino 22*e4b17023SJohn Marino #ifndef GCC_C_OBJC_COMMON 23*e4b17023SJohn Marino #define GCC_C_OBJC_COMMON 24*e4b17023SJohn Marino 25*e4b17023SJohn Marino /* Lang hooks that are shared between C and ObjC are defined here. Hooks 26*e4b17023SJohn Marino specific to C or ObjC go in c-lang.c and objc/objc-lang.c, respectively. */ 27*e4b17023SJohn Marino 28*e4b17023SJohn Marino #undef LANG_HOOKS_IDENTIFIER_SIZE 29*e4b17023SJohn Marino #define LANG_HOOKS_IDENTIFIER_SIZE C_SIZEOF_STRUCT_LANG_IDENTIFIER 30*e4b17023SJohn Marino #undef LANG_HOOKS_FINISH 31*e4b17023SJohn Marino #define LANG_HOOKS_FINISH c_common_finish 32*e4b17023SJohn Marino #undef LANG_HOOKS_OPTION_LANG_MASK 33*e4b17023SJohn Marino #define LANG_HOOKS_OPTION_LANG_MASK c_common_option_lang_mask 34*e4b17023SJohn Marino #undef LANG_HOOKS_COMPLAIN_WRONG_LANG_P 35*e4b17023SJohn Marino #define LANG_HOOKS_COMPLAIN_WRONG_LANG_P c_common_complain_wrong_lang_p 36*e4b17023SJohn Marino #undef LANG_HOOKS_INIT_OPTIONS_STRUCT 37*e4b17023SJohn Marino #define LANG_HOOKS_INIT_OPTIONS_STRUCT c_common_init_options_struct 38*e4b17023SJohn Marino #undef LANG_HOOKS_INIT_OPTIONS 39*e4b17023SJohn Marino #define LANG_HOOKS_INIT_OPTIONS c_common_init_options 40*e4b17023SJohn Marino #undef LANG_HOOKS_INITIALIZE_DIAGNOSTICS 41*e4b17023SJohn Marino #define LANG_HOOKS_INITIALIZE_DIAGNOSTICS c_initialize_diagnostics 42*e4b17023SJohn Marino #undef LANG_HOOKS_HANDLE_OPTION 43*e4b17023SJohn Marino #define LANG_HOOKS_HANDLE_OPTION c_common_handle_option 44*e4b17023SJohn Marino #undef LANG_HOOKS_POST_OPTIONS 45*e4b17023SJohn Marino #define LANG_HOOKS_POST_OPTIONS c_common_post_options 46*e4b17023SJohn Marino #undef LANG_HOOKS_GET_ALIAS_SET 47*e4b17023SJohn Marino #define LANG_HOOKS_GET_ALIAS_SET c_common_get_alias_set 48*e4b17023SJohn Marino #undef LANG_HOOKS_PARSE_FILE 49*e4b17023SJohn Marino #define LANG_HOOKS_PARSE_FILE c_common_parse_file 50*e4b17023SJohn Marino #undef LANG_HOOKS_FINISH_INCOMPLETE_DECL 51*e4b17023SJohn Marino #define LANG_HOOKS_FINISH_INCOMPLETE_DECL c_finish_incomplete_decl 52*e4b17023SJohn Marino #undef LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL 53*e4b17023SJohn Marino #define LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL c_warn_unused_global_decl 54*e4b17023SJohn Marino #undef LANG_HOOKS_PRINT_IDENTIFIER 55*e4b17023SJohn Marino #define LANG_HOOKS_PRINT_IDENTIFIER c_print_identifier 56*e4b17023SJohn Marino #undef LANG_HOOKS_TYPES_COMPATIBLE_P 57*e4b17023SJohn Marino #define LANG_HOOKS_TYPES_COMPATIBLE_P c_types_compatible_p 58*e4b17023SJohn Marino #undef LANG_HOOKS_MISSING_NORETURN_OK_P 59*e4b17023SJohn Marino #define LANG_HOOKS_MISSING_NORETURN_OK_P c_missing_noreturn_ok_p 60*e4b17023SJohn Marino #undef LANG_HOOKS_BUILTIN_FUNCTION 61*e4b17023SJohn Marino #define LANG_HOOKS_BUILTIN_FUNCTION c_builtin_function 62*e4b17023SJohn Marino #undef LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE 63*e4b17023SJohn Marino #define LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE c_builtin_function_ext_scope 64*e4b17023SJohn Marino 65*e4b17023SJohn Marino /* Attribute hooks. */ 66*e4b17023SJohn Marino #undef LANG_HOOKS_COMMON_ATTRIBUTE_TABLE 67*e4b17023SJohn Marino #define LANG_HOOKS_COMMON_ATTRIBUTE_TABLE c_common_attribute_table 68*e4b17023SJohn Marino #undef LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE 69*e4b17023SJohn Marino #define LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE c_common_format_attribute_table 70*e4b17023SJohn Marino 71*e4b17023SJohn Marino #undef LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN 72*e4b17023SJohn Marino #define LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN c_dump_tree 73*e4b17023SJohn Marino 74*e4b17023SJohn Marino #undef LANG_HOOKS_TYPE_FOR_MODE 75*e4b17023SJohn Marino #define LANG_HOOKS_TYPE_FOR_MODE c_common_type_for_mode 76*e4b17023SJohn Marino #undef LANG_HOOKS_TYPE_FOR_SIZE 77*e4b17023SJohn Marino #define LANG_HOOKS_TYPE_FOR_SIZE c_common_type_for_size 78*e4b17023SJohn Marino #undef LANG_HOOKS_INCOMPLETE_TYPE_ERROR 79*e4b17023SJohn Marino #define LANG_HOOKS_INCOMPLETE_TYPE_ERROR c_incomplete_type_error 80*e4b17023SJohn Marino #undef LANG_HOOKS_TYPE_PROMOTES_TO 81*e4b17023SJohn Marino #define LANG_HOOKS_TYPE_PROMOTES_TO c_type_promotes_to 82*e4b17023SJohn Marino #undef LANG_HOOKS_REGISTER_BUILTIN_TYPE 83*e4b17023SJohn Marino #define LANG_HOOKS_REGISTER_BUILTIN_TYPE c_register_builtin_type 84*e4b17023SJohn Marino #undef LANG_HOOKS_TO_TARGET_CHARSET 85*e4b17023SJohn Marino #define LANG_HOOKS_TO_TARGET_CHARSET c_common_to_target_charset 86*e4b17023SJohn Marino #undef LANG_HOOKS_EXPR_TO_DECL 87*e4b17023SJohn Marino #define LANG_HOOKS_EXPR_TO_DECL c_expr_to_decl 88*e4b17023SJohn Marino 89*e4b17023SJohn Marino /* The C front end's scoping structure is very different from 90*e4b17023SJohn Marino that expected by the language-independent code; it is best 91*e4b17023SJohn Marino to disable getdecls. 92*e4b17023SJohn Marino This means it must also provide its own write_globals. */ 93*e4b17023SJohn Marino 94*e4b17023SJohn Marino #undef LANG_HOOKS_GETDECLS 95*e4b17023SJohn Marino #define LANG_HOOKS_GETDECLS lhd_return_null_tree_v 96*e4b17023SJohn Marino #undef LANG_HOOKS_WRITE_GLOBALS 97*e4b17023SJohn Marino #define LANG_HOOKS_WRITE_GLOBALS c_write_global_declarations 98*e4b17023SJohn Marino 99*e4b17023SJohn Marino /* Hooks for tree gimplification. */ 100*e4b17023SJohn Marino #undef LANG_HOOKS_GIMPLIFY_EXPR 101*e4b17023SJohn Marino #define LANG_HOOKS_GIMPLIFY_EXPR c_gimplify_expr 102*e4b17023SJohn Marino 103*e4b17023SJohn Marino #undef LANG_HOOKS_OMP_PREDETERMINED_SHARING 104*e4b17023SJohn Marino #define LANG_HOOKS_OMP_PREDETERMINED_SHARING c_omp_predetermined_sharing 105*e4b17023SJohn Marino 106*e4b17023SJohn Marino #undef LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P 107*e4b17023SJohn Marino #define LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P c_vla_unspec_p 108*e4b17023SJohn Marino 109*e4b17023SJohn Marino #endif /* GCC_C_OBJC_COMMON */ 110