
1: /* GCC core type declarations. 2: Copyright (C) 2002, 2004, 2007 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: /* Provide forward declarations of core types which are referred to by 21: most of the compiler. This allows header files to use these types 22: (e.g. in function prototypes) without concern for whether the full 23: definitions are visible. Some other declarations that need to be 24: universally visible are here, too. 25: 26: In the context of tconfig.h, most of these have special definitions 27: which prevent them from being used except in further type 28: declarations. This is a kludge; the right thing is to avoid 29: including the "tm.h" header set in the context of tconfig.h, but 30: we're not there yet. */ 31: 32: #ifndef GCC_CORETYPES_H 33: #define GCC_CORETYPES_H 34: 35: #define GTY(x) /* nothing - marker for gengtype */ueno: gcc/4.2.2/gcc/coretypes.h:35-35 on Sat Jan 12 13:43:48 +0900 2008すみません、login のはバグっぽいです。直したつもり…。
guest: gcc/4.2.2/gcc/coretypes.h:35-35 on Sat Jan 12 00:54:10 +0900 200836: 37: #ifndef USED_FOR_TARGET 38: 39: struct bitmap_head_def; 40: typedef struct bitmap_head_def *bitmap; 41: struct rtx_def; 42: typedef struct rtx_def *rtx; 43: struct rtvec_def; 44: typedef struct rtvec_def *rtvec; 45: union tree_node; 46: typedef union tree_node *tree; 47: union section; 48: typedef union section section; 49: 50: /* Provide forward struct declaration so that we don't have to include 51: all of cpplib.h whenever a random prototype includes a pointer. 52: Note that the cpp_reader typedef remains part of cpplib.h. */ 53: 54: struct cpp_reader; 55: 56: /* The thread-local storage model associated with a given VAR_DECL 57: or SYMBOL_REF. This isn't used much, but both trees and RTL refer 58: to it, so it's here. */ 59: enum tls_model { 60: TLS_MODEL_NONE, 61: TLS_MODEL_GLOBAL_DYNAMIC, 62: TLS_MODEL_LOCAL_DYNAMIC, 63: TLS_MODEL_INITIAL_EXEC, 64: TLS_MODEL_LOCAL_EXEC 65: }; 66: 67: #else 68: 69: struct _dont_use_rtx_here_; 70: struct _dont_use_rtvec_here_; 71: union _dont_use_tree_here_; 72: #define rtx struct _dont_use_rtx_here_ * 73: #define rtvec struct _dont_use_rtvec_here * 74: #define tree union _dont_use_tree_here_ * 75: 76: #endif 77: 78: #endif /* coretypes.h */ 79:これがどのように働くかを調べたり、理解するのはちょっと大変そう。gccint の 19 章か 20 章に説明があるらしいけれど。 (一度 guest で書いたのですが login してから消せたので、書直しました。と思ったがまだ login 出来ていなかったか ?