CVLeafTypes.def   [plain text]


//===-- CVLeafTypes.def - All CodeView leaf types ---------------*- C++ -*-===//
//
//                     The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
// See LEAF_ENUM_e in cvinfo.h. This should match the constants there.
//
//===----------------------------------------------------------------------===//

#ifndef LEAF_TYPE
#define LEAF_TYPE(ename, value)
#endif

// 16 bit type records.
LEAF_TYPE(LF_MODIFIER_16t, 0x0001)
LEAF_TYPE(LF_POINTER_16t, 0x0002)
LEAF_TYPE(LF_ARRAY_16t, 0x0003)
LEAF_TYPE(LF_CLASS_16t, 0x0004)
LEAF_TYPE(LF_STRUCTURE_16t, 0x0005)
LEAF_TYPE(LF_UNION_16t, 0x0006)
LEAF_TYPE(LF_ENUM_16t, 0x0007)
LEAF_TYPE(LF_PROCEDURE_16t, 0x0008)
LEAF_TYPE(LF_MFUNCTION_16t, 0x0009)
LEAF_TYPE(LF_VTSHAPE, 0x000a)
LEAF_TYPE(LF_COBOL0_16t, 0x000b)
LEAF_TYPE(LF_COBOL1, 0x000c)
LEAF_TYPE(LF_BARRAY_16t, 0x000d)
LEAF_TYPE(LF_LABEL, 0x000e)
LEAF_TYPE(LF_NULLLEAF, 0x000f) // LF_NULL
LEAF_TYPE(LF_NOTTRAN, 0x0010)
LEAF_TYPE(LF_DIMARRAY_16t, 0x0011)
LEAF_TYPE(LF_VFTPATH_16t, 0x0012)
LEAF_TYPE(LF_PRECOMP_16t, 0x0013)
LEAF_TYPE(LF_ENDPRECOMP, 0x0014)
LEAF_TYPE(LF_OEM_16t, 0x0015)
LEAF_TYPE(LF_TYPESERVER_ST, 0x0016)

LEAF_TYPE(LF_SKIP_16t, 0x0200)
LEAF_TYPE(LF_ARGLIST_16t, 0x0201)
LEAF_TYPE(LF_DEFARG_16t, 0x0202)
LEAF_TYPE(LF_LIST, 0x0203)
LEAF_TYPE(LF_FIELDLIST_16t, 0x0204)
LEAF_TYPE(LF_DERIVED_16t, 0x0205)
LEAF_TYPE(LF_BITFIELD_16t, 0x0206)
LEAF_TYPE(LF_METHODLIST_16t, 0x0207)
LEAF_TYPE(LF_DIMCONU_16t, 0x0208)
LEAF_TYPE(LF_DIMCONLU_16t, 0x0209)
LEAF_TYPE(LF_DIMVARU_16t, 0x020a)
LEAF_TYPE(LF_DIMVARLU_16t, 0x020b)
LEAF_TYPE(LF_REFSYM, 0x020c)

// 16 bit member types. Generally not length prefixed.
LEAF_TYPE(LF_BCLASS_16t, 0x0400)
LEAF_TYPE(LF_VBCLASS_16t, 0x0401)
LEAF_TYPE(LF_IVBCLASS_16t, 0x0402)
LEAF_TYPE(LF_ENUMERATE_ST, 0x0403)
LEAF_TYPE(LF_FRIENDFCN_16t, 0x0404)
LEAF_TYPE(LF_INDEX_16t, 0x0405)
LEAF_TYPE(LF_MEMBER_16t, 0x0406)
LEAF_TYPE(LF_STMEMBER_16t, 0x0407)
LEAF_TYPE(LF_METHOD_16t, 0x0408)
LEAF_TYPE(LF_NESTTYPE_16t, 0x0409)
LEAF_TYPE(LF_VFUNCTAB_16t, 0x040a)
LEAF_TYPE(LF_FRIENDCLS_16t, 0x040b)
LEAF_TYPE(LF_ONEMETHOD_16t, 0x040c)
LEAF_TYPE(LF_VFUNCOFF_16t, 0x040d)

LEAF_TYPE(LF_TI16_MAX, 0x1000)

LEAF_TYPE(LF_MODIFIER, 0x1001)
LEAF_TYPE(LF_POINTER, 0x1002)
LEAF_TYPE(LF_ARRAY_ST, 0x1003)
LEAF_TYPE(LF_CLASS_ST, 0x1004)
LEAF_TYPE(LF_STRUCTURE_ST, 0x1005)
LEAF_TYPE(LF_UNION_ST, 0x1006)
LEAF_TYPE(LF_ENUM_ST, 0x1007)
LEAF_TYPE(LF_PROCEDURE, 0x1008)
LEAF_TYPE(LF_MFUNCTION, 0x1009)
LEAF_TYPE(LF_COBOL0, 0x100a)
LEAF_TYPE(LF_BARRAY, 0x100b)
LEAF_TYPE(LF_DIMARRAY_ST, 0x100c)
LEAF_TYPE(LF_VFTPATH, 0x100d)
LEAF_TYPE(LF_PRECOMP_ST, 0x100e)
LEAF_TYPE(LF_OEM, 0x100f)
LEAF_TYPE(LF_ALIAS_ST, 0x1010)
LEAF_TYPE(LF_OEM2, 0x1011)

LEAF_TYPE(LF_SKIP, 0x1200)
LEAF_TYPE(LF_ARGLIST, 0x1201)
LEAF_TYPE(LF_DEFARG_ST, 0x1202)
LEAF_TYPE(LF_FIELDLIST, 0x1203)
LEAF_TYPE(LF_DERIVED, 0x1204)
LEAF_TYPE(LF_BITFIELD, 0x1205)
LEAF_TYPE(LF_METHODLIST, 0x1206)
LEAF_TYPE(LF_DIMCONU, 0x1207)
LEAF_TYPE(LF_DIMCONLU, 0x1208)
LEAF_TYPE(LF_DIMVARU, 0x1209)
LEAF_TYPE(LF_DIMVARLU, 0x120a)

// Member type records. These are generally not length prefixed, and appear
// inside of a field list record.
LEAF_TYPE(LF_BCLASS, 0x1400)
LEAF_TYPE(LF_VBCLASS, 0x1401)
LEAF_TYPE(LF_IVBCLASS, 0x1402)
LEAF_TYPE(LF_FRIENDFCN_ST, 0x1403)
LEAF_TYPE(LF_INDEX, 0x1404)
LEAF_TYPE(LF_MEMBER_ST, 0x1405)
LEAF_TYPE(LF_STMEMBER_ST, 0x1406)
LEAF_TYPE(LF_METHOD_ST, 0x1407)
LEAF_TYPE(LF_NESTTYPE_ST, 0x1408)
LEAF_TYPE(LF_VFUNCTAB, 0x1409)
LEAF_TYPE(LF_FRIENDCLS, 0x140a)
LEAF_TYPE(LF_ONEMETHOD_ST, 0x140b)
LEAF_TYPE(LF_VFUNCOFF, 0x140c)
LEAF_TYPE(LF_NESTTYPEEX_ST, 0x140d)
LEAF_TYPE(LF_MEMBERMODIFY_ST, 0x140e)
LEAF_TYPE(LF_MANAGED_ST, 0x140f)

LEAF_TYPE(LF_ST_MAX, 0x1500)
LEAF_TYPE(LF_TYPESERVER, 0x1501)
LEAF_TYPE(LF_ENUMERATE, 0x1502)
LEAF_TYPE(LF_ARRAY, 0x1503)
LEAF_TYPE(LF_CLASS, 0x1504)
LEAF_TYPE(LF_STRUCTURE, 0x1505)
LEAF_TYPE(LF_UNION, 0x1506)
LEAF_TYPE(LF_ENUM, 0x1507)
LEAF_TYPE(LF_DIMARRAY, 0x1508)
LEAF_TYPE(LF_PRECOMP, 0x1509)
LEAF_TYPE(LF_ALIAS, 0x150a)
LEAF_TYPE(LF_DEFARG, 0x150b)
LEAF_TYPE(LF_FRIENDFCN, 0x150c)
LEAF_TYPE(LF_MEMBER, 0x150d)
LEAF_TYPE(LF_STMEMBER, 0x150e)
LEAF_TYPE(LF_METHOD, 0x150f)
LEAF_TYPE(LF_NESTTYPE, 0x1510)
LEAF_TYPE(LF_ONEMETHOD, 0x1511)
LEAF_TYPE(LF_NESTTYPEEX, 0x1512)
LEAF_TYPE(LF_MEMBERMODIFY, 0x1513)
LEAF_TYPE(LF_MANAGED, 0x1514)
LEAF_TYPE(LF_TYPESERVER2, 0x1515)
LEAF_TYPE(LF_STRIDED_ARRAY, 0x1516)
LEAF_TYPE(LF_HLSL, 0x1517)
LEAF_TYPE(LF_MODIFIER_EX, 0x1518)
LEAF_TYPE(LF_INTERFACE, 0x1519)
LEAF_TYPE(LF_BINTERFACE, 0x151a)
LEAF_TYPE(LF_VECTOR, 0x151b)
LEAF_TYPE(LF_MATRIX, 0x151c)
LEAF_TYPE(LF_VFTABLE, 0x151d)

// ID leaf records. Subsequent leaf types may be referenced from .debug$S.

LEAF_TYPE(LF_FUNC_ID, 0x1601)
LEAF_TYPE(LF_MFUNC_ID, 0x1602)
LEAF_TYPE(LF_BUILDINFO, 0x1603)
LEAF_TYPE(LF_SUBSTR_LIST, 0x1604)
LEAF_TYPE(LF_STRING_ID, 0x1605)
LEAF_TYPE(LF_UDT_SRC_LINE, 0x1606)
LEAF_TYPE(LF_UDT_MOD_SRC_LINE, 0x1607)

// Numeric leaf types. These are generally contained in other records, and not
// encountered in the main type stream.

LEAF_TYPE(LF_NUMERIC, 0x8000)
LEAF_TYPE(LF_CHAR, 0x8000)
LEAF_TYPE(LF_SHORT, 0x8001)
LEAF_TYPE(LF_USHORT, 0x8002)
LEAF_TYPE(LF_LONG, 0x8003)
LEAF_TYPE(LF_ULONG, 0x8004)
LEAF_TYPE(LF_REAL32, 0x8005)
LEAF_TYPE(LF_REAL64, 0x8006)
LEAF_TYPE(LF_REAL80, 0x8007)
LEAF_TYPE(LF_REAL128, 0x8008)
LEAF_TYPE(LF_QUADWORD, 0x8009)
LEAF_TYPE(LF_UQUADWORD, 0x800a)
LEAF_TYPE(LF_REAL48, 0x800b)
LEAF_TYPE(LF_COMPLEX32, 0x800c)
LEAF_TYPE(LF_COMPLEX64, 0x800d)
LEAF_TYPE(LF_COMPLEX80, 0x800e)
LEAF_TYPE(LF_COMPLEX128, 0x800f)
LEAF_TYPE(LF_VARSTRING, 0x8010)
LEAF_TYPE(LF_OCTWORD, 0x8017)
LEAF_TYPE(LF_UOCTWORD, 0x8018)
LEAF_TYPE(LF_DECIMAL, 0x8019)
LEAF_TYPE(LF_DATE, 0x801a)
LEAF_TYPE(LF_UTF8STRING, 0x801b)
LEAF_TYPE(LF_REAL16, 0x801c)

// Padding bytes. These are emitted into alignment bytes in the type stream.

LEAF_TYPE(LF_PAD0, 0xf0)
LEAF_TYPE(LF_PAD1, 0xf1)
LEAF_TYPE(LF_PAD2, 0xf2)
LEAF_TYPE(LF_PAD3, 0xf3)
LEAF_TYPE(LF_PAD4, 0xf4)
LEAF_TYPE(LF_PAD5, 0xf5)
LEAF_TYPE(LF_PAD6, 0xf6)
LEAF_TYPE(LF_PAD7, 0xf7)
LEAF_TYPE(LF_PAD8, 0xf8)
LEAF_TYPE(LF_PAD9, 0xf9)
LEAF_TYPE(LF_PAD10, 0xfa)
LEAF_TYPE(LF_PAD11, 0xfb)
LEAF_TYPE(LF_PAD12, 0xfc)
LEAF_TYPE(LF_PAD13, 0xfd)
LEAF_TYPE(LF_PAD14, 0xfe)
LEAF_TYPE(LF_PAD15, 0xff)

#undef LEAF_TYPE