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