//===-- llvm/Type.def - File that describes various LLVM types --*- C++ -*-===//
// 
//                     The LLVM Compiler Infrastructure
//
// This file was developed by the LLVM research group and is distributed under
// the University of Illinois Open Source License. See LICENSE.TXT for details.
// 
//===----------------------------------------------------------------------===//
//
// This file contains descriptions of the various LLVM types and derived types.
// This file serves as a source of in source documentation and a can be
// #included to do something on all of the type definitions.
//
//===----------------------------------------------------------------------===//

// NOTE: NO INCLUDE GUARD DESIRED!


// If the user didn't specify one of the macros, give a default noop defn.
//
#ifndef HANDLE_PRIM_TYPE
#define HANDLE_PRIM_TYPE(x,y)
#endif
#ifndef HANDLE_DERV_TYPE
#define HANDLE_DERV_TYPE(x,y)
#endif


// HANDLE_PRIM_TYPE - Parameterized #define that takes the following fields to
// declare a primitive type:
//
//   Type Name:  This is the symbolic name of the type, without the trailing Ty.
//   Type Size:  This is the size or precision of the type.
//
HANDLE_PRIM_TYPE(Void  , 0)
HANDLE_PRIM_TYPE(Bool  , 1)
HANDLE_PRIM_TYPE(SByte , 1)
HANDLE_PRIM_TYPE(UByte , 1)
HANDLE_PRIM_TYPE(Short , 2)
HANDLE_PRIM_TYPE(UShort, 2)
HANDLE_PRIM_TYPE(Int   , 4)
HANDLE_PRIM_TYPE(UInt  , 4)
HANDLE_PRIM_TYPE(Long  , 8)
HANDLE_PRIM_TYPE(ULong , 8)
HANDLE_PRIM_TYPE(Float , 4)
HANDLE_PRIM_TYPE(Double, 8)
HANDLE_PRIM_TYPE(Type  , 0)
HANDLE_PRIM_TYPE(Label , 0)


// HANDLE_DERV_TYPE - Parameterized #define that takes the following fields to
// declare a derived type:
//
//   Type Name:  This is the symbolic name of the type, without the trailing Ty.
//   Class Name: This is the subclass that implements the derived type.
//
HANDLE_DERV_TYPE(Function, FunctionType)
HANDLE_DERV_TYPE(Array   , ArrayType)
HANDLE_DERV_TYPE(Pointer , PointerType)
HANDLE_DERV_TYPE(Struct  , StructType)
HANDLE_DERV_TYPE(Opaque  , OpaqueType)

// Kill the macros on exit...
#undef HANDLE_PRIM_TYPE
#undef HANDLE_DERV_TYPE
