1*e4b17023SJohn Marino /* Definitions for C language specific types. 2*e4b17023SJohn Marino Copyright (C) 2009, 2010 3*e4b17023SJohn Marino Free Software Foundation, Inc. 4*e4b17023SJohn Marino 5*e4b17023SJohn Marino This file is part of GCC. 6*e4b17023SJohn Marino 7*e4b17023SJohn Marino GCC is free software; you can redistribute it and/or modify it under 8*e4b17023SJohn Marino the terms of the GNU General Public License as published by the Free 9*e4b17023SJohn Marino Software Foundation; either version 3, or (at your option) any later 10*e4b17023SJohn Marino version. 11*e4b17023SJohn Marino 12*e4b17023SJohn Marino GCC is distributed in the hope that it will be useful, but WITHOUT ANY 13*e4b17023SJohn Marino WARRANTY; without even the implied warranty of MERCHANTABILITY or 14*e4b17023SJohn Marino FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 15*e4b17023SJohn Marino for more details. 16*e4b17023SJohn Marino 17*e4b17023SJohn Marino You should have received a copy of the GNU General Public License 18*e4b17023SJohn Marino along with GCC; see the file COPYING3. If not see 19*e4b17023SJohn Marino <http://www.gnu.org/licenses/>. */ 20*e4b17023SJohn Marino 21*e4b17023SJohn Marino #ifndef GCC_C_LANG_H 22*e4b17023SJohn Marino #define GCC_C_LANG_H 23*e4b17023SJohn Marino 24*e4b17023SJohn Marino #include "c-family/c-common.h" 25*e4b17023SJohn Marino #include "ggc.h" 26*e4b17023SJohn Marino 27*e4b17023SJohn Marino struct GTY((variable_size)) lang_type { 28*e4b17023SJohn Marino /* In a RECORD_TYPE, a sorted array of the fields of the type. */ 29*e4b17023SJohn Marino struct sorted_fields_type * GTY ((reorder ("resort_sorted_fields"))) s; 30*e4b17023SJohn Marino /* In an ENUMERAL_TYPE, the min and max values. */ 31*e4b17023SJohn Marino tree enum_min; 32*e4b17023SJohn Marino tree enum_max; 33*e4b17023SJohn Marino /* In a RECORD_TYPE, information specific to Objective-C, such 34*e4b17023SJohn Marino as a list of adopted protocols or a pointer to a corresponding 35*e4b17023SJohn Marino @interface. See objc/objc-act.h for details. */ 36*e4b17023SJohn Marino tree objc_info; 37*e4b17023SJohn Marino }; 38*e4b17023SJohn Marino 39*e4b17023SJohn Marino struct GTY(()) lang_decl { 40*e4b17023SJohn Marino char dummy; 41*e4b17023SJohn Marino }; 42*e4b17023SJohn Marino 43*e4b17023SJohn Marino /* Save and restore the variables in this file and elsewhere 44*e4b17023SJohn Marino that keep track of the progress of compilation of the current function. 45*e4b17023SJohn Marino Used for nested functions. */ 46*e4b17023SJohn Marino 47*e4b17023SJohn Marino struct GTY(()) language_function { 48*e4b17023SJohn Marino struct c_language_function base; 49*e4b17023SJohn Marino tree x_break_label; 50*e4b17023SJohn Marino tree x_cont_label; 51*e4b17023SJohn Marino struct c_switch * GTY((skip)) x_switch_stack; 52*e4b17023SJohn Marino struct c_arg_info * GTY((skip)) arg_info; 53*e4b17023SJohn Marino int returns_value; 54*e4b17023SJohn Marino int returns_null; 55*e4b17023SJohn Marino int returns_abnormally; 56*e4b17023SJohn Marino int warn_about_return_type; 57*e4b17023SJohn Marino }; 58*e4b17023SJohn Marino 59*e4b17023SJohn Marino 60*e4b17023SJohn Marino #endif /* ! GCC_C_LANG_H */ 61