[lld] r316461 - [codeview] Fix handling of S_HEAPALLOCSITE

Reid Kleckner via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 24 10:02:40 PDT 2017


Author: rnk
Date: Tue Oct 24 10:02:40 2017
New Revision: 316461

URL: http://llvm.org/viewvc/llvm-project?rev=316461&view=rev
Log:
[codeview] Fix handling of S_HEAPALLOCSITE

The type index is from the TPI stream, not the IPI stream. Fix the
dumper, fix type index discovery, and add a test in LLD.

Also improve the log message we emit when we fail to rewrite type
indices in LLD. That's how I found this bug.

Added:
    lld/trunk/test/COFF/pdb-heapsite.yaml
Modified:
    lld/trunk/COFF/PDB.cpp

Modified: lld/trunk/COFF/PDB.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/PDB.cpp?rev=316461&r1=316460&r2=316461&view=diff
==============================================================================
--- lld/trunk/COFF/PDB.cpp (original)
+++ lld/trunk/COFF/PDB.cpp Tue Oct 24 10:02:40 2017
@@ -305,7 +305,7 @@ static bool remapTypeIndex(TypeIndex &TI
   return true;
 }
 
-static void remapTypesInSymbolRecord(ObjFile *File,
+static void remapTypesInSymbolRecord(ObjFile *File, SymbolKind SymKind,
                                      MutableArrayRef<uint8_t> Contents,
                                      const CVIndexMap &IndexMap,
                                      const TypeTableBuilder &IDTable,
@@ -317,15 +317,17 @@ static void remapTypesInSymbolRecord(Obj
 
     // This can be an item index or a type index. Choose the appropriate map.
     ArrayRef<TypeIndex> TypeOrItemMap = IndexMap.TPIMap;
-    if (Ref.Kind == TiRefKind::IndexRef && IndexMap.IsTypeServerMap)
+    bool IsItemIndex = Ref.Kind == TiRefKind::IndexRef;
+    if (IsItemIndex && IndexMap.IsTypeServerMap)
       TypeOrItemMap = IndexMap.IPIMap;
 
     MutableArrayRef<TypeIndex> TIs(
         reinterpret_cast<TypeIndex *>(Contents.data() + Ref.Offset), Ref.Count);
     for (TypeIndex &TI : TIs) {
       if (!remapTypeIndex(TI, TypeOrItemMap)) {
-        log("ignoring symbol record in " + File->getName() +
-            " with bad type index 0x" + utohexstr(TI.getIndex()));
+        log("ignoring symbol record of kind 0x" + utohexstr(SymKind) + " in " +
+            File->getName() + " with bad " + (IsItemIndex ? "item" : "type") +
+            " index 0x" + utohexstr(TI.getIndex()));
         TI = TypeIndex(SimpleTypeKind::NotTranslated);
         continue;
       }
@@ -571,7 +573,8 @@ static void mergeSymbolRecords(BumpPtrAl
     // Re-map all the type index references.
     MutableArrayRef<uint8_t> Contents =
         NewData.drop_front(sizeof(RecordPrefix));
-    remapTypesInSymbolRecord(File, Contents, IndexMap, IDTable, TypeRefs);
+    remapTypesInSymbolRecord(File, Sym.kind(), Contents, IndexMap, IDTable,
+                             TypeRefs);
 
     // An object file may have S_xxx_ID symbols, but these get converted to
     // "real" symbols in a PDB.

Added: lld/trunk/test/COFF/pdb-heapsite.yaml
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/pdb-heapsite.yaml?rev=316461&view=auto
==============================================================================
--- lld/trunk/test/COFF/pdb-heapsite.yaml (added)
+++ lld/trunk/test/COFF/pdb-heapsite.yaml Tue Oct 24 10:02:40 2017
@@ -0,0 +1,1561 @@
+# RUN: yaml2obj %s -o %t.obj
+# RUN: lld-link %t.obj -dll -debug -noentry -nodefaultlib -debug -out:%t.exe -pdb:%t.pdb
+# RUN: llvm-pdbutil dump -symbols %t.pdb | FileCheck %s
+
+# This object generated from this C++ source:
+# // t.cpp
+# void *operator new(size_t) { return nullptr; }
+# struct Foo { int x; };
+# extern "C" __declspec(dllexport) Foo *f() { return new Foo; }
+
+# Compile as:
+# $ cl -c -Z7 t.cpp
+
+# CHECK: S_HEAPALLOCSITE [size = 16]
+# CHECK-NEXT:   type = 0x1000 (Foo), addr = {{.*}} call size = 5
+
+--- !COFF
+header:
+  Machine:         IMAGE_FILE_MACHINE_AMD64
+  Characteristics: [  ]
+sections:
+  - Name:            .drectve
+    Characteristics: [ IMAGE_SCN_LNK_INFO, IMAGE_SCN_LNK_REMOVE ]
+    Alignment:       1
+    SectionData:     2020202F44454641554C544C49423A224C4942434D5422202F44454641554C544C49423A224F4C444E414D455322202F4558504F52543A6620
+  - Name:            '.debug$S'
+    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ]
+    Alignment:       1
+    Subsections:
+      - !Symbols
+        Records:
+          - Kind:            S_OBJNAME
+            ObjNameSym:
+              Signature:       0
+              ObjectName:      'C:\src\llvm-project\build\t.obj'
+          - Kind:            S_COMPILE3
+            Compile3Sym:
+              Flags:           [ SecurityChecks, HotPatch ]
+              Machine:         X64
+              FrontendMajor:   19
+              FrontendMinor:   11
+              FrontendBuild:   25508
+              FrontendQFE:     2
+              BackendMajor:    19
+              BackendMinor:    11
+              BackendBuild:    25508
+              BackendQFE:      2
+              Version:         'Microsoft (R) Optimizing Compiler'
+      - !Symbols
+        Records:
+          - Kind:            S_GPROC32_ID
+            ProcSym:
+              CodeSize:        8
+              DbgStart:        5
+              DbgEnd:          7
+              FunctionType:    4104
+              Flags:           [  ]
+              DisplayName:     operator new
+          - Kind:            S_FRAMEPROC
+            FrameProcSym:
+              TotalFrameBytes: 0
+              PaddingFrameBytes: 0
+              OffsetToPadding: 0
+              BytesOfCalleeSavedRegisters: 0
+              OffsetOfExceptionHandler: 0
+              SectionIdOfExceptionHandler: 0
+              Flags:           [ AsynchronousExceptionHandling, OptimizedForSpeed ]
+          - Kind:            S_REGREL32
+            RegRelativeSym:
+              Offset:          8
+              Type:            35
+              Register:        RSP
+              VarName:         __formal
+          - Kind:            S_PROC_ID_END
+            ScopeEndSym:
+      - !Lines
+        CodeSize:        8
+        Flags:           [  ]
+        RelocOffset:     0
+        RelocSegment:    0
+        Blocks:
+          - FileName:        'c:\src\llvm-project\build\t.cpp'
+            Lines:
+              - Offset:          0
+                LineStart:       1
+                IsStatement:     true
+                EndDelta:        0
+            Columns:
+      - !Symbols
+        Records:
+          - Kind:            S_GPROC32_ID
+            ProcSym:
+              CodeSize:        29
+              DbgStart:        4
+              DbgEnd:          24
+              FunctionType:    4107
+              Flags:           [  ]
+              DisplayName:     f
+          - Kind:            S_FRAMEPROC
+            FrameProcSym:
+              TotalFrameBytes: 56
+              PaddingFrameBytes: 0
+              OffsetToPadding: 0
+              BytesOfCalleeSavedRegisters: 0
+              OffsetOfExceptionHandler: 0
+              SectionIdOfExceptionHandler: 0
+              Flags:           [ AsynchronousExceptionHandling, OptimizedForSpeed ]
+          - Kind:            S_HEAPALLOCSITE
+            HeapAllocationSiteSym:
+              Offset:          9
+              CallInstructionSize: 5
+              Type:            4096
+          - Kind:            S_PROC_ID_END
+            ScopeEndSym:
+      - !Lines
+        CodeSize:        29
+        Flags:           [  ]
+        RelocOffset:     0
+        RelocSegment:    0
+        Blocks:
+          - FileName:        'c:\src\llvm-project\build\t.cpp'
+            Lines:
+              - Offset:          0
+                LineStart:       3
+                IsStatement:     true
+                EndDelta:        0
+            Columns:
+      - !Symbols
+        Records:
+          - Kind:            S_UDT
+            UDTSym:
+              Type:            4098
+              UDTName:         Foo
+          - Kind:            S_UDT
+            UDTSym:
+              Type:            4196
+              UDTName:         '__vc_attributes::event_sourceAttribute'
+          - Kind:            S_UDT
+            UDTSym:
+              Type:            4188
+              UDTName:         '__vc_attributes::event_sourceAttribute::optimize_e'
+          - Kind:            S_UDT
+            UDTSym:
+              Type:            4185
+              UDTName:         '__vc_attributes::event_sourceAttribute::type_e'
+          - Kind:            S_UDT
+            UDTSym:
+              Type:            4181
+              UDTName:         '__vc_attributes::helper_attributes::v1_alttypeAttribute'
+          - Kind:            S_UDT
+            UDTSym:
+              Type:            4175
+              UDTName:         '__vc_attributes::helper_attributes::v1_alttypeAttribute::type_e'
+          - Kind:            S_UDT
+            UDTSym:
+              Type:            4171
+              UDTName:         '__vc_attributes::helper_attributes::usageAttribute'
+          - Kind:            S_UDT
+            UDTSym:
+              Type:            4165
+              UDTName:         '__vc_attributes::helper_attributes::usageAttribute::usage_e'
+          - Kind:            S_UDT
+            UDTSym:
+              Type:            4161
+              UDTName:         '__vc_attributes::threadingAttribute'
+          - Kind:            S_UDT
+            UDTSym:
+              Type:            4153
+              UDTName:         '__vc_attributes::threadingAttribute::threading_e'
+          - Kind:            S_UDT
+            UDTSym:
+              Type:            4149
+              UDTName:         '__vc_attributes::aggregatableAttribute'
+          - Kind:            S_UDT
+            UDTSym:
+              Type:            4141
+              UDTName:         '__vc_attributes::aggregatableAttribute::type_e'
+          - Kind:            S_UDT
+            UDTSym:
+              Type:            4137
+              UDTName:         '__vc_attributes::event_receiverAttribute'
+          - Kind:            S_UDT
+            UDTSym:
+              Type:            4127
+              UDTName:         '__vc_attributes::event_receiverAttribute::type_e'
+          - Kind:            S_UDT
+            UDTSym:
+              Type:            4123
+              UDTName:         '__vc_attributes::moduleAttribute'
+          - Kind:            S_UDT
+            UDTSym:
+              Type:            4110
+              UDTName:         '__vc_attributes::moduleAttribute::type_e'
+          - Kind:            S_UDT
+            UDTSym:
+              Type:            35
+              UDTName:         size_t
+      - !FileChecksums
+        Checksums:
+          - FileName:        'c:\src\llvm-project\build\t.cpp'
+            Kind:            MD5
+            Checksum:        3C4D132707FA572FA0869E4E4DAA7F85
+      - !StringTable
+        Strings:
+          - 'c:\src\llvm-project\build\t.cpp'
+      - !Symbols
+        Records:
+          - Kind:            S_BUILDINFO
+            BuildInfoSym:
+              BuildId:         4205
+    Relocations:
+      - VirtualAddress:  152
+        SymbolName:      '??2 at YAPEAX_K@Z'
+        Type:            IMAGE_REL_AMD64_SECREL
+      - VirtualAddress:  156
+        SymbolName:      '??2 at YAPEAX_K@Z'
+        Type:            IMAGE_REL_AMD64_SECTION
+      - VirtualAddress:  240
+        SymbolName:      '??2 at YAPEAX_K@Z'
+        Type:            IMAGE_REL_AMD64_SECREL
+      - VirtualAddress:  244
+        SymbolName:      '??2 at YAPEAX_K@Z'
+        Type:            IMAGE_REL_AMD64_SECTION
+      - VirtualAddress:  312
+        SymbolName:      f
+        Type:            IMAGE_REL_AMD64_SECREL
+      - VirtualAddress:  316
+        SymbolName:      f
+        Type:            IMAGE_REL_AMD64_SECTION
+      - VirtualAddress:  355
+        SymbolName:      f
+        Type:            IMAGE_REL_AMD64_SECREL
+      - VirtualAddress:  359
+        SymbolName:      f
+        Type:            IMAGE_REL_AMD64_SECTION
+      - VirtualAddress:  380
+        SymbolName:      f
+        Type:            IMAGE_REL_AMD64_SECREL
+      - VirtualAddress:  384
+        SymbolName:      f
+        Type:            IMAGE_REL_AMD64_SECTION
+  - Name:            '.debug$T'
+    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ]
+    Alignment:       1
+    Types:
+      - Kind:            LF_STRUCTURE
+        Class:
+          MemberCount:     0
+          Options:         [ None, ForwardReference, HasUniqueName ]
+          FieldList:       0
+          Name:            Foo
+          UniqueName:      '.?AUFoo@@'
+          DerivationList:  0
+          VTableShape:     0
+          Size:            0
+      - Kind:            LF_FIELDLIST
+        FieldList:
+          - Kind:            LF_MEMBER
+            DataMember:
+              Attrs:           3
+              Type:            116
+              FieldOffset:     0
+              Name:            x
+      - Kind:            LF_STRUCTURE
+        Class:
+          MemberCount:     1
+          Options:         [ None, HasUniqueName ]
+          FieldList:       4097
+          Name:            Foo
+          UniqueName:      '.?AUFoo@@'
+          DerivationList:  0
+          VTableShape:     0
+          Size:            4
+      - Kind:            LF_STRING_ID
+        StringId:
+          Id:              0
+          String:          'c:\src\llvm-project\build\t.cpp'
+      - Kind:            LF_UDT_SRC_LINE
+        UdtSourceLine:
+          UDT:             4098
+          SourceFile:      4099
+          LineNumber:      2
+      - Kind:            LF_POINTER
+        Pointer:
+          ReferentType:    4096
+          Attrs:           65548
+      - Kind:            LF_ARGLIST
+        ArgList:
+          ArgIndices:      [ 35 ]
+      - Kind:            LF_PROCEDURE
+        Procedure:
+          ReturnType:      1539
+          CallConv:        NearC
+          Options:         [ None ]
+          ParameterCount:  1
+          ArgumentList:    4102
+      - Kind:            LF_FUNC_ID
+        FuncId:
+          ParentScope:     0
+          FunctionType:    4103
+          Name:            operator new
+      - Kind:            LF_ARGLIST
+        ArgList:
+          ArgIndices:      [  ]
+      - Kind:            LF_PROCEDURE
+        Procedure:
+          ReturnType:      4101
+          CallConv:        NearC
+          Options:         [ None ]
+          ParameterCount:  0
+          ArgumentList:    4105
+      - Kind:            LF_FUNC_ID
+        FuncId:
+          ParentScope:     0
+          FunctionType:    4106
+          Name:            f
+      - Kind:            LF_STRUCTURE
+        Class:
+          MemberCount:     0
+          Options:         [ None, ForwardReference, HasUniqueName ]
+          FieldList:       0
+          Name:            '__vc_attributes::moduleAttribute'
+          UniqueName:      '.?AUmoduleAttribute at __vc_attributes@@'
+          DerivationList:  0
+          VTableShape:     0
+          Size:            0
+      - Kind:            LF_FIELDLIST
+        FieldList:
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           1
+              Name:            dll
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           2
+              Name:            exe
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           3
+              Name:            service
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           4
+              Name:            unspecified
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           2
+              Name:            EXE
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           3
+              Name:            SERVICE
+      - Kind:            LF_ENUM
+        Enum:
+          NumEnumerators:  6
+          Options:         [ None, Nested, HasUniqueName ]
+          FieldList:       4109
+          Name:            '__vc_attributes::moduleAttribute::type_e'
+          UniqueName:      '.?AW4type_e at moduleAttribute@__vc_attributes@@'
+          UnderlyingType:  116
+      - Kind:            LF_STRING_ID
+        StringId:
+          Id:              0
+          String:          'c:\src\llvm-project\build\predefined c++ attributes (compiler internal)'
+      - Kind:            LF_UDT_SRC_LINE
+        UdtSourceLine:
+          UDT:             4110
+          SourceFile:      4111
+          LineNumber:      482
+      - Kind:            LF_MODIFIER
+        Modifier:
+          ModifiedType:    112
+          Modifiers:       [ None, Const ]
+      - Kind:            LF_POINTER
+        Pointer:
+          ReferentType:    4113
+          Attrs:           65548
+      - Kind:            LF_ARGLIST
+        ArgList:
+          ArgIndices:      [ 4110, 4114, 4114, 4114, 116, 48, 4114, 116,
+                             4114, 4114, 116, 48, 48, 4114, 4114 ]
+      - Kind:            LF_POINTER
+        Pointer:
+          ReferentType:    4108
+          Attrs:           66572
+      - Kind:            LF_MFUNCTION
+        MemberFunction:
+          ReturnType:      3
+          ClassType:       4108
+          ThisType:        4116
+          CallConv:        NearC
+          Options:         [ None, Constructor ]
+          ParameterCount:  15
+          ArgumentList:    4115
+          ThisPointerAdjustment: 0
+      - Kind:            LF_ARGLIST
+        ArgList:
+          ArgIndices:      [ 4110 ]
+      - Kind:            LF_MFUNCTION
+        MemberFunction:
+          ReturnType:      3
+          ClassType:       4108
+          ThisType:        4116
+          CallConv:        NearC
+          Options:         [ None, Constructor ]
+          ParameterCount:  1
+          ArgumentList:    4118
+          ThisPointerAdjustment: 0
+      - Kind:            LF_MFUNCTION
+        MemberFunction:
+          ReturnType:      3
+          ClassType:       4108
+          ThisType:        4116
+          CallConv:        NearC
+          Options:         [ None, Constructor ]
+          ParameterCount:  0
+          ArgumentList:    4105
+          ThisPointerAdjustment: 0
+      - Kind:            LF_METHODLIST
+        MethodOverloadList:
+          Methods:
+            - Type:            4117
+              Attrs:           3
+              VFTableOffset:   -1
+              Name:            ''
+            - Type:            4119
+              Attrs:           3
+              VFTableOffset:   -1
+              Name:            ''
+            - Type:            4120
+              Attrs:           3
+              VFTableOffset:   -1
+              Name:            ''
+      - Kind:            LF_FIELDLIST
+        FieldList:
+          - Kind:            LF_NESTTYPE
+            NestedType:
+              Type:            4110
+              Name:            type_e
+          - Kind:            LF_METHOD
+            OverloadedMethod:
+              NumOverloads:    3
+              MethodList:      4121
+              Name:            moduleAttribute
+          - Kind:            LF_MEMBER
+            DataMember:
+              Attrs:           3
+              Type:            4110
+              FieldOffset:     0
+              Name:            type
+          - Kind:            LF_MEMBER
+            DataMember:
+              Attrs:           3
+              Type:            4114
+              FieldOffset:     8
+              Name:            name
+          - Kind:            LF_MEMBER
+            DataMember:
+              Attrs:           3
+              Type:            4114
+              FieldOffset:     16
+              Name:            version
+          - Kind:            LF_MEMBER
+            DataMember:
+              Attrs:           3
+              Type:            4114
+              FieldOffset:     24
+              Name:            uuid
+          - Kind:            LF_MEMBER
+            DataMember:
+              Attrs:           3
+              Type:            116
+              FieldOffset:     32
+              Name:            lcid
+          - Kind:            LF_MEMBER
+            DataMember:
+              Attrs:           3
+              Type:            48
+              FieldOffset:     36
+              Name:            control
+          - Kind:            LF_MEMBER
+            DataMember:
+              Attrs:           3
+              Type:            4114
+              FieldOffset:     40
+              Name:            helpstring
+          - Kind:            LF_MEMBER
+            DataMember:
+              Attrs:           3
+              Type:            116
+              FieldOffset:     48
+              Name:            helpstringcontext
+          - Kind:            LF_MEMBER
+            DataMember:
+              Attrs:           3
+              Type:            4114
+              FieldOffset:     56
+              Name:            helpstringdll
+          - Kind:            LF_MEMBER
+            DataMember:
+              Attrs:           3
+              Type:            4114
+              FieldOffset:     64
+              Name:            helpfile
+          - Kind:            LF_MEMBER
+            DataMember:
+              Attrs:           3
+              Type:            116
+              FieldOffset:     72
+              Name:            helpcontext
+          - Kind:            LF_MEMBER
+            DataMember:
+              Attrs:           3
+              Type:            48
+              FieldOffset:     76
+              Name:            hidden
+          - Kind:            LF_MEMBER
+            DataMember:
+              Attrs:           3
+              Type:            48
+              FieldOffset:     77
+              Name:            restricted
+          - Kind:            LF_MEMBER
+            DataMember:
+              Attrs:           3
+              Type:            4114
+              FieldOffset:     80
+              Name:            custom
+          - Kind:            LF_MEMBER
+            DataMember:
+              Attrs:           3
+              Type:            4114
+              FieldOffset:     88
+              Name:            resource_name
+      - Kind:            LF_STRUCTURE
+        Class:
+          MemberCount:     19
+          Options:         [ None, HasConstructorOrDestructor, ContainsNestedClass, HasUniqueName ]
+          FieldList:       4122
+          Name:            '__vc_attributes::moduleAttribute'
+          UniqueName:      '.?AUmoduleAttribute at __vc_attributes@@'
+          DerivationList:  0
+          VTableShape:     0
+          Size:            96
+      - Kind:            LF_UDT_SRC_LINE
+        UdtSourceLine:
+          UDT:             4123
+          SourceFile:      4111
+          LineNumber:      481
+      - Kind:            LF_STRUCTURE
+        Class:
+          MemberCount:     0
+          Options:         [ None, ForwardReference, HasUniqueName ]
+          FieldList:       0
+          Name:            '__vc_attributes::event_receiverAttribute'
+          UniqueName:      '.?AUevent_receiverAttribute at __vc_attributes@@'
+          DerivationList:  0
+          VTableShape:     0
+          Size:            0
+      - Kind:            LF_FIELDLIST
+        FieldList:
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           0
+              Name:            native
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           1
+              Name:            com
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           2
+              Name:            managed
+      - Kind:            LF_ENUM
+        Enum:
+          NumEnumerators:  3
+          Options:         [ None, Nested, HasUniqueName ]
+          FieldList:       4126
+          Name:            '__vc_attributes::event_receiverAttribute::type_e'
+          UniqueName:      '.?AW4type_e at event_receiverAttribute@__vc_attributes@@'
+          UnderlyingType:  116
+      - Kind:            LF_UDT_SRC_LINE
+        UdtSourceLine:
+          UDT:             4127
+          SourceFile:      4111
+          LineNumber:      136
+      - Kind:            LF_ARGLIST
+        ArgList:
+          ArgIndices:      [ 4127, 48 ]
+      - Kind:            LF_POINTER
+        Pointer:
+          ReferentType:    4125
+          Attrs:           66572
+      - Kind:            LF_MFUNCTION
+        MemberFunction:
+          ReturnType:      3
+          ClassType:       4125
+          ThisType:        4130
+          CallConv:        NearC
+          Options:         [ None, Constructor ]
+          ParameterCount:  2
+          ArgumentList:    4129
+          ThisPointerAdjustment: 0
+      - Kind:            LF_ARGLIST
+        ArgList:
+          ArgIndices:      [ 4127 ]
+      - Kind:            LF_MFUNCTION
+        MemberFunction:
+          ReturnType:      3
+          ClassType:       4125
+          ThisType:        4130
+          CallConv:        NearC
+          Options:         [ None, Constructor ]
+          ParameterCount:  1
+          ArgumentList:    4132
+          ThisPointerAdjustment: 0
+      - Kind:            LF_MFUNCTION
+        MemberFunction:
+          ReturnType:      3
+          ClassType:       4125
+          ThisType:        4130
+          CallConv:        NearC
+          Options:         [ None, Constructor ]
+          ParameterCount:  0
+          ArgumentList:    4105
+          ThisPointerAdjustment: 0
+      - Kind:            LF_METHODLIST
+        MethodOverloadList:
+          Methods:
+            - Type:            4131
+              Attrs:           3
+              VFTableOffset:   -1
+              Name:            ''
+            - Type:            4133
+              Attrs:           3
+              VFTableOffset:   -1
+              Name:            ''
+            - Type:            4134
+              Attrs:           3
+              VFTableOffset:   -1
+              Name:            ''
+      - Kind:            LF_FIELDLIST
+        FieldList:
+          - Kind:            LF_NESTTYPE
+            NestedType:
+              Type:            4127
+              Name:            type_e
+          - Kind:            LF_METHOD
+            OverloadedMethod:
+              NumOverloads:    3
+              MethodList:      4135
+              Name:            event_receiverAttribute
+          - Kind:            LF_MEMBER
+            DataMember:
+              Attrs:           3
+              Type:            4127
+              FieldOffset:     0
+              Name:            type
+          - Kind:            LF_MEMBER
+            DataMember:
+              Attrs:           3
+              Type:            48
+              FieldOffset:     4
+              Name:            layout_dependent
+      - Kind:            LF_STRUCTURE
+        Class:
+          MemberCount:     6
+          Options:         [ None, HasConstructorOrDestructor, ContainsNestedClass, HasUniqueName ]
+          FieldList:       4136
+          Name:            '__vc_attributes::event_receiverAttribute'
+          UniqueName:      '.?AUevent_receiverAttribute at __vc_attributes@@'
+          DerivationList:  0
+          VTableShape:     0
+          Size:            8
+      - Kind:            LF_UDT_SRC_LINE
+        UdtSourceLine:
+          UDT:             4137
+          SourceFile:      4111
+          LineNumber:      135
+      - Kind:            LF_STRUCTURE
+        Class:
+          MemberCount:     0
+          Options:         [ None, ForwardReference, HasUniqueName ]
+          FieldList:       0
+          Name:            '__vc_attributes::aggregatableAttribute'
+          UniqueName:      '.?AUaggregatableAttribute at __vc_attributes@@'
+          DerivationList:  0
+          VTableShape:     0
+          Size:            0
+      - Kind:            LF_FIELDLIST
+        FieldList:
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           0
+              Name:            never
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           1
+              Name:            allowed
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           2
+              Name:            always
+      - Kind:            LF_ENUM
+        Enum:
+          NumEnumerators:  3
+          Options:         [ None, Nested, HasUniqueName ]
+          FieldList:       4140
+          Name:            '__vc_attributes::aggregatableAttribute::type_e'
+          UniqueName:      '.?AW4type_e at aggregatableAttribute@__vc_attributes@@'
+          UnderlyingType:  116
+      - Kind:            LF_UDT_SRC_LINE
+        UdtSourceLine:
+          UDT:             4141
+          SourceFile:      4111
+          LineNumber:      545
+      - Kind:            LF_ARGLIST
+        ArgList:
+          ArgIndices:      [ 4141 ]
+      - Kind:            LF_POINTER
+        Pointer:
+          ReferentType:    4139
+          Attrs:           66572
+      - Kind:            LF_MFUNCTION
+        MemberFunction:
+          ReturnType:      3
+          ClassType:       4139
+          ThisType:        4144
+          CallConv:        NearC
+          Options:         [ None, Constructor ]
+          ParameterCount:  1
+          ArgumentList:    4143
+          ThisPointerAdjustment: 0
+      - Kind:            LF_MFUNCTION
+        MemberFunction:
+          ReturnType:      3
+          ClassType:       4139
+          ThisType:        4144
+          CallConv:        NearC
+          Options:         [ None, Constructor ]
+          ParameterCount:  0
+          ArgumentList:    4105
+          ThisPointerAdjustment: 0
+      - Kind:            LF_METHODLIST
+        MethodOverloadList:
+          Methods:
+            - Type:            4145
+              Attrs:           3
+              VFTableOffset:   -1
+              Name:            ''
+            - Type:            4146
+              Attrs:           3
+              VFTableOffset:   -1
+              Name:            ''
+      - Kind:            LF_FIELDLIST
+        FieldList:
+          - Kind:            LF_NESTTYPE
+            NestedType:
+              Type:            4141
+              Name:            type_e
+          - Kind:            LF_METHOD
+            OverloadedMethod:
+              NumOverloads:    2
+              MethodList:      4147
+              Name:            aggregatableAttribute
+          - Kind:            LF_MEMBER
+            DataMember:
+              Attrs:           3
+              Type:            4141
+              FieldOffset:     0
+              Name:            type
+      - Kind:            LF_STRUCTURE
+        Class:
+          MemberCount:     4
+          Options:         [ None, HasConstructorOrDestructor, ContainsNestedClass, HasUniqueName ]
+          FieldList:       4148
+          Name:            '__vc_attributes::aggregatableAttribute'
+          UniqueName:      '.?AUaggregatableAttribute at __vc_attributes@@'
+          DerivationList:  0
+          VTableShape:     0
+          Size:            4
+      - Kind:            LF_UDT_SRC_LINE
+        UdtSourceLine:
+          UDT:             4149
+          SourceFile:      4111
+          LineNumber:      544
+      - Kind:            LF_STRUCTURE
+        Class:
+          MemberCount:     0
+          Options:         [ None, ForwardReference, HasUniqueName ]
+          FieldList:       0
+          Name:            '__vc_attributes::threadingAttribute'
+          UniqueName:      '.?AUthreadingAttribute at __vc_attributes@@'
+          DerivationList:  0
+          VTableShape:     0
+          Size:            0
+      - Kind:            LF_FIELDLIST
+        FieldList:
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           1
+              Name:            apartment
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           2
+              Name:            single
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           3
+              Name:            free
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           4
+              Name:            neutral
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           5
+              Name:            both
+      - Kind:            LF_ENUM
+        Enum:
+          NumEnumerators:  5
+          Options:         [ None, Nested, HasUniqueName ]
+          FieldList:       4152
+          Name:            '__vc_attributes::threadingAttribute::threading_e'
+          UniqueName:      '.?AW4threading_e at threadingAttribute@__vc_attributes@@'
+          UnderlyingType:  116
+      - Kind:            LF_UDT_SRC_LINE
+        UdtSourceLine:
+          UDT:             4153
+          SourceFile:      4111
+          LineNumber:      423
+      - Kind:            LF_ARGLIST
+        ArgList:
+          ArgIndices:      [ 4153 ]
+      - Kind:            LF_POINTER
+        Pointer:
+          ReferentType:    4151
+          Attrs:           66572
+      - Kind:            LF_MFUNCTION
+        MemberFunction:
+          ReturnType:      3
+          ClassType:       4151
+          ThisType:        4156
+          CallConv:        NearC
+          Options:         [ None, Constructor ]
+          ParameterCount:  1
+          ArgumentList:    4155
+          ThisPointerAdjustment: 0
+      - Kind:            LF_MFUNCTION
+        MemberFunction:
+          ReturnType:      3
+          ClassType:       4151
+          ThisType:        4156
+          CallConv:        NearC
+          Options:         [ None, Constructor ]
+          ParameterCount:  0
+          ArgumentList:    4105
+          ThisPointerAdjustment: 0
+      - Kind:            LF_METHODLIST
+        MethodOverloadList:
+          Methods:
+            - Type:            4157
+              Attrs:           3
+              VFTableOffset:   -1
+              Name:            ''
+            - Type:            4158
+              Attrs:           3
+              VFTableOffset:   -1
+              Name:            ''
+      - Kind:            LF_FIELDLIST
+        FieldList:
+          - Kind:            LF_NESTTYPE
+            NestedType:
+              Type:            4153
+              Name:            threading_e
+          - Kind:            LF_METHOD
+            OverloadedMethod:
+              NumOverloads:    2
+              MethodList:      4159
+              Name:            threadingAttribute
+          - Kind:            LF_MEMBER
+            DataMember:
+              Attrs:           3
+              Type:            4153
+              FieldOffset:     0
+              Name:            value
+      - Kind:            LF_STRUCTURE
+        Class:
+          MemberCount:     4
+          Options:         [ None, HasConstructorOrDestructor, ContainsNestedClass, HasUniqueName ]
+          FieldList:       4160
+          Name:            '__vc_attributes::threadingAttribute'
+          UniqueName:      '.?AUthreadingAttribute at __vc_attributes@@'
+          DerivationList:  0
+          VTableShape:     0
+          Size:            4
+      - Kind:            LF_UDT_SRC_LINE
+        UdtSourceLine:
+          UDT:             4161
+          SourceFile:      4111
+          LineNumber:      422
+      - Kind:            LF_STRUCTURE
+        Class:
+          MemberCount:     0
+          Options:         [ None, ForwardReference, HasUniqueName ]
+          FieldList:       0
+          Name:            '__vc_attributes::helper_attributes::usageAttribute'
+          UniqueName:      '.?AUusageAttribute at helper_attributes@__vc_attributes@@'
+          DerivationList:  0
+          VTableShape:     0
+          Size:            0
+      - Kind:            LF_FIELDLIST
+        FieldList:
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           0
+              Name:            eAnyUsage
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           1
+              Name:            eCoClassUsage
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           2
+              Name:            eCOMInterfaceUsage
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           6
+              Name:            eInterfaceUsage
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           8
+              Name:            eMemberUsage
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           16
+              Name:            eMethodUsage
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           32
+              Name:            eInterfaceMethodUsage
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           64
+              Name:            eInterfaceMemberUsage
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           128
+              Name:            eCoClassMemberUsage
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           256
+              Name:            eCoClassMethodUsage
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           768
+              Name:            eGlobalMethodUsage
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           1024
+              Name:            eGlobalDataUsage
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           2048
+              Name:            eClassUsage
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           4096
+              Name:            eInterfaceParameterUsage
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           12288
+              Name:            eMethodParameterUsage
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           16384
+              Name:            eIDLModuleUsage
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           32768
+              Name:            eAnonymousUsage
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           65536
+              Name:            eTypedefUsage
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           131072
+              Name:            eUnionUsage
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           262144
+              Name:            eEnumUsage
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           524288
+              Name:            eDefineTagUsage
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           1048576
+              Name:            eStructUsage
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           2097152
+              Name:            eLocalUsage
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           4194304
+              Name:            ePropertyUsage
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           8388608
+              Name:            eEventUsage
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           16777216
+              Name:            eTemplateUsage
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           16777216
+              Name:            eModuleUsage
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           33554432
+              Name:            eIllegalUsage
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           67108864
+              Name:            eAsynchronousUsage
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           4161535
+              Name:            eAnyIDLUsage
+      - Kind:            LF_ENUM
+        Enum:
+          NumEnumerators:  30
+          Options:         [ None, Nested, HasUniqueName ]
+          FieldList:       4164
+          Name:            '__vc_attributes::helper_attributes::usageAttribute::usage_e'
+          UniqueName:      '.?AW4usage_e at usageAttribute@helper_attributes at __vc_attributes@@'
+          UnderlyingType:  116
+      - Kind:            LF_UDT_SRC_LINE
+        UdtSourceLine:
+          UDT:             4165
+          SourceFile:      4111
+          LineNumber:      51
+      - Kind:            LF_ARGLIST
+        ArgList:
+          ArgIndices:      [ 117 ]
+      - Kind:            LF_POINTER
+        Pointer:
+          ReferentType:    4163
+          Attrs:           66572
+      - Kind:            LF_MFUNCTION
+        MemberFunction:
+          ReturnType:      3
+          ClassType:       4163
+          ThisType:        4168
+          CallConv:        NearC
+          Options:         [ None, Constructor ]
+          ParameterCount:  1
+          ArgumentList:    4167
+          ThisPointerAdjustment: 0
+      - Kind:            LF_FIELDLIST
+        FieldList:
+          - Kind:            LF_NESTTYPE
+            NestedType:
+              Type:            4165
+              Name:            usage_e
+          - Kind:            LF_ONEMETHOD
+            OneMethod:
+              Type:            4169
+              Attrs:           3
+              VFTableOffset:   -1
+              Name:            usageAttribute
+          - Kind:            LF_MEMBER
+            DataMember:
+              Attrs:           3
+              Type:            117
+              FieldOffset:     0
+              Name:            value
+      - Kind:            LF_STRUCTURE
+        Class:
+          MemberCount:     3
+          Options:         [ None, HasConstructorOrDestructor, ContainsNestedClass, HasUniqueName ]
+          FieldList:       4170
+          Name:            '__vc_attributes::helper_attributes::usageAttribute'
+          UniqueName:      '.?AUusageAttribute at helper_attributes@__vc_attributes@@'
+          DerivationList:  0
+          VTableShape:     0
+          Size:            4
+      - Kind:            LF_UDT_SRC_LINE
+        UdtSourceLine:
+          UDT:             4171
+          SourceFile:      4111
+          LineNumber:      49
+      - Kind:            LF_STRUCTURE
+        Class:
+          MemberCount:     0
+          Options:         [ None, ForwardReference, HasUniqueName ]
+          FieldList:       0
+          Name:            '__vc_attributes::helper_attributes::v1_alttypeAttribute'
+          UniqueName:      '.?AUv1_alttypeAttribute at helper_attributes@__vc_attributes@@'
+          DerivationList:  0
+          VTableShape:     0
+          Size:            0
+      - Kind:            LF_FIELDLIST
+        FieldList:
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           0
+              Name:            eBoolean
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           1
+              Name:            eInteger
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           2
+              Name:            eFloat
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           3
+              Name:            eDouble
+      - Kind:            LF_ENUM
+        Enum:
+          NumEnumerators:  4
+          Options:         [ None, Nested, HasUniqueName ]
+          FieldList:       4174
+          Name:            '__vc_attributes::helper_attributes::v1_alttypeAttribute::type_e'
+          UniqueName:      '.?AW4type_e at v1_alttypeAttribute@helper_attributes at __vc_attributes@@'
+          UnderlyingType:  116
+      - Kind:            LF_UDT_SRC_LINE
+        UdtSourceLine:
+          UDT:             4175
+          SourceFile:      4111
+          LineNumber:      38
+      - Kind:            LF_ARGLIST
+        ArgList:
+          ArgIndices:      [ 4175 ]
+      - Kind:            LF_POINTER
+        Pointer:
+          ReferentType:    4173
+          Attrs:           66572
+      - Kind:            LF_MFUNCTION
+        MemberFunction:
+          ReturnType:      3
+          ClassType:       4173
+          ThisType:        4178
+          CallConv:        NearC
+          Options:         [ None, Constructor ]
+          ParameterCount:  1
+          ArgumentList:    4177
+          ThisPointerAdjustment: 0
+      - Kind:            LF_FIELDLIST
+        FieldList:
+          - Kind:            LF_NESTTYPE
+            NestedType:
+              Type:            4175
+              Name:            type_e
+          - Kind:            LF_ONEMETHOD
+            OneMethod:
+              Type:            4179
+              Attrs:           3
+              VFTableOffset:   -1
+              Name:            v1_alttypeAttribute
+          - Kind:            LF_MEMBER
+            DataMember:
+              Attrs:           3
+              Type:            4175
+              FieldOffset:     0
+              Name:            type
+      - Kind:            LF_STRUCTURE
+        Class:
+          MemberCount:     3
+          Options:         [ None, HasConstructorOrDestructor, ContainsNestedClass, HasUniqueName ]
+          FieldList:       4180
+          Name:            '__vc_attributes::helper_attributes::v1_alttypeAttribute'
+          UniqueName:      '.?AUv1_alttypeAttribute at helper_attributes@__vc_attributes@@'
+          DerivationList:  0
+          VTableShape:     0
+          Size:            4
+      - Kind:            LF_UDT_SRC_LINE
+        UdtSourceLine:
+          UDT:             4181
+          SourceFile:      4111
+          LineNumber:      37
+      - Kind:            LF_STRUCTURE
+        Class:
+          MemberCount:     0
+          Options:         [ None, ForwardReference, HasUniqueName ]
+          FieldList:       0
+          Name:            '__vc_attributes::event_sourceAttribute'
+          UniqueName:      '.?AUevent_sourceAttribute at __vc_attributes@@'
+          DerivationList:  0
+          VTableShape:     0
+          Size:            0
+      - Kind:            LF_FIELDLIST
+        FieldList:
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           0
+              Name:            native
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           1
+              Name:            com
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           2
+              Name:            managed
+      - Kind:            LF_ENUM
+        Enum:
+          NumEnumerators:  3
+          Options:         [ None, Nested, HasUniqueName ]
+          FieldList:       4184
+          Name:            '__vc_attributes::event_sourceAttribute::type_e'
+          UniqueName:      '.?AW4type_e at event_sourceAttribute@__vc_attributes@@'
+          UnderlyingType:  116
+      - Kind:            LF_UDT_SRC_LINE
+        UdtSourceLine:
+          UDT:             4185
+          SourceFile:      4111
+          LineNumber:      1142
+      - Kind:            LF_FIELDLIST
+        FieldList:
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           0
+              Name:            speed
+          - Kind:            LF_ENUMERATE
+            Enumerator:
+              Attrs:           3
+              Value:           1
+              Name:            size
+      - Kind:            LF_ENUM
+        Enum:
+          NumEnumerators:  2
+          Options:         [ None, Nested, HasUniqueName ]
+          FieldList:       4187
+          Name:            '__vc_attributes::event_sourceAttribute::optimize_e'
+          UniqueName:      '.?AW4optimize_e at event_sourceAttribute@__vc_attributes@@'
+          UnderlyingType:  116
+      - Kind:            LF_UDT_SRC_LINE
+        UdtSourceLine:
+          UDT:             4188
+          SourceFile:      4111
+          LineNumber:      1145
+      - Kind:            LF_ARGLIST
+        ArgList:
+          ArgIndices:      [ 4185 ]
+      - Kind:            LF_POINTER
+        Pointer:
+          ReferentType:    4183
+          Attrs:           66572
+      - Kind:            LF_MFUNCTION
+        MemberFunction:
+          ReturnType:      3
+          ClassType:       4183
+          ThisType:        4191
+          CallConv:        NearC
+          Options:         [ None, Constructor ]
+          ParameterCount:  1
+          ArgumentList:    4190
+          ThisPointerAdjustment: 0
+      - Kind:            LF_MFUNCTION
+        MemberFunction:
+          ReturnType:      3
+          ClassType:       4183
+          ThisType:        4191
+          CallConv:        NearC
+          Options:         [ None, Constructor ]
+          ParameterCount:  0
+          ArgumentList:    4105
+          ThisPointerAdjustment: 0
+      - Kind:            LF_METHODLIST
+        MethodOverloadList:
+          Methods:
+            - Type:            4192
+              Attrs:           3
+              VFTableOffset:   -1
+              Name:            ''
+            - Type:            4193
+              Attrs:           3
+              VFTableOffset:   -1
+              Name:            ''
+      - Kind:            LF_FIELDLIST
+        FieldList:
+          - Kind:            LF_NESTTYPE
+            NestedType:
+              Type:            4185
+              Name:            type_e
+          - Kind:            LF_NESTTYPE
+            NestedType:
+              Type:            4188
+              Name:            optimize_e
+          - Kind:            LF_METHOD
+            OverloadedMethod:
+              NumOverloads:    2
+              MethodList:      4194
+              Name:            event_sourceAttribute
+          - Kind:            LF_MEMBER
+            DataMember:
+              Attrs:           3
+              Type:            4185
+              FieldOffset:     0
+              Name:            type
+          - Kind:            LF_MEMBER
+            DataMember:
+              Attrs:           3
+              Type:            4188
+              FieldOffset:     4
+              Name:            optimize
+          - Kind:            LF_MEMBER
+            DataMember:
+              Attrs:           3
+              Type:            48
+              FieldOffset:     8
+              Name:            decorate
+      - Kind:            LF_STRUCTURE
+        Class:
+          MemberCount:     7
+          Options:         [ None, HasConstructorOrDestructor, ContainsNestedClass, HasUniqueName ]
+          FieldList:       4195
+          Name:            '__vc_attributes::event_sourceAttribute'
+          UniqueName:      '.?AUevent_sourceAttribute at __vc_attributes@@'
+          DerivationList:  0
+          VTableShape:     0
+          Size:            12
+      - Kind:            LF_UDT_SRC_LINE
+        UdtSourceLine:
+          UDT:             4196
+          SourceFile:      4111
+          LineNumber:      1141
+      - Kind:            LF_STRING_ID
+        StringId:
+          Id:              0
+          String:          'C:\src\llvm-project\build'
+      - Kind:            LF_STRING_ID
+        StringId:
+          Id:              0
+          String:          'C:\PROGRA~2\MICROS~1\2017\PROFES~1\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64\cl.exe'
+      - Kind:            LF_STRING_ID
+        StringId:
+          Id:              0
+          String:          '-c -Z7 -MT -IC:\PROGRA~2\MICROS~1\2017\PROFES~1\VC\Tools\MSVC\14.11.25503\ATLMFC\include -IC:\PROGRA~2\MICROS~1\2017\PROFES~1\VC\Tools\MSVC\14.11.25503\include -IC:\PROGRA~2\WI3CF2~1\10\include\10.0.16299.0\ucrt -IC:\PROGRA~2\WI3CF2~1\10\include\10.0.16299.0\'
+      - Kind:            LF_SUBSTR_LIST
+        StringList:
+          StringIndices:   [ 4200 ]
+      - Kind:            LF_STRING_ID
+        StringId:
+          Id:              4201
+          String:          'shared -IC:\PROGRA~2\WI3CF2~1\10\include\10.0.16299.0\um -IC:\PROGRA~2\WI3CF2~1\10\include\10.0.16299.0\winrt -TP -X'
+      - Kind:            LF_STRING_ID
+        StringId:
+          Id:              0
+          String:          t.cpp
+      - Kind:            LF_STRING_ID
+        StringId:
+          Id:              0
+          String:          'C:\src\llvm-project\build\vc140.pdb'
+      - Kind:            LF_BUILDINFO
+        BuildInfo:
+          ArgIndices:      [ 4198, 4199, 4203, 4204, 4202 ]
+  - Name:            '.text$mn'
+    Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]
+    Alignment:       16
+    SectionData:     48894C240833C0C3CCCCCCCCCCCCCCCC4883EC38B904000000E8000000004889442420488B4424204883C438C3
+    Relocations:
+      - VirtualAddress:  26
+        SymbolName:      '??2 at YAPEAX_K@Z'
+        Type:            IMAGE_REL_AMD64_REL32
+  - Name:            .xdata
+    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ]
+    Alignment:       4
+    SectionData:     '0104010004620000'
+  - Name:            .pdata
+    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ]
+    Alignment:       4
+    SectionData:     000000001D00000000000000
+    Relocations:
+      - VirtualAddress:  0
+        SymbolName:      '$LN3'
+        Type:            IMAGE_REL_AMD64_ADDR32NB
+      - VirtualAddress:  4
+        SymbolName:      '$LN3'
+        Type:            IMAGE_REL_AMD64_ADDR32NB
+      - VirtualAddress:  8
+        SymbolName:      '$unwind$f'
+        Type:            IMAGE_REL_AMD64_ADDR32NB
+symbols:
+  - Name:            '@comp.id'
+    Value:           17130404
+    SectionNumber:   -1
+    SimpleType:      IMAGE_SYM_TYPE_NULL
+    ComplexType:     IMAGE_SYM_DTYPE_NULL
+    StorageClass:    IMAGE_SYM_CLASS_STATIC
+  - Name:            '@feat.00'
+    Value:           2147484048
+    SectionNumber:   -1
+    SimpleType:      IMAGE_SYM_TYPE_NULL
+    ComplexType:     IMAGE_SYM_DTYPE_NULL
+    StorageClass:    IMAGE_SYM_CLASS_STATIC
+  - Name:            .drectve
+    Value:           0
+    SectionNumber:   1
+    SimpleType:      IMAGE_SYM_TYPE_NULL
+    ComplexType:     IMAGE_SYM_DTYPE_NULL
+    StorageClass:    IMAGE_SYM_CLASS_STATIC
+    SectionDefinition:
+      Length:          57
+      NumberOfRelocations: 0
+      NumberOfLinenumbers: 0
+      CheckSum:        1455566745
+      Number:          0
+  - Name:            '.debug$S'
+    Value:           0
+    SectionNumber:   2
+    SimpleType:      IMAGE_SYM_TYPE_NULL
+    ComplexType:     IMAGE_SYM_DTYPE_NULL
+    StorageClass:    IMAGE_SYM_CLASS_STATIC
+    SectionDefinition:
+      Length:          1364
+      NumberOfRelocations: 10
+      NumberOfLinenumbers: 0
+      CheckSum:        0
+      Number:          0
+  - Name:            '.debug$T'
+    Value:           0
+    SectionNumber:   3
+    SimpleType:      IMAGE_SYM_TYPE_NULL
+    ComplexType:     IMAGE_SYM_DTYPE_NULL
+    StorageClass:    IMAGE_SYM_CLASS_STATIC
+    SectionDefinition:
+      Length:          6560
+      NumberOfRelocations: 0
+      NumberOfLinenumbers: 0
+      CheckSum:        0
+      Number:          0
+  - Name:            '.text$mn'
+    Value:           0
+    SectionNumber:   4
+    SimpleType:      IMAGE_SYM_TYPE_NULL
+    ComplexType:     IMAGE_SYM_DTYPE_NULL
+    StorageClass:    IMAGE_SYM_CLASS_STATIC
+    SectionDefinition:
+      Length:          45
+      NumberOfRelocations: 1
+      NumberOfLinenumbers: 0
+      CheckSum:        1509507051
+      Number:          0
+  - Name:            '??2 at YAPEAX_K@Z'
+    Value:           0
+    SectionNumber:   4
+    SimpleType:      IMAGE_SYM_TYPE_NULL
+    ComplexType:     IMAGE_SYM_DTYPE_FUNCTION
+    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
+  - Name:            f
+    Value:           16
+    SectionNumber:   4
+    SimpleType:      IMAGE_SYM_TYPE_NULL
+    ComplexType:     IMAGE_SYM_DTYPE_FUNCTION
+    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
+  - Name:            '$LN3'
+    Value:           16
+    SectionNumber:   4
+    SimpleType:      IMAGE_SYM_TYPE_NULL
+    ComplexType:     IMAGE_SYM_DTYPE_NULL
+    StorageClass:    IMAGE_SYM_CLASS_LABEL
+  - Name:            .xdata
+    Value:           0
+    SectionNumber:   5
+    SimpleType:      IMAGE_SYM_TYPE_NULL
+    ComplexType:     IMAGE_SYM_DTYPE_NULL
+    StorageClass:    IMAGE_SYM_CLASS_STATIC
+    SectionDefinition:
+      Length:          8
+      NumberOfRelocations: 0
+      NumberOfLinenumbers: 0
+      CheckSum:        931692337
+      Number:          0
+  - Name:            '$unwind$f'
+    Value:           0
+    SectionNumber:   5
+    SimpleType:      IMAGE_SYM_TYPE_NULL
+    ComplexType:     IMAGE_SYM_DTYPE_NULL
+    StorageClass:    IMAGE_SYM_CLASS_STATIC
+  - Name:            .pdata
+    Value:           0
+    SectionNumber:   6
+    SimpleType:      IMAGE_SYM_TYPE_NULL
+    ComplexType:     IMAGE_SYM_DTYPE_NULL
+    StorageClass:    IMAGE_SYM_CLASS_STATIC
+    SectionDefinition:
+      Length:          12
+      NumberOfRelocations: 3
+      NumberOfLinenumbers: 0
+      CheckSum:        3887998202
+      Number:          0
+  - Name:            '$pdata$f'
+    Value:           0
+    SectionNumber:   6
+    SimpleType:      IMAGE_SYM_TYPE_NULL
+    ComplexType:     IMAGE_SYM_DTYPE_NULL
+    StorageClass:    IMAGE_SYM_CLASS_STATIC
+...




More information about the llvm-commits mailing list