llvm-6502/include/llvm/Type.def

59 lines
1.8 KiB
Modula-2
Raw Normal View History

//===-- llvm/Type.def - File that describes various LLVM types --*- C++ -*-===//
//
// 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