Open64 (mfef90, whirl2f, and IR tools)  TAG: version-openad; SVN changeset: 916
obj_type.h
Go to the documentation of this file.
00001 /*
00002 
00003   Copyright (C) 2000, 2001 Silicon Graphics, Inc.  All Rights Reserved.
00004 
00005   This program is free software; you can redistribute it and/or modify it
00006   under the terms of version 2 of the GNU General Public License as
00007   published by the Free Software Foundation.
00008 
00009   This program is distributed in the hope that it would be useful, but
00010   WITHOUT ANY WARRANTY; without even the implied warranty of
00011   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
00012 
00013   Further, this software is distributed without any warranty that it is
00014   free of the rightful claim of any third person regarding infringement 
00015   or the like.  Any license provided herein, whether implied or 
00016   otherwise, applies only to this software file.  Patent licenses, if 
00017   any, provided herein do not apply to combinations of this program with 
00018   other software, or any other product whatsoever.  
00019 
00020   You should have received a copy of the GNU General Public License along
00021   with this program; if not, write the Free Software Foundation, Inc., 59
00022   Temple Place - Suite 330, Boston MA 02111-1307, USA.
00023 
00024   Contact information:  Silicon Graphics, Inc., 1600 Amphitheatre Pky,
00025   Mountain View, CA 94043, or:
00026 
00027   http://www.sgi.com
00028 
00029   For further information regarding this notice, see:
00030 
00031   http://oss.sgi.com/projects/GenInfo/NoticeExplan
00032 
00033 */
00034 
00035 
00036 /* $Header: /m_home/m_utkej/Argonne/cvs2svn/cvs/Open64/osprey1.0/include/obj_type.h,v 1.1.1.1 2002-05-22 20:09:05 dsystem Exp $ */
00037 
00038 #ifndef __OBJ_TYPE_H__
00039 #define __OBJ_TYPE_H__
00040 
00041 #ifdef __cplusplus
00042 extern "C" {
00043 #endif
00044 
00045 #include "obj.h"
00046 
00047 typedef struct obj_type {
00048         struct obj      *obj;
00049         unsigned long   init;           /* whether to init with this type */
00050         long            type;           /* index to aux we are processing */
00051 
00052         /* the rest are fields we fill in */
00053         TIR             ti;
00054         unsigned long   skip;           /* how many tq's & bt to ignore */
00055         long            bt_symbol;
00056         long            bt_type;
00057         unsigned long   bt_low;         /* for range */
00058         unsigned long   bt_high;        /* for range */
00059         unsigned long   tq;
00060         unsigned long   tq_index;       /* ongoing index to next aux */
00061         unsigned long   tq_save;
00062         long            symbol;
00063         unsigned long   low;
00064         unsigned long   high;
00065         unsigned long   stride;
00066         unsigned long   width;
00067         unsigned long   dimension;
00068         unsigned long   dimcount;
00069         unsigned long   offset;
00070         unsigned long   precision;
00071         unsigned long   isproc;
00072         long            nodesym;
00073         unsigned int    language;
00074 } OBJ_TYPE, *pOBJ_TYPE;
00075 #define cbOBJ_TYPE (sizeof(OBJ_TYPE))
00076 
00077 extern AUXU usertype[];
00078 extern int tinx;
00079 
00080 /*
00081 
00082 basic type represented in a size other than the def size:
00083         tq              tqNil
00084         bt              bt whatever
00085         width           number of bits to represent the type
00086 
00087 basic type:
00088         tq              tqNil
00089         bt              bt whatever
00090         width           0
00091 
00092 Pointer:
00093         tq              tqPtr
00094 
00095 Function returning:
00096         tq              tqFunc
00097 
00098 Array:
00099         tq              tqArray
00100         type            rindex to subscript's type TIR
00101         low             low index
00102         high            high index
00103         stride          stride in bits
00104 
00105 Set:
00106 Indirect
00107         bt              btSet or btIndirect
00108         type            type index to tir of set or indirect type.
00109 
00110 Enumerated type:
00111         bt              btEnum
00112         symbol          symbol index to enum block
00113 
00114 Range:
00115         bt              btRange
00116         type            type index to TIR to type we are subranging
00117         low             low range value
00118         high            high range value
00119 
00120 C union:
00121 Structures:
00122         bt              btUnion or btStruct
00123         symbol          symbol index to block defining union or struct
00124 
00125 basic type is a Typedef:
00126         bt              btTypedef
00127         symbol          symbol index to typedef symbol
00128 
00129 FORTRAN_common:
00130 FORTRAN_equivalence:
00131         bt              btStruct
00132         symbol          symbol index to block defining struct
00133 
00134 */
00135 
00136 #ifdef __cplusplus
00137 }
00138 #endif
00139 
00140 #endif /* __OBJ_TYPE_H__ */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines