LLVM: include/llvm/DebugInfo/CodeView/CodeView.h File Reference (original) (raw)

#include <cinttypes>
#include <type_traits>
#include "[llvm/ADT/STLForwardCompat.h](STLForwardCompat%5F8h%5Fsource.html)"
#include "[llvm/Support/Endian.h](Endian%5F8h%5Fsource.html)"
#include "CodeViewTypes.def"
#include "CodeViewSymbols.def"
#include "CodeViewRegisters.def"

Go to the source code of this file.

Classes
struct llvm::codeview::CPURegister
struct llvm::codeview::FrameData
Data in the SUBSEC_FRAMEDATA subection. More...
struct llvm::codeview::CrossModuleExport
struct llvm::codeview::CrossModuleImport
Namespaces
namespace llvm
This is an optimization pass for GlobalISel generic memory operations.
namespace llvm::codeview
Macros
#define TYPE_RECORD(lf_ename, value, name) name = value,
#define CV_TYPE(name, val) name = val,
#define SYMBOL_RECORD(lf_ename, value, name) name = value,
#define CV_SYMBOL(name, val) name = val,
#define CV_DEFINE_ENUM_CLASS_FLAGS_OPERATORS(Class)
#define CV_REGISTERS_ALL
#define CV_REGISTER(name, value) name = value,
Enumerations
enum class llvm::codeview::TypeRecordKind : uint16_t { llvm::codeview::TYPE_RECORD }
Distinguishes individual records in .debug$T or .debug$P section or PDB type stream. More...
enum llvm::codeview::TypeLeafKind : uint16_t
Duplicate copy of the above enum, but using the official CV names. More...
enum class llvm::codeview::SymbolRecordKind : uint16_t { llvm::codeview::SYMBOL_RECORD }
Distinguishes individual records in the Symbols subsection of a .debug$S section. More...
enum llvm::codeview::SymbolKind : uint16_t
Duplicate copy of the above enum, but using the official CV names. More...
enum class llvm::codeview::CPUType : uint16_t { llvm::codeview::Intel8080 = 0x0 , llvm::codeview::Intel8086 = 0x1 , llvm::codeview::Intel80286 = 0x2 , llvm::codeview::Intel80386 = 0x3 , llvm::codeview::Intel80486 = 0x4 , llvm::codeview::Pentium = 0x5 , llvm::codeview::PentiumPro = 0x6 , llvm::codeview::Pentium3 = 0x7 , llvm::codeview::MIPS = 0x10 , llvm::codeview::MIPS16 = 0x11 , llvm::codeview::MIPS32 = 0x12 , llvm::codeview::MIPS64 = 0x13 , llvm::codeview::MIPSI = 0x14 , llvm::codeview::MIPSII = 0x15 , llvm::codeview::MIPSIII = 0x16 , llvm::codeview::MIPSIV = 0x17 , llvm::codeview::MIPSV = 0x18 , llvm::codeview::M68000 = 0x20 , llvm::codeview::M68010 = 0x21 , llvm::codeview::M68020 = 0x22 , llvm::codeview::M68030 = 0x23 , llvm::codeview::M68040 = 0x24 , llvm::codeview::Alpha = 0x30 , llvm::codeview::Alpha21164 = 0x31 , llvm::codeview::Alpha21164A = 0x32 , llvm::codeview::Alpha21264 = 0x33 , llvm::codeview::Alpha21364 = 0x34 , llvm::codeview::PPC601 = 0x40 , llvm::codeview::PPC603 = 0x41 , llvm::codeview::PPC604 = 0x42 , llvm::codeview::PPC620 = 0x43 , llvm::codeview::PPCFP = 0x44 , llvm::codeview::PPCBE = 0x45 , llvm::codeview::SH3 = 0x50 , llvm::codeview::SH3E = 0x51 , llvm::codeview::SH3DSP = 0x52 , llvm::codeview::SH4 = 0x53 , llvm::codeview::SHMedia = 0x54 , llvm::codeview::ARM3 = 0x60 , llvm::codeview::ARM4 = 0x61 , llvm::codeview::ARM4T = 0x62 , llvm::codeview::ARM5 = 0x63 , llvm::codeview::ARM5T = 0x64 , llvm::codeview::ARM6 = 0x65 , llvm::codeview::ARM_XMAC = 0x66 , llvm::codeview::ARM_WMMX = 0x67 , llvm::codeview::ARM7 = 0x68 , llvm::codeview::Omni = 0x70 , llvm::codeview::Ia64 = 0x80 , llvm::codeview::Ia64_2 = 0x81 , llvm::codeview::CEE = 0x90 , llvm::codeview::AM33 = 0xa0 , llvm::codeview::M32R = 0xb0 , llvm::codeview::TriCore = 0xc0 , llvm::codeview::X64 = 0xd0 , llvm::codeview::EBC = 0xe0 , llvm::codeview::Thumb = 0xf0 , llvm::codeview::ARMNT = 0xf4 , llvm::codeview::ARM64 = 0xf6 , llvm::codeview::HybridX86ARM64 = 0xf7 , llvm::codeview::ARM64EC = 0xf8 , llvm::codeview::ARM64X = 0xf9 , llvm::codeview::Unknown = 0xff , llvm::codeview::D3D11_Shader = 0x100 }
These values correspond to the CV_CPU_TYPE_e enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/b2fc64ek.aspx. More...
enum llvm::codeview::SourceLanguage : uint8_t { llvm::codeview::C = 0x00 , llvm::codeview::Cpp = 0x01 , llvm::codeview::Fortran = 0x02 , llvm::codeview::Masm = 0x03 , llvm::codeview::Pascal = 0x04 , llvm::codeview::Basic = 0x05 , llvm::codeview::Cobol = 0x06 , llvm::codeview::Link = 0x07 , llvm::codeview::Cvtres = 0x08 , llvm::codeview::Cvtpgd = 0x09 , llvm::codeview::CSharp = 0x0a , llvm::codeview::VB = 0x0b , llvm::codeview::ILAsm = 0x0c , llvm::codeview::Java = 0x0d , llvm::codeview::JScript = 0x0e , llvm::codeview::MSIL = 0x0f , llvm::codeview::HLSL = 0x10 , llvm::codeview::ObjC = 0x11 , llvm::codeview::ObjCpp = 0x12 , llvm::codeview::Swift = 0x13 , llvm::codeview::AliasObj = 0x14 , llvm::codeview::Rust = 0x15 , llvm::codeview::Go = 0x16 , llvm::codeview::D = 'D' , llvm::codeview::OldSwift = 'S' }
These values correspond to the CV_CFL_LANG enumeration in the Microsoft Debug Interface Access SDK, and are documented here: https://learn.microsoft.com/en-us/visualstudio/debugger/debug-interface-access/cv-cfl-lang. More...
enum class llvm::codeview::CallingConvention : uint8_t { llvm::codeview::NearC = 0x00 , llvm::codeview::FarC = 0x01 , llvm::codeview::NearPascal = 0x02 , llvm::codeview::FarPascal = 0x03 , llvm::codeview::NearFast = 0x04 , llvm::codeview::FarFast = 0x05 , llvm::codeview::NearStdCall = 0x07 , llvm::codeview::FarStdCall = 0x08 , llvm::codeview::NearSysCall = 0x09 , llvm::codeview::FarSysCall = 0x0a , llvm::codeview::ThisCall = 0x0b , llvm::codeview::MipsCall = 0x0c , llvm::codeview::Generic = 0x0d , llvm::codeview::AlphaCall = 0x0e , llvm::codeview::PpcCall = 0x0f , llvm::codeview::SHCall = 0x10 , llvm::codeview::ArmCall = 0x11 , llvm::codeview::AM33Call = 0x12 , llvm::codeview::TriCall = 0x13 , llvm::codeview::SH5Call = 0x14 , llvm::codeview::M32RCall = 0x15 , llvm::codeview::ClrCall = 0x16 , llvm::codeview::Inline, llvm::codeview::NearVector = 0x18 , llvm::codeview::Swift = 0x19 }
These values correspond to the CV_call_e enumeration, and are documented at the following locations: https://msdn.microsoft.com/en-us/library/b2fc64ek.aspx https://msdn.microsoft.com/en-us/library/windows/desktop/ms680207(v=vs.85).aspx. More...
enum class llvm::codeview::ClassOptions : uint16_t { llvm::codeview::None = 0x0000 , llvm::codeview::Packed = 0x0001 , llvm::codeview::HasConstructorOrDestructor = 0x0002 , llvm::codeview::HasOverloadedOperator = 0x0004 , llvm::codeview::Nested = 0x0008 , llvm::codeview::ContainsNestedClass = 0x0010 , llvm::codeview::HasOverloadedAssignmentOperator = 0x0020 , llvm::codeview::HasConversionOperator = 0x0040 , llvm::codeview::ForwardReference = 0x0080 , llvm::codeview::Scoped = 0x0100 , llvm::codeview::HasUniqueName = 0x0200 , llvm::codeview::Sealed = 0x0400 , llvm::codeview::Intrinsic = 0x2000 }
enum class llvm::codeview::FrameProcedureOptions : uint32_t { llvm::codeview::None = 0x00000000 , llvm::codeview::HasAlloca = 0x00000001 , llvm::codeview::HasSetJmp = 0x00000002 , llvm::codeview::HasLongJmp = 0x00000004 , llvm::codeview::HasInlineAssembly = 0x00000008 , llvm::codeview::HasExceptionHandling = 0x00000010 , llvm::codeview::MarkedInline = 0x00000020 , llvm::codeview::HasStructuredExceptionHandling = 0x00000040 , llvm::codeview::Naked = 0x00000080 , llvm::codeview::SecurityChecks = 0x00000100 , llvm::codeview::AsynchronousExceptionHandling = 0x00000200 , llvm::codeview::NoStackOrderingForSecurityChecks = 0x00000400 , llvm::codeview::Inlined = 0x00000800 , llvm::codeview::StrictSecurityChecks = 0x00001000 , llvm::codeview::SafeBuffers = 0x00002000 , llvm::codeview::EncodedLocalBasePointerMask = 0x0000C000 , llvm::codeview::EncodedParamBasePointerMask = 0x00030000 , llvm::codeview::ProfileGuidedOptimization = 0x00040000 , llvm::codeview::ValidProfileCounts = 0x00080000 , llvm::codeview::OptimizedForSpeed = 0x00100000 , llvm::codeview::GuardCfg = 0x00200000 , llvm::codeview::GuardCfw = 0x00400000 }
enum class llvm::codeview::FunctionOptions : uint8_t { llvm::codeview::None = 0x00 , llvm::codeview::CxxReturnUdt = 0x01 , llvm::codeview::Constructor = 0x02 , llvm::codeview::ConstructorWithVirtualBases = 0x04 }
enum class llvm::codeview::HfaKind : uint8_t { llvm::codeview::None = 0x00 , llvm::codeview::Float = 0x01 , llvm::codeview::Double = 0x02 , llvm::codeview::Other = 0x03 }
enum class llvm::codeview::MemberAccess : uint8_t { llvm::codeview::None = 0 , llvm::codeview::Private = 1 , llvm::codeview::Protected = 2 , llvm::codeview::Public = 3 }
Source-level access specifier. (CV_access_e) More...
enum class llvm::codeview::MethodKind : uint8_t { llvm::codeview::Vanilla = 0x00 , llvm::codeview::Virtual = 0x01 , llvm::codeview::Static = 0x02 , llvm::codeview::Friend = 0x03 , llvm::codeview::IntroducingVirtual = 0x04 , llvm::codeview::PureVirtual = 0x05 , llvm::codeview::PureIntroducingVirtual = 0x06 }
Part of member attribute flags. (CV_methodprop_e) More...
enum class llvm::codeview::MethodOptions : uint16_t { llvm::codeview::None = 0x0000 , llvm::codeview::AccessMask = 0x0003 , llvm::codeview::MethodKindMask = 0x001c , llvm::codeview::Pseudo = 0x0020 , llvm::codeview::NoInherit = 0x0040 , llvm::codeview::NoConstruct = 0x0080 , llvm::codeview::CompilerGenerated = 0x0100 , llvm::codeview::Sealed = 0x0200 }
Equivalent to CV_fldattr_t bitfield. More...
enum class llvm::codeview::LabelType : uint16_t { llvm::codeview::Near = 0x0 , llvm::codeview::Far = 0x4 }
Equivalent to CV_LABEL_TYPE_e. More...
enum class llvm::codeview::ModifierOptions : uint16_t { llvm::codeview::None = 0x0000 , llvm::codeview::Const = 0x0001 , llvm::codeview::Volatile = 0x0002 , llvm::codeview::Unaligned = 0x0004 }
Equivalent to CV_modifier_t. More...
enum : uint32_t { llvm::codeview::SubsectionIgnoreFlag = 0x80000000 }
enum class llvm::codeview::DebugSubsectionKind : uint32_t { llvm::codeview::None = 0 , llvm::codeview::Symbols = 0xf1 , llvm::codeview::Lines = 0xf2 , llvm::codeview::StringTable = 0xf3 , llvm::codeview::FileChecksums = 0xf4 , llvm::codeview::FrameData = 0xf5 , llvm::codeview::InlineeLines = 0xf6 , llvm::codeview::CrossScopeImports = 0xf7 , llvm::codeview::CrossScopeExports = 0xf8 , llvm::codeview::ILLines = 0xf9 , llvm::codeview::FuncMDTokenMap = 0xfa , llvm::codeview::TypeMDTokenMap = 0xfb , llvm::codeview::MergedAssemblyInput = 0xfc , llvm::codeview::CoffSymbolRVA = 0xfd , llvm::codeview::XfgHashType = 0xff , llvm::codeview::XfgHashVirtual = 0x100 }
enum class llvm::codeview::PointerKind : uint8_t { llvm::codeview::Near16 = 0x00 , llvm::codeview::Far16 = 0x01 , llvm::codeview::Huge16 = 0x02 , llvm::codeview::BasedOnSegment = 0x03 , llvm::codeview::BasedOnValue = 0x04 , llvm::codeview::BasedOnSegmentValue = 0x05 , llvm::codeview::BasedOnAddress = 0x06 , llvm::codeview::BasedOnSegmentAddress = 0x07 , llvm::codeview::BasedOnType = 0x08 , llvm::codeview::BasedOnSelf = 0x09 , llvm::codeview::Near32 = 0x0a , llvm::codeview::Far32 = 0x0b , llvm::codeview::Near64 = 0x0c }
Equivalent to CV_ptrtype_e. More...
enum class llvm::codeview::PointerMode : uint8_t { llvm::codeview::Pointer = 0x00 , llvm::codeview::LValueReference = 0x01 , llvm::codeview::PointerToDataMember = 0x02 , llvm::codeview::PointerToMemberFunction = 0x03 , llvm::codeview::RValueReference = 0x04 }
Equivalent to CV_ptrmode_e. More...
enum class llvm::codeview::PointerOptions : uint32_t { llvm::codeview::None = 0x00000000 , llvm::codeview::Flat32 = 0x00000100 , llvm::codeview::Volatile = 0x00000200 , llvm::codeview::Const = 0x00000400 , llvm::codeview::Unaligned = 0x00000800 , llvm::codeview::Restrict = 0x00001000 , llvm::codeview::WinRTSmartPointer = 0x00080000 , llvm::codeview::LValueRefThisPointer = 0x00100000 , llvm::codeview::RValueRefThisPointer = 0x00200000 }
Equivalent to misc lfPointerAttr bitfields. More...
enum class llvm::codeview::PointerToMemberRepresentation : uint16_t { llvm::codeview::Unknown = 0x00 , llvm::codeview::SingleInheritanceData = 0x01 , llvm::codeview::MultipleInheritanceData = 0x02 , llvm::codeview::VirtualInheritanceData = 0x03 , llvm::codeview::GeneralData = 0x04 , llvm::codeview::SingleInheritanceFunction = 0x05 , llvm::codeview::MultipleInheritanceFunction = 0x06 , llvm::codeview::VirtualInheritanceFunction = 0x07 , llvm::codeview::GeneralFunction = 0x08 }
Equivalent to CV_pmtype_e. More...
enum class llvm::codeview::VFTableSlotKind : uint8_t { llvm::codeview::Near16 = 0x00 , llvm::codeview::Far16 = 0x01 , llvm::codeview::This = 0x02 , llvm::codeview::Outer = 0x03 , llvm::codeview::Meta = 0x04 , llvm::codeview::Near = 0x05 , llvm::codeview::Far = 0x06 }
enum class llvm::codeview::WindowsRTClassKind : uint8_t { llvm::codeview::None = 0x00 , llvm::codeview::RefClass = 0x01 , llvm::codeview::ValueClass = 0x02 , llvm::codeview::Interface = 0x03 }
enum class llvm::codeview::LocalSymFlags : uint16_t { llvm::codeview::None = 0 , llvm::codeview::IsParameter = 1 << 0 , llvm::codeview::IsAddressTaken = 1 << 1 , llvm::codeview::IsCompilerGenerated = 1 << 2 , llvm::codeview::IsAggregate = 1 << 3 , llvm::codeview::IsAggregated = 1 << 4 , llvm::codeview::IsAliased = 1 << 5 , llvm::codeview::IsAlias = 1 << 6 , llvm::codeview::IsReturnValue = 1 << 7 , llvm::codeview::IsOptimizedOut = 1 << 8 , llvm::codeview::IsEnregisteredGlobal = 1 << 9 , llvm::codeview::IsEnregisteredStatic = 1 << 10 }
Corresponds to CV_LVARFLAGS bitfield. More...
enum class llvm::codeview::PublicSymFlags : uint32_t { llvm::codeview::None = 0 , llvm::codeview::Code = 1 << 0 , llvm::codeview::Function = 1 << 1 , llvm::codeview::Managed = 1 << 2 , llvm::codeview::MSIL = 1 << 3 }
Corresponds to the CV_PUBSYMFLAGS bitfield. More...
enum class llvm::codeview::ProcSymFlags : uint8_t { llvm::codeview::None = 0 , llvm::codeview::HasFP = 1 << 0 , llvm::codeview::HasIRET = 1 << 1 , llvm::codeview::HasFRET = 1 << 2 , llvm::codeview::IsNoReturn = 1 << 3 , llvm::codeview::IsUnreachable = 1 << 4 , llvm::codeview::HasCustomCallingConv = 1 << 5 , llvm::codeview::IsNoInline = 1 << 6 , llvm::codeview::HasOptimizedDebugInfo = 1 << 7 }
Corresponds to the CV_PROCFLAGS bitfield. More...
enum class llvm::codeview::CompileSym2Flags : uint32_t { llvm::codeview::None = 0 , llvm::codeview::SourceLanguageMask = 0xFF , llvm::codeview::EC = 1 << 8 , llvm::codeview::NoDbgInfo = 1 << 9 , llvm::codeview::LTCG = 1 << 10 , llvm::codeview::NoDataAlign = 1 << 11 , llvm::codeview::ManagedPresent = 1 << 12 , llvm::codeview::SecurityChecks = 1 << 13 , llvm::codeview::HotPatch = 1 << 14 , llvm::codeview::CVTCIL = 1 << 15 , llvm::codeview::MSILModule = 1 << 16 }
Corresponds to COMPILESYM2::Flags bitfield. More...
enum class llvm::codeview::CompileSym3Flags : uint32_t { llvm::codeview::None = 0 , llvm::codeview::SourceLanguageMask = 0xFF , llvm::codeview::EC = 1 << 8 , llvm::codeview::NoDbgInfo = 1 << 9 , llvm::codeview::LTCG = 1 << 10 , llvm::codeview::NoDataAlign = 1 << 11 , llvm::codeview::ManagedPresent = 1 << 12 , llvm::codeview::SecurityChecks = 1 << 13 , llvm::codeview::HotPatch = 1 << 14 , llvm::codeview::CVTCIL = 1 << 15 , llvm::codeview::MSILModule = 1 << 16 , llvm::codeview::Sdl = 1 << 17 , llvm::codeview::PGO = 1 << 18 , llvm::codeview::Exp = 1 << 19 }
Corresponds to COMPILESYM3::Flags bitfield. More...
enum class llvm::codeview::ExportFlags : uint16_t { llvm::codeview::None = 0 , llvm::codeview::IsConstant = 1 << 0 , llvm::codeview::IsData = 1 << 1 , llvm::codeview::IsPrivate = 1 << 2 , llvm::codeview::HasNoName = 1 << 3 , llvm::codeview::HasExplicitOrdinal = 1 << 4 , llvm::codeview::IsForwarder = 1 << 5 }
enum class llvm::codeview::BinaryAnnotationsOpCode : uint32_t { llvm::codeview::Invalid, llvm::codeview::CodeOffset, llvm::codeview::ChangeCodeOffsetBase, llvm::codeview::ChangeCodeOffset, llvm::codeview::ChangeCodeLength, llvm::codeview::ChangeFile, llvm::codeview::ChangeLineOffset, llvm::codeview::ChangeLineEndDelta, llvm::codeview::ChangeRangeKind, llvm::codeview::ChangeColumnStart, llvm::codeview::ChangeColumnEndDelta, llvm::codeview::ChangeCodeOffsetAndLineOffset, llvm::codeview::ChangeCodeLengthAndCodeOffset, llvm::codeview::ChangeColumnEnd }
enum class llvm::codeview::FrameCookieKind : uint8_t { llvm::codeview::Copy, llvm::codeview::XorStackPointer, llvm::codeview::XorFramePointer, llvm::codeview::XorR13 }
enum class llvm::codeview::RegisterId : uint16_t { llvm::codeview::CV_REGISTERS_ALL, llvm::codeview::CV_REGISTER }
enum class llvm::codeview::EncodedFramePtrReg : uint8_t { llvm::codeview::None = 0 , llvm::codeview::StackPtr = 1 , llvm::codeview::FramePtr = 2 , llvm::codeview::BasePtr = 3 }
Two-bit value indicating which register is the designated frame pointer register. More...
enum class llvm::codeview::ThunkOrdinal : uint8_t { llvm::codeview::Standard, llvm::codeview::ThisAdjustor, llvm::codeview::Vcall, llvm::codeview::Pcode, llvm::codeview::UnknownLoad, llvm::codeview::TrampIncremental, llvm::codeview::BranchIsland }
These values correspond to the THUNK_ORDINAL enumeration. More...
enum class llvm::codeview::TrampolineType : uint16_t { llvm::codeview::TrampIncremental, llvm::codeview::BranchIsland }
enum class llvm::codeview::FileChecksumKind : uint8_t { llvm::codeview::None, llvm::codeview::MD5, llvm::codeview::SHA1, llvm::codeview::SHA256 }
enum llvm::codeview::LineFlags : uint16_t { llvm::codeview::LF_None = 0 , llvm::codeview::LF_HaveColumns = 1 }
enum class llvm::codeview::CodeViewContainer { llvm::codeview::ObjectFile, llvm::codeview::Pdb }
enum class llvm::codeview::JumpTableEntrySize : uint16_t { llvm::codeview::Int8 = 0 , llvm::codeview::UInt8 = 1 , llvm::codeview::Int16 = 2 , llvm::codeview::UInt16 = 3 , llvm::codeview::Int32 = 4 , llvm::codeview::UInt32 = 5 , llvm::codeview::Pointer = 6 , llvm::codeview::UInt8ShiftLeft = 7 , llvm::codeview::UInt16ShiftLeft = 8 , llvm::codeview::Int8ShiftLeft = 9 , llvm::codeview::Int16ShiftLeft = 10 }
Functions
RegisterId llvm::codeview::decodeFramePtrReg (EncodedFramePtrReg EncodedReg, CPUType CPU)
EncodedFramePtrReg llvm::codeview::encodeFramePtrReg (RegisterId Reg, CPUType CPU)
uint32_t llvm::codeview::alignOf (CodeViewContainer Container)

CV_DEFINE_ENUM_CLASS_FLAGS_OPERATORS

| #define CV_DEFINE_ENUM_CLASS_FLAGS_OPERATORS | ( | | Class | ) | | ------------------------------------------------- | - | | ----- | - |

Value:

inline Class operator|(Class a, Class b) { \

llvm::to_underlying(b)); \

} \

inline Class operator&(Class a, Class b) { \

llvm::to_underlying(b)); \

} \

return static_cast<Class>(~llvm::to_underlying(a)); \

} \

a = a | b; \

return a; \

} \

a = a & b; \

return a; \

}

Qualifiers operator|=(Qualifiers &Q1, Qualifiers Q2)

E & operator&=(E &LHS, E RHS)

This is an optimization pass for GlobalISel generic memory operations.

APInt operator~(APInt v)

Unary bitwise complement operator.

constexpr std::underlying_type_t< Enum > to_underlying(Enum E)

Returns underlying integer value of an enum.

Definition at line 53 of file CodeView.h.

CV_REGISTER

CV_REGISTERS_ALL

CV_SYMBOL

| #define CV_SYMBOL | ( | | name, | | ------------------ | ------------------------------------------------------------------------ | | ----------------------------------------------------------------- | | | val | | | | | ) | name = val, | | |

CV_TYPE

| #define CV_TYPE | ( | | name, | | ---------------- | ------------------------------------------------------------------------ | | ----------------------------------------------------------------- | | | val | | | | | ) | name = val, | | |

SYMBOL_RECORD

TYPE_RECORD