15455Sdg/* GCC core type declarations. 21541Srgrimes Copyright (C) 2002, 2004 Free Software Foundation, Inc. 31541Srgrimes 41541SrgrimesThis file is part of GCC. 51541Srgrimes 61541SrgrimesGCC is free software; you can redistribute it and/or modify it under 71541Srgrimesthe terms of the GNU General Public License as published by the Free 81541SrgrimesSoftware Foundation; either version 2, or (at your option) any later 91541Srgrimesversion. 101541Srgrimes 111541SrgrimesGCC is distributed in the hope that it will be useful, but WITHOUT ANY 121541SrgrimesWARRANTY; without even the implied warranty of MERCHANTABILITY or 131541SrgrimesFITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 141541Srgrimesfor more details. 151541Srgrimes 161541SrgrimesYou should have received a copy of the GNU General Public License 171541Srgrimesalong with GCC; see the file COPYING. If not, write to the Free 181541SrgrimesSoftware Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 191541Srgrimes02110-1301, USA. */ 201541Srgrimes 211541Srgrimes/* Provide forward declarations of core types which are referred to by 221541Srgrimes most of the compiler. This allows header files to use these types 231541Srgrimes (e.g. in function prototypes) without concern for whether the full 241541Srgrimes definitions are visible. Some other declarations that need to be 251541Srgrimes universally visible are here, too. 261541Srgrimes 271541Srgrimes In the context of tconfig.h, most of these have special definitions 281541Srgrimes which prevent them from being used except in further type 291541Srgrimes declarations. This is a kludge; the right thing is to avoid 301541Srgrimes including the "tm.h" header set in the context of tconfig.h, but 311541Srgrimes we're not there yet. */ 321541Srgrimes 331541Srgrimes#ifndef GCC_CORETYPES_H 341541Srgrimes#define GCC_CORETYPES_H 351541Srgrimes 361817Sdg#define GTY(x) /* nothing - marker for gengtype */ 371541Srgrimes 381541Srgrimes#ifndef USED_FOR_TARGET 391541Srgrimes 401541Srgrimesstruct bitmap_head_def; 411541Srgrimestypedef struct bitmap_head_def *bitmap; 421541Srgrimesstruct rtx_def; 435455Sdgtypedef struct rtx_def *rtx; 441541Srgrimesstruct rtvec_def; 451541Srgrimestypedef struct rtvec_def *rtvec; 461541Srgrimesunion tree_node; 471541Srgrimestypedef union tree_node *tree; 481541Srgrimesunion section; 495455Sdgtypedef union section section; 505455Sdg 515455Sdg/* Provide forward struct declaration so that we don't have to include 521541Srgrimes all of cpplib.h whenever a random prototype includes a pointer. 535455Sdg Note that the cpp_reader typedef remains part of cpplib.h. */ 541541Srgrimes 551541Srgrimesstruct cpp_reader; 561541Srgrimes 571541Srgrimes/* The thread-local storage model associated with a given VAR_DECL 581541Srgrimes or SYMBOL_REF. This isn't used much, but both trees and RTL refer 591541Srgrimes to it, so it's here. */ 601541Srgrimesenum tls_model { 611541Srgrimes TLS_MODEL_NONE, 621541Srgrimes TLS_MODEL_GLOBAL_DYNAMIC, 631817Sdg TLS_MODEL_LOCAL_DYNAMIC, 645455Sdg TLS_MODEL_INITIAL_EXEC, 651541Srgrimes TLS_MODEL_LOCAL_EXEC 661541Srgrimes}; 671541Srgrimes 681541Srgrimes#else 691541Srgrimes 701541Srgrimesstruct _dont_use_rtx_here_; 711541Srgrimesstruct _dont_use_rtvec_here_; 721541Srgrimesunion _dont_use_tree_here_; 732112Swollman#define rtx struct _dont_use_rtx_here_ * 742112Swollman#define rtvec struct _dont_use_rtvec_here * 751541Srgrimes#define tree union _dont_use_tree_here_ * 761541Srgrimes 771541Srgrimes#endif 781541Srgrimes 791541Srgrimes#endif /* coretypes.h */ 801541Srgrimes 815455Sdg