1 # In file 1 we set up some basic types and IDs to refer to them. In this file
2 # we will set up the same types. For some of them we will make them identical
3 # but re-order the records in the file to make sure they have different type
4 # indices and appear in different orders. In other cases we will make slight
5 # adjustments to the types, to ensure that they do not get merged in.
7 # For easy understanding, a semantic representation of the types we will set up
9 # - int main(int, char**) // This record should share an LF_PROCEDURE and id
10 # // record with corresponding function from the
12 # - int main2(int, char**) // This record should share the LF_PROCEDURE
13 # // record but have a unique id record.
14 # - void foo(int, char**) // This record should have a unique LF_PROCEDURE
15 # // record, but the LF_ARGLIST record internally
16 # // should be shared.
18 # - struct FooBar { // Because the type of this record exactly matches
19 # // the corresponding file, its entire type record
20 # // hierarchy should be shared.
23 # void FooMethod2(int); // Note that the *type* of this member should be
24 # // the same as the type of the record from the
25 # // first stream. But since it has a different
26 # // name, it will not share an id record.
30 # TypeIndex: 4096 (0x1000)
35 # TypeIndex: 4097 (0x1001)
36 # public void *FooMember
44 Name: FooMember # FooMember
45 # TypeIndex: 4098 (0x1002)
51 # TypeIndex: 4099 (0x1003)
55 ArgIndices: [ 116, 4098 ]
56 # TypeIndex: 4100 (0x1004)
64 Options: [ None, HasUniqueName ]
71 # TypeIndex: 4101 (0x1005)
79 ArgumentList: 4099 # (int, char**)
80 # TypeIndex: 4102 (0x1006)
84 ReferentType: 4100 # FooBar
86 # TypeIndex: 4103 (0x1007)
94 ArgumentList: 4099 # (int, char**)
95 # TypeIndex: 4104 (0x1008)
99 ClassType: 4100 # struct FooBar
100 ThisType: 4102 # FooBar *
102 Options: [ None, Constructor ]
104 ArgumentList: 4096 # (int)
105 ThisPointerAdjustment: 0
108 # TypeIndex: 4096 (0x1000)
110 - Kind: LF_UDT_MOD_SRC_LINE
112 UDT: 4100 # struct FooBar
113 SourceFile: 0 # We don't support this yet
115 Module: 0 # We don't support this yet
116 # TypeIndex: 4097 (0x1001)
117 # int main2(int, char **)
121 FunctionType: 4103 # int main2(int, char**)
123 # TypeIndex: 4098 (0x1002)
124 # void foo(int, char **)
128 FunctionType: 4101 # void main2(int, char**)
130 # TypeIndex: 4099 (0x1003)
131 # void FooBar::FooMethod2(int)
134 ClassType: 4100 # struct FooBar
135 FunctionType: 4104 # void FooBar::FooMethod2(int)
137 # TypeIndex: 4100 (0x1004)
138 # int main(int, char **)
142 FunctionType: 4103 # int main(int, char**)