LCOV - code coverage report
Current view: top level - include/llvm/DebugInfo/CodeView - CodeViewTypes.def (source / functions) Hit Total Coverage
Test: llvm-toolchain.info Lines: 171 171 100.0 %
Date: 2018-10-20 13:21:21 Functions: 77 115 67.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : //===-- CodeViewTypes.def - All CodeView leaf types -------------*- C++ -*-===//
       2             : //
       3             : //                     The LLVM Compiler Infrastructure
       4             : //
       5             : // This file is distributed under the University of Illinois Open Source
       6             : // License. See LICENSE.TXT for details.
       7             : //
       8             : //===----------------------------------------------------------------------===//
       9             : //
      10             : // See LEAF_ENUM_e in cvinfo.h. This should match the constants there.
      11             : //
      12             : //===----------------------------------------------------------------------===//
      13             : 
      14             : // If the type is known, then we have a record describing it in TypeRecord.h.
      15             : 
      16             : #ifndef CV_TYPE
      17             : #define CV_TYPE(lf_ename, value)
      18             : #endif
      19             : 
      20             : // If the type is known, then we have a record describing it in TypeRecord.h.
      21             : #ifndef TYPE_RECORD
      22             : #define TYPE_RECORD(lf_ename, value, name) CV_TYPE(lf_ename, value)
      23             : #endif
      24             : 
      25             : #ifndef TYPE_RECORD_ALIAS
      26             : #define TYPE_RECORD_ALIAS(lf_ename, value, name, alias_name)                   \
      27             :   TYPE_RECORD(lf_ename, value, name)
      28             : #endif
      29             : 
      30             : #ifndef MEMBER_RECORD
      31             : #define MEMBER_RECORD(lf_ename, value, name) TYPE_RECORD(lf_ename, value, name)
      32             : #endif
      33             : 
      34             : #ifndef MEMBER_RECORD_ALIAS
      35             : #define MEMBER_RECORD_ALIAS(lf_ename, value, name, alias_name)                 \
      36             :   MEMBER_RECORD(lf_ename, value, name)
      37             : #endif
      38             : 
      39        9866 : TYPE_RECORD(LF_POINTER, 0x1002, Pointer)
      40        6923 : TYPE_RECORD(LF_MODIFIER, 0x1001, Modifier)
      41        7609 : TYPE_RECORD(LF_PROCEDURE, 0x1008, Procedure)
      42       10221 : TYPE_RECORD(LF_MFUNCTION, 0x1009, MemberFunction)
      43        6330 : TYPE_RECORD(LF_LABEL, 0x000e, Label)
      44        8685 : TYPE_RECORD(LF_ARGLIST, 0x1201, ArgList)
      45             : 
      46        9707 : TYPE_RECORD(LF_FIELDLIST, 0x1203, FieldList)
      47             : 
      48        6557 : TYPE_RECORD(LF_ARRAY, 0x1503, Array)
      49        9714 : TYPE_RECORD(LF_CLASS, 0x1504, Class)
      50        8437 : TYPE_RECORD_ALIAS(LF_STRUCTURE, 0x1505, Struct, Class)
      51        6327 : TYPE_RECORD_ALIAS(LF_INTERFACE, 0x1519, Interface, Class)
      52        6436 : TYPE_RECORD(LF_UNION, 0x1506, Union)
      53        7042 : TYPE_RECORD(LF_ENUM, 0x1507, Enum)
      54        6339 : TYPE_RECORD(LF_TYPESERVER2, 0x1515, TypeServer2)
      55        6360 : TYPE_RECORD(LF_VFTABLE, 0x151d, VFTable)
      56        6431 : TYPE_RECORD(LF_VTSHAPE, 0x000a, VFTableShape)
      57             : 
      58        6380 : TYPE_RECORD(LF_BITFIELD, 0x1205, BitField)
      59             : 
      60             : // Member type records. These are generally not length prefixed, and appear
      61             : // inside of a field list record.
      62        6468 : MEMBER_RECORD(LF_BCLASS, 0x1400, BaseClass)
      63        6327 : MEMBER_RECORD_ALIAS(LF_BINTERFACE, 0x151a, BaseInterface, BaseClass)
      64             : 
      65        6417 : MEMBER_RECORD(LF_VBCLASS, 0x1401, VirtualBaseClass)
      66        6346 : MEMBER_RECORD_ALIAS(LF_IVBCLASS, 0x1402, IndirectVirtualBaseClass,
      67             :                     VirtualBaseClass)
      68             : 
      69        6426 : MEMBER_RECORD(LF_VFUNCTAB, 0x1409, VFPtr)
      70        7003 : MEMBER_RECORD(LF_STMEMBER, 0x150e, StaticDataMember)
      71        7641 : MEMBER_RECORD(LF_METHOD, 0x150f, OverloadedMethod)
      72       12980 : MEMBER_RECORD(LF_MEMBER, 0x150d, DataMember)
      73        7316 : MEMBER_RECORD(LF_NESTTYPE, 0x1510, NestedType)
      74        8652 : MEMBER_RECORD(LF_ONEMETHOD, 0x1511, OneMethod)
      75       41664 : MEMBER_RECORD(LF_ENUMERATE, 0x1502, Enumerator)
      76        6347 : MEMBER_RECORD(LF_INDEX, 0x1404, ListContinuation)
      77             : 
      78             : // ID leaf records. Subsequent leaf types may be referenced from .debug$S.
      79        7663 : TYPE_RECORD(LF_FUNC_ID, 0x1601, FuncId)
      80        6639 : TYPE_RECORD(LF_MFUNC_ID, 0x1602, MemberFuncId)
      81        7065 : TYPE_RECORD(LF_BUILDINFO, 0x1603, BuildInfo)
      82        6492 : TYPE_RECORD(LF_SUBSTR_LIST, 0x1604, StringList)
      83        9210 : TYPE_RECORD(LF_STRING_ID, 0x1605, StringId)
      84        8472 : TYPE_RECORD(LF_UDT_SRC_LINE, 0x1606, UdtSourceLine)
      85        6392 : TYPE_RECORD(LF_UDT_MOD_SRC_LINE, 0x1607, UdtModSourceLine)
      86             : 
      87             : 
      88        7205 : TYPE_RECORD(LF_METHODLIST, 0x1206, MethodOverloadList)
      89             : 
      90        6336 : TYPE_RECORD(LF_PRECOMP, 0x1509, Precomp)
      91        6336 : TYPE_RECORD(LF_ENDPRECOMP, 0x0014, EndPrecomp)
      92             : 
      93             : // 16 bit type records.
      94        6327 : CV_TYPE(LF_MODIFIER_16t, 0x0001)
      95        6327 : CV_TYPE(LF_POINTER_16t, 0x0002)
      96        6327 : CV_TYPE(LF_ARRAY_16t, 0x0003)
      97        6327 : CV_TYPE(LF_CLASS_16t, 0x0004)
      98        6327 : CV_TYPE(LF_STRUCTURE_16t, 0x0005)
      99        6327 : CV_TYPE(LF_UNION_16t, 0x0006)
     100        6327 : CV_TYPE(LF_ENUM_16t, 0x0007)
     101        6327 : CV_TYPE(LF_PROCEDURE_16t, 0x0008)
     102        6327 : CV_TYPE(LF_MFUNCTION_16t, 0x0009)
     103        6327 : CV_TYPE(LF_COBOL0_16t, 0x000b)
     104        6327 : CV_TYPE(LF_COBOL1, 0x000c)
     105        6327 : CV_TYPE(LF_BARRAY_16t, 0x000d)
     106        6327 : CV_TYPE(LF_NULLLEAF, 0x000f) // LF_NULL
     107        6327 : CV_TYPE(LF_NOTTRAN, 0x0010)
     108        6327 : CV_TYPE(LF_DIMARRAY_16t, 0x0011)
     109        6327 : CV_TYPE(LF_VFTPATH_16t, 0x0012)
     110        6327 : CV_TYPE(LF_PRECOMP_16t, 0x0013)
     111        6327 : CV_TYPE(LF_OEM_16t, 0x0015)
     112        6327 : CV_TYPE(LF_TYPESERVER_ST, 0x0016)
     113             : 
     114        6327 : CV_TYPE(LF_SKIP_16t, 0x0200)
     115        6327 : CV_TYPE(LF_ARGLIST_16t, 0x0201)
     116        6327 : CV_TYPE(LF_DEFARG_16t, 0x0202)
     117        6327 : CV_TYPE(LF_LIST, 0x0203)
     118        6327 : CV_TYPE(LF_FIELDLIST_16t, 0x0204)
     119        6327 : CV_TYPE(LF_DERIVED_16t, 0x0205)
     120        6327 : CV_TYPE(LF_BITFIELD_16t, 0x0206)
     121        6327 : CV_TYPE(LF_METHODLIST_16t, 0x0207)
     122        6327 : CV_TYPE(LF_DIMCONU_16t, 0x0208)
     123        6327 : CV_TYPE(LF_DIMCONLU_16t, 0x0209)
     124        6327 : CV_TYPE(LF_DIMVARU_16t, 0x020a)
     125        6327 : CV_TYPE(LF_DIMVARLU_16t, 0x020b)
     126        6327 : CV_TYPE(LF_REFSYM, 0x020c)
     127             : 
     128             : // 16 bit member types. Generally not length prefixed.
     129        6327 : CV_TYPE(LF_BCLASS_16t, 0x0400)
     130        6327 : CV_TYPE(LF_VBCLASS_16t, 0x0401)
     131        6327 : CV_TYPE(LF_IVBCLASS_16t, 0x0402)
     132        6327 : CV_TYPE(LF_ENUMERATE_ST, 0x0403)
     133        6327 : CV_TYPE(LF_FRIENDFCN_16t, 0x0404)
     134        6327 : CV_TYPE(LF_INDEX_16t, 0x0405)
     135        6327 : CV_TYPE(LF_MEMBER_16t, 0x0406)
     136        6327 : CV_TYPE(LF_STMEMBER_16t, 0x0407)
     137        6327 : CV_TYPE(LF_METHOD_16t, 0x0408)
     138        6327 : CV_TYPE(LF_NESTTYPE_16t, 0x0409)
     139        6327 : CV_TYPE(LF_VFUNCTAB_16t, 0x040a)
     140        6327 : CV_TYPE(LF_FRIENDCLS_16t, 0x040b)
     141        6327 : CV_TYPE(LF_ONEMETHOD_16t, 0x040c)
     142        6327 : CV_TYPE(LF_VFUNCOFF_16t, 0x040d)
     143             : 
     144        6327 : CV_TYPE(LF_TI16_MAX, 0x1000)
     145             : 
     146        6327 : CV_TYPE(LF_ARRAY_ST, 0x1003)
     147        6327 : CV_TYPE(LF_CLASS_ST, 0x1004)
     148        6327 : CV_TYPE(LF_STRUCTURE_ST, 0x1005)
     149        6327 : CV_TYPE(LF_UNION_ST, 0x1006)
     150        6327 : CV_TYPE(LF_ENUM_ST, 0x1007)
     151        6327 : CV_TYPE(LF_COBOL0, 0x100a)
     152        6327 : CV_TYPE(LF_BARRAY, 0x100b)
     153        6327 : CV_TYPE(LF_DIMARRAY_ST, 0x100c)
     154        6327 : CV_TYPE(LF_VFTPATH, 0x100d)
     155        6327 : CV_TYPE(LF_PRECOMP_ST, 0x100e)
     156        6327 : CV_TYPE(LF_OEM, 0x100f)
     157        6327 : CV_TYPE(LF_ALIAS_ST, 0x1010)
     158        6327 : CV_TYPE(LF_OEM2, 0x1011)
     159             : 
     160        6327 : CV_TYPE(LF_SKIP, 0x1200)
     161        6327 : CV_TYPE(LF_DEFARG_ST, 0x1202)
     162        6327 : CV_TYPE(LF_DERIVED, 0x1204)
     163        6327 : CV_TYPE(LF_DIMCONU, 0x1207)
     164        6327 : CV_TYPE(LF_DIMCONLU, 0x1208)
     165        6327 : CV_TYPE(LF_DIMVARU, 0x1209)
     166        6327 : CV_TYPE(LF_DIMVARLU, 0x120a)
     167             : 
     168             : // Member type records. These are generally not length prefixed, and appear
     169             : // inside of a field list record.
     170        6327 : CV_TYPE(LF_FRIENDFCN_ST, 0x1403)
     171        6327 : CV_TYPE(LF_MEMBER_ST, 0x1405)
     172        6327 : CV_TYPE(LF_STMEMBER_ST, 0x1406)
     173        6327 : CV_TYPE(LF_METHOD_ST, 0x1407)
     174        6327 : CV_TYPE(LF_NESTTYPE_ST, 0x1408)
     175        6327 : CV_TYPE(LF_FRIENDCLS, 0x140a)
     176        6327 : CV_TYPE(LF_ONEMETHOD_ST, 0x140b)
     177        6327 : CV_TYPE(LF_VFUNCOFF, 0x140c)
     178        6327 : CV_TYPE(LF_NESTTYPEEX_ST, 0x140d)
     179        6327 : CV_TYPE(LF_MEMBERMODIFY_ST, 0x140e)
     180        6327 : CV_TYPE(LF_MANAGED_ST, 0x140f)
     181             : 
     182        6327 : CV_TYPE(LF_ST_MAX, 0x1500)
     183        6327 : CV_TYPE(LF_TYPESERVER, 0x1501)
     184        6327 : CV_TYPE(LF_DIMARRAY, 0x1508)
     185        6327 : CV_TYPE(LF_ALIAS, 0x150a)
     186        6327 : CV_TYPE(LF_DEFARG, 0x150b)
     187        6327 : CV_TYPE(LF_FRIENDFCN, 0x150c)
     188        6327 : CV_TYPE(LF_NESTTYPEEX, 0x1512)
     189        6327 : CV_TYPE(LF_MEMBERMODIFY, 0x1513)
     190        6327 : CV_TYPE(LF_MANAGED, 0x1514)
     191        6327 : CV_TYPE(LF_STRIDED_ARRAY, 0x1516)
     192        6327 : CV_TYPE(LF_HLSL, 0x1517)
     193        6327 : CV_TYPE(LF_MODIFIER_EX, 0x1518)
     194        6327 : CV_TYPE(LF_VECTOR, 0x151b)
     195        6327 : CV_TYPE(LF_MATRIX, 0x151c)
     196             : 
     197             : // ID leaf records. Subsequent leaf types may be referenced from .debug$S.
     198             : 
     199             : // Numeric leaf types. These are generally contained in other records, and not
     200             : // encountered in the main type stream.
     201             : 
     202        6327 : CV_TYPE(LF_NUMERIC, 0x8000)
     203        6327 : CV_TYPE(LF_CHAR, 0x8000)
     204        6327 : CV_TYPE(LF_SHORT, 0x8001)
     205        6327 : CV_TYPE(LF_USHORT, 0x8002)
     206        6327 : CV_TYPE(LF_LONG, 0x8003)
     207        6327 : CV_TYPE(LF_ULONG, 0x8004)
     208        6327 : CV_TYPE(LF_REAL32, 0x8005)
     209        6327 : CV_TYPE(LF_REAL64, 0x8006)
     210        6327 : CV_TYPE(LF_REAL80, 0x8007)
     211        6327 : CV_TYPE(LF_REAL128, 0x8008)
     212        6327 : CV_TYPE(LF_QUADWORD, 0x8009)
     213        6327 : CV_TYPE(LF_UQUADWORD, 0x800a)
     214        6327 : CV_TYPE(LF_REAL48, 0x800b)
     215        6327 : CV_TYPE(LF_COMPLEX32, 0x800c)
     216        6327 : CV_TYPE(LF_COMPLEX64, 0x800d)
     217        6327 : CV_TYPE(LF_COMPLEX80, 0x800e)
     218        6327 : CV_TYPE(LF_COMPLEX128, 0x800f)
     219        6327 : CV_TYPE(LF_VARSTRING, 0x8010)
     220        6327 : CV_TYPE(LF_OCTWORD, 0x8017)
     221        6327 : CV_TYPE(LF_UOCTWORD, 0x8018)
     222        6327 : CV_TYPE(LF_DECIMAL, 0x8019)
     223        6327 : CV_TYPE(LF_DATE, 0x801a)
     224        6327 : CV_TYPE(LF_UTF8STRING, 0x801b)
     225        6327 : CV_TYPE(LF_REAL16, 0x801c)
     226             : 
     227             : // Padding bytes. These are emitted into alignment bytes in the type stream.
     228             : 
     229        6327 : CV_TYPE(LF_PAD0, 0xf0)
     230        6327 : CV_TYPE(LF_PAD1, 0xf1)
     231        6327 : CV_TYPE(LF_PAD2, 0xf2)
     232        6327 : CV_TYPE(LF_PAD3, 0xf3)
     233        6327 : CV_TYPE(LF_PAD4, 0xf4)
     234        6327 : CV_TYPE(LF_PAD5, 0xf5)
     235        6327 : CV_TYPE(LF_PAD6, 0xf6)
     236        6327 : CV_TYPE(LF_PAD7, 0xf7)
     237        6327 : CV_TYPE(LF_PAD8, 0xf8)
     238        6327 : CV_TYPE(LF_PAD9, 0xf9)
     239        6327 : CV_TYPE(LF_PAD10, 0xfa)
     240        6327 : CV_TYPE(LF_PAD11, 0xfb)
     241        6327 : CV_TYPE(LF_PAD12, 0xfc)
     242        6327 : CV_TYPE(LF_PAD13, 0xfd)
     243        6327 : CV_TYPE(LF_PAD14, 0xfe)
     244        6327 : CV_TYPE(LF_PAD15, 0xff)
     245             : 
     246             : #undef CV_TYPE
     247             : #undef TYPE_RECORD
     248             : #undef TYPE_RECORD_ALIAS
     249             : #undef MEMBER_RECORD
     250             : #undef MEMBER_RECORD_ALIAS

Generated by: LCOV version 1.13