xref: /llvm-project/llvm/test/DebugInfo/PDB/Native/pdb-native-pointers.test (revision 6ca6a03c51b67cb94528a05e1efe502e2e61d9e4)
1c41ce835SZachary Turner; Test that the native PDB reader can enumerate pointer types.  The output
2c41ce835SZachary Turner; being checked against is golden output generated by llvm-pdbutil without
3c41ce835SZachary Turner; the -native flag.  Then we check that we generate the same output.
4c41ce835SZachary Turner
5*6ca6a03cSZachary Turner; RUN: llvm-pdbutil pretty -native -pointers \
6*6ca6a03cSZachary Turner; RUN:     %p/../Inputs/every-pointer.pdb | FileCheck %s --check-prefix=PRETTY
7c41ce835SZachary Turner; RUN: llvm-pdbutil diadump -no-ids -native -pointers \
8c41ce835SZachary Turner; RUN:     %p/../Inputs/every-pointer.pdb | FileCheck %s
9c41ce835SZachary Turner
10*6ca6a03cSZachary Turner; PRETTY:      Pointers: (29 items)
11*6ca6a03cSZachary Turner; PRETTY-NEXT: char**
12*6ca6a03cSZachary Turner; PRETTY-NEXT: struct Foo*
13*6ca6a03cSZachary Turner; PRETTY-NEXT: int&
14*6ca6a03cSZachary Turner; PRETTY-NEXT: const int*
15*6ca6a03cSZachary Turner; PRETTY-NEXT: volatile int*
16*6ca6a03cSZachary Turner; PRETTY-NEXT: const volatile int*
17*6ca6a03cSZachary Turner; PRETTY-NEXT: int*
18*6ca6a03cSZachary Turner; PRETTY-NEXT: int*
19*6ca6a03cSZachary Turner; PRETTY-NEXT: struct __vc_attributes::event_sourceAttribute*
20*6ca6a03cSZachary Turner; PRETTY-NEXT: struct __vc_attributes::helper_attributes::v1_alttypeAttribute*
21*6ca6a03cSZachary Turner; PRETTY-NEXT: struct __vc_attributes::helper_attributes::usageAttribute*
22*6ca6a03cSZachary Turner; PRETTY-NEXT: struct __vc_attributes::threadingAttribute*
23*6ca6a03cSZachary Turner; PRETTY-NEXT: struct __vc_attributes::aggregatableAttribute*
24*6ca6a03cSZachary Turner; PRETTY-NEXT: struct __vc_attributes::event_receiverAttribute*
25*6ca6a03cSZachary Turner; PRETTY-NEXT: struct __vc_attributes::moduleAttribute*
26*6ca6a03cSZachary Turner; PRETTY-NEXT: const char*
27*6ca6a03cSZachary Turner; PRETTY-NEXT: int&&
28*6ca6a03cSZachary Turner; PRETTY-NEXT: struct Foo*
29*6ca6a03cSZachary Turner; PRETTY-NEXT: void (__cdecl Foo::*)()
30*6ca6a03cSZachary Turner; PRETTY-NEXT: int Foo::*
31*6ca6a03cSZachary Turner; PRETTY-NEXT: int (__cdecl Foo::*)()
32*6ca6a03cSZachary Turner; PRETTY-NEXT: void (__cdecl *)()
33*6ca6a03cSZachary Turner; PRETTY-NEXT: unaligned struct Foo*
34*6ca6a03cSZachary Turner; PRETTY-NEXT: struct Foo*
35*6ca6a03cSZachary Turner; PRETTY-NEXT: const struct Foo*
36*6ca6a03cSZachary Turner; PRETTY-NEXT: volatile struct Foo*
37*6ca6a03cSZachary Turner; PRETTY-NEXT: const volatile struct Foo*
38*6ca6a03cSZachary Turner; PRETTY-NEXT: struct Foo&&
39*6ca6a03cSZachary Turner; PRETTY-NEXT: struct Foo
40*6ca6a03cSZachary Turner
41c41ce835SZachary Turner; CHECK:      {
42c41ce835SZachary Turner; CHECK-NEXT:   symTag: PointerType
43c41ce835SZachary Turner; CHECK-NEXT:   length: 8
44c41ce835SZachary Turner; CHECK-NEXT:   constType: 0
45c41ce835SZachary Turner; CHECK-NEXT:   isPointerToDataMember: 0
46c41ce835SZachary Turner; CHECK-NEXT:   isPointerToMemberFunction: 0
47c41ce835SZachary Turner; CHECK-NEXT:   RValueReference: 0
48c41ce835SZachary Turner; CHECK-NEXT:   reference: 0
49c41ce835SZachary Turner; CHECK-NEXT:   restrictedType: 0
50c41ce835SZachary Turner; CHECK-NEXT:   unalignedType: 0
51c41ce835SZachary Turner; CHECK-NEXT:   volatileType: 0
52c41ce835SZachary Turner; CHECK-NEXT: }
53c41ce835SZachary Turner; CHECK-NEXT: {
54c41ce835SZachary Turner; CHECK-NEXT:   symTag: PointerType
55c41ce835SZachary Turner; CHECK-NEXT:   length: 8
56c41ce835SZachary Turner; CHECK-NEXT:   constType: 0
57c41ce835SZachary Turner; CHECK-NEXT:   isPointerToDataMember: 0
58c41ce835SZachary Turner; CHECK-NEXT:   isPointerToMemberFunction: 0
59c41ce835SZachary Turner; CHECK-NEXT:   RValueReference: 0
60c41ce835SZachary Turner; CHECK-NEXT:   reference: 0
61c41ce835SZachary Turner; CHECK-NEXT:   restrictedType: 0
62c41ce835SZachary Turner; CHECK-NEXT:   unalignedType: 0
63c41ce835SZachary Turner; CHECK-NEXT:   volatileType: 0
64c41ce835SZachary Turner; CHECK-NEXT: }
65c41ce835SZachary Turner; CHECK-NEXT: {
66c41ce835SZachary Turner; CHECK-NEXT:   symTag: PointerType
67c41ce835SZachary Turner; CHECK-NEXT:   length: 8
68c41ce835SZachary Turner; CHECK-NEXT:   constType: 0
69c41ce835SZachary Turner; CHECK-NEXT:   isPointerToDataMember: 0
70c41ce835SZachary Turner; CHECK-NEXT:   isPointerToMemberFunction: 0
71c41ce835SZachary Turner; CHECK-NEXT:   RValueReference: 0
72c41ce835SZachary Turner; CHECK-NEXT:   reference: 1
73c41ce835SZachary Turner; CHECK-NEXT:   restrictedType: 0
74c41ce835SZachary Turner; CHECK-NEXT:   unalignedType: 0
75c41ce835SZachary Turner; CHECK-NEXT:   volatileType: 0
76c41ce835SZachary Turner; CHECK-NEXT: }
77c41ce835SZachary Turner; CHECK-NEXT: {
78c41ce835SZachary Turner; CHECK-NEXT:   symTag: PointerType
79c41ce835SZachary Turner; CHECK-NEXT:   length: 8
80c41ce835SZachary Turner; CHECK-NEXT:   constType: 0
81c41ce835SZachary Turner; CHECK-NEXT:   isPointerToDataMember: 0
82c41ce835SZachary Turner; CHECK-NEXT:   isPointerToMemberFunction: 0
83c41ce835SZachary Turner; CHECK-NEXT:   RValueReference: 0
84c41ce835SZachary Turner; CHECK-NEXT:   reference: 0
85c41ce835SZachary Turner; CHECK-NEXT:   restrictedType: 0
86c41ce835SZachary Turner; CHECK-NEXT:   unalignedType: 0
87c41ce835SZachary Turner; CHECK-NEXT:   volatileType: 0
88c41ce835SZachary Turner; CHECK-NEXT: }
89c41ce835SZachary Turner; CHECK-NEXT: {
90c41ce835SZachary Turner; CHECK-NEXT:   symTag: PointerType
91c41ce835SZachary Turner; CHECK-NEXT:   length: 8
92c41ce835SZachary Turner; CHECK-NEXT:   constType: 0
93c41ce835SZachary Turner; CHECK-NEXT:   isPointerToDataMember: 0
94c41ce835SZachary Turner; CHECK-NEXT:   isPointerToMemberFunction: 0
95c41ce835SZachary Turner; CHECK-NEXT:   RValueReference: 0
96c41ce835SZachary Turner; CHECK-NEXT:   reference: 0
97c41ce835SZachary Turner; CHECK-NEXT:   restrictedType: 0
98c41ce835SZachary Turner; CHECK-NEXT:   unalignedType: 0
99c41ce835SZachary Turner; CHECK-NEXT:   volatileType: 0
100c41ce835SZachary Turner; CHECK-NEXT: }
101c41ce835SZachary Turner; CHECK-NEXT: {
102c41ce835SZachary Turner; CHECK-NEXT:   symTag: PointerType
103c41ce835SZachary Turner; CHECK-NEXT:   length: 8
104c41ce835SZachary Turner; CHECK-NEXT:   constType: 0
105c41ce835SZachary Turner; CHECK-NEXT:   isPointerToDataMember: 0
106c41ce835SZachary Turner; CHECK-NEXT:   isPointerToMemberFunction: 0
107c41ce835SZachary Turner; CHECK-NEXT:   RValueReference: 0
108c41ce835SZachary Turner; CHECK-NEXT:   reference: 0
109c41ce835SZachary Turner; CHECK-NEXT:   restrictedType: 0
110c41ce835SZachary Turner; CHECK-NEXT:   unalignedType: 0
111c41ce835SZachary Turner; CHECK-NEXT:   volatileType: 0
112c41ce835SZachary Turner; CHECK-NEXT: }
113c41ce835SZachary Turner; CHECK-NEXT: {
114c41ce835SZachary Turner; CHECK-NEXT:   symTag: PointerType
115c41ce835SZachary Turner; CHECK-NEXT:   length: 8
116c41ce835SZachary Turner; CHECK-NEXT:   constType: 0
117c41ce835SZachary Turner; CHECK-NEXT:   isPointerToDataMember: 0
118c41ce835SZachary Turner; CHECK-NEXT:   isPointerToMemberFunction: 0
119c41ce835SZachary Turner; CHECK-NEXT:   RValueReference: 0
120c41ce835SZachary Turner; CHECK-NEXT:   reference: 0
121c41ce835SZachary Turner; CHECK-NEXT:   restrictedType: 0
122c41ce835SZachary Turner; CHECK-NEXT:   unalignedType: 0
123c41ce835SZachary Turner; CHECK-NEXT:   volatileType: 0
124c41ce835SZachary Turner; CHECK-NEXT: }
125c41ce835SZachary Turner; CHECK-NEXT: {
126c41ce835SZachary Turner; CHECK-NEXT:   symTag: PointerType
127c41ce835SZachary Turner; CHECK-NEXT:   length: 8
128c41ce835SZachary Turner; CHECK-NEXT:   constType: 0
129c41ce835SZachary Turner; CHECK-NEXT:   isPointerToDataMember: 0
130c41ce835SZachary Turner; CHECK-NEXT:   isPointerToMemberFunction: 0
131c41ce835SZachary Turner; CHECK-NEXT:   RValueReference: 0
132c41ce835SZachary Turner; CHECK-NEXT:   reference: 0
133c41ce835SZachary Turner; CHECK-NEXT:   restrictedType: 1
134c41ce835SZachary Turner; CHECK-NEXT:   unalignedType: 0
135c41ce835SZachary Turner; CHECK-NEXT:   volatileType: 0
136c41ce835SZachary Turner; CHECK-NEXT: }
137c41ce835SZachary Turner; CHECK-NEXT: {
138c41ce835SZachary Turner; CHECK-NEXT:   symTag: PointerType
139c41ce835SZachary Turner; CHECK-NEXT:   length: 8
140c41ce835SZachary Turner; CHECK-NEXT:   constType: 1
141c41ce835SZachary Turner; CHECK-NEXT:   isPointerToDataMember: 0
142c41ce835SZachary Turner; CHECK-NEXT:   isPointerToMemberFunction: 0
143c41ce835SZachary Turner; CHECK-NEXT:   RValueReference: 0
144c41ce835SZachary Turner; CHECK-NEXT:   reference: 0
145c41ce835SZachary Turner; CHECK-NEXT:   restrictedType: 0
146c41ce835SZachary Turner; CHECK-NEXT:   unalignedType: 0
147c41ce835SZachary Turner; CHECK-NEXT:   volatileType: 0
148c41ce835SZachary Turner; CHECK-NEXT: }
149c41ce835SZachary Turner; CHECK-NEXT: {
150c41ce835SZachary Turner; CHECK-NEXT:   symTag: PointerType
151c41ce835SZachary Turner; CHECK-NEXT:   length: 8
152c41ce835SZachary Turner; CHECK-NEXT:   constType: 1
153c41ce835SZachary Turner; CHECK-NEXT:   isPointerToDataMember: 0
154c41ce835SZachary Turner; CHECK-NEXT:   isPointerToMemberFunction: 0
155c41ce835SZachary Turner; CHECK-NEXT:   RValueReference: 0
156c41ce835SZachary Turner; CHECK-NEXT:   reference: 0
157c41ce835SZachary Turner; CHECK-NEXT:   restrictedType: 0
158c41ce835SZachary Turner; CHECK-NEXT:   unalignedType: 0
159c41ce835SZachary Turner; CHECK-NEXT:   volatileType: 0
160c41ce835SZachary Turner; CHECK-NEXT: }
161c41ce835SZachary Turner; CHECK-NEXT: {
162c41ce835SZachary Turner; CHECK-NEXT:   symTag: PointerType
163c41ce835SZachary Turner; CHECK-NEXT:   length: 8
164c41ce835SZachary Turner; CHECK-NEXT:   constType: 1
165c41ce835SZachary Turner; CHECK-NEXT:   isPointerToDataMember: 0
166c41ce835SZachary Turner; CHECK-NEXT:   isPointerToMemberFunction: 0
167c41ce835SZachary Turner; CHECK-NEXT:   RValueReference: 0
168c41ce835SZachary Turner; CHECK-NEXT:   reference: 0
169c41ce835SZachary Turner; CHECK-NEXT:   restrictedType: 0
170c41ce835SZachary Turner; CHECK-NEXT:   unalignedType: 0
171c41ce835SZachary Turner; CHECK-NEXT:   volatileType: 0
172c41ce835SZachary Turner; CHECK-NEXT: }
173c41ce835SZachary Turner; CHECK-NEXT: {
174c41ce835SZachary Turner; CHECK-NEXT:   symTag: PointerType
175c41ce835SZachary Turner; CHECK-NEXT:   length: 8
176c41ce835SZachary Turner; CHECK-NEXT:   constType: 1
177c41ce835SZachary Turner; CHECK-NEXT:   isPointerToDataMember: 0
178c41ce835SZachary Turner; CHECK-NEXT:   isPointerToMemberFunction: 0
179c41ce835SZachary Turner; CHECK-NEXT:   RValueReference: 0
180c41ce835SZachary Turner; CHECK-NEXT:   reference: 0
181c41ce835SZachary Turner; CHECK-NEXT:   restrictedType: 0
182c41ce835SZachary Turner; CHECK-NEXT:   unalignedType: 0
183c41ce835SZachary Turner; CHECK-NEXT:   volatileType: 0
184c41ce835SZachary Turner; CHECK-NEXT: }
185c41ce835SZachary Turner; CHECK-NEXT: {
186c41ce835SZachary Turner; CHECK-NEXT:   symTag: PointerType
187c41ce835SZachary Turner; CHECK-NEXT:   length: 8
188c41ce835SZachary Turner; CHECK-NEXT:   constType: 1
189c41ce835SZachary Turner; CHECK-NEXT:   isPointerToDataMember: 0
190c41ce835SZachary Turner; CHECK-NEXT:   isPointerToMemberFunction: 0
191c41ce835SZachary Turner; CHECK-NEXT:   RValueReference: 0
192c41ce835SZachary Turner; CHECK-NEXT:   reference: 0
193c41ce835SZachary Turner; CHECK-NEXT:   restrictedType: 0
194c41ce835SZachary Turner; CHECK-NEXT:   unalignedType: 0
195c41ce835SZachary Turner; CHECK-NEXT:   volatileType: 0
196c41ce835SZachary Turner; CHECK-NEXT: }
197c41ce835SZachary Turner; CHECK-NEXT: {
198c41ce835SZachary Turner; CHECK-NEXT:   symTag: PointerType
199c41ce835SZachary Turner; CHECK-NEXT:   length: 8
200c41ce835SZachary Turner; CHECK-NEXT:   constType: 1
201c41ce835SZachary Turner; CHECK-NEXT:   isPointerToDataMember: 0
202c41ce835SZachary Turner; CHECK-NEXT:   isPointerToMemberFunction: 0
203c41ce835SZachary Turner; CHECK-NEXT:   RValueReference: 0
204c41ce835SZachary Turner; CHECK-NEXT:   reference: 0
205c41ce835SZachary Turner; CHECK-NEXT:   restrictedType: 0
206c41ce835SZachary Turner; CHECK-NEXT:   unalignedType: 0
207c41ce835SZachary Turner; CHECK-NEXT:   volatileType: 0
208c41ce835SZachary Turner; CHECK-NEXT: }
209c41ce835SZachary Turner; CHECK-NEXT: {
210c41ce835SZachary Turner; CHECK-NEXT:   symTag: PointerType
211c41ce835SZachary Turner; CHECK-NEXT:   length: 8
212c41ce835SZachary Turner; CHECK-NEXT:   constType: 1
213c41ce835SZachary Turner; CHECK-NEXT:   isPointerToDataMember: 0
214c41ce835SZachary Turner; CHECK-NEXT:   isPointerToMemberFunction: 0
215c41ce835SZachary Turner; CHECK-NEXT:   RValueReference: 0
216c41ce835SZachary Turner; CHECK-NEXT:   reference: 0
217c41ce835SZachary Turner; CHECK-NEXT:   restrictedType: 0
218c41ce835SZachary Turner; CHECK-NEXT:   unalignedType: 0
219c41ce835SZachary Turner; CHECK-NEXT:   volatileType: 0
220c41ce835SZachary Turner; CHECK-NEXT: }
221c41ce835SZachary Turner; CHECK-NEXT: {
222c41ce835SZachary Turner; CHECK-NEXT:   symTag: PointerType
223c41ce835SZachary Turner; CHECK-NEXT:   length: 8
224c41ce835SZachary Turner; CHECK-NEXT:   constType: 0
225c41ce835SZachary Turner; CHECK-NEXT:   isPointerToDataMember: 0
226c41ce835SZachary Turner; CHECK-NEXT:   isPointerToMemberFunction: 0
227c41ce835SZachary Turner; CHECK-NEXT:   RValueReference: 0
228c41ce835SZachary Turner; CHECK-NEXT:   reference: 0
229c41ce835SZachary Turner; CHECK-NEXT:   restrictedType: 0
230c41ce835SZachary Turner; CHECK-NEXT:   unalignedType: 0
231c41ce835SZachary Turner; CHECK-NEXT:   volatileType: 0
232c41ce835SZachary Turner; CHECK-NEXT: }
233c41ce835SZachary Turner; CHECK-NEXT: {
234c41ce835SZachary Turner; CHECK-NEXT:   symTag: PointerType
235c41ce835SZachary Turner; CHECK-NEXT:   length: 8
236c41ce835SZachary Turner; CHECK-NEXT:   constType: 0
237c41ce835SZachary Turner; CHECK-NEXT:   isPointerToDataMember: 0
238c41ce835SZachary Turner; CHECK-NEXT:   isPointerToMemberFunction: 0
239c41ce835SZachary Turner; CHECK-NEXT:   RValueReference: 1
240c41ce835SZachary Turner; CHECK-NEXT:   reference: 0
241c41ce835SZachary Turner; CHECK-NEXT:   restrictedType: 0
242c41ce835SZachary Turner; CHECK-NEXT:   unalignedType: 0
243c41ce835SZachary Turner; CHECK-NEXT:   volatileType: 0
244c41ce835SZachary Turner; CHECK-NEXT: }
245c41ce835SZachary Turner; CHECK-NEXT: {
246c41ce835SZachary Turner; CHECK-NEXT:   symTag: PointerType
247c41ce835SZachary Turner; CHECK-NEXT:   length: 8
248c41ce835SZachary Turner; CHECK-NEXT:   constType: 1
249c41ce835SZachary Turner; CHECK-NEXT:   isPointerToDataMember: 0
250c41ce835SZachary Turner; CHECK-NEXT:   isPointerToMemberFunction: 0
251c41ce835SZachary Turner; CHECK-NEXT:   RValueReference: 0
252c41ce835SZachary Turner; CHECK-NEXT:   reference: 0
253c41ce835SZachary Turner; CHECK-NEXT:   restrictedType: 0
254c41ce835SZachary Turner; CHECK-NEXT:   unalignedType: 0
255c41ce835SZachary Turner; CHECK-NEXT:   volatileType: 0
256c41ce835SZachary Turner; CHECK-NEXT: }
257c41ce835SZachary Turner; CHECK-NEXT: {
258c41ce835SZachary Turner; CHECK-NEXT:   symTag: PointerType
259c41ce835SZachary Turner; CHECK-NEXT:   length: 8
260c41ce835SZachary Turner; CHECK-NEXT:   constType: 0
261c41ce835SZachary Turner; CHECK-NEXT:   isPointerToDataMember: 0
262c41ce835SZachary Turner; CHECK-NEXT:   isPointerToMemberFunction: 1
263c41ce835SZachary Turner; CHECK-NEXT:   RValueReference: 0
264c41ce835SZachary Turner; CHECK-NEXT:   reference: 0
265c41ce835SZachary Turner; CHECK-NEXT:   restrictedType: 0
266*6ca6a03cSZachary Turner; CHECK-NEXT:   isSingleInheritance: 1
267c41ce835SZachary Turner; CHECK-NEXT:   unalignedType: 0
268c41ce835SZachary Turner; CHECK-NEXT:   volatileType: 0
269c41ce835SZachary Turner; CHECK-NEXT: }
270c41ce835SZachary Turner; CHECK-NEXT: {
271c41ce835SZachary Turner; CHECK-NEXT:   symTag: PointerType
272c41ce835SZachary Turner; CHECK-NEXT:   length: 4
273c41ce835SZachary Turner; CHECK-NEXT:   constType: 0
274c41ce835SZachary Turner; CHECK-NEXT:   isPointerToDataMember: 1
275c41ce835SZachary Turner; CHECK-NEXT:   isPointerToMemberFunction: 0
276c41ce835SZachary Turner; CHECK-NEXT:   RValueReference: 0
277c41ce835SZachary Turner; CHECK-NEXT:   reference: 0
278c41ce835SZachary Turner; CHECK-NEXT:   restrictedType: 0
279*6ca6a03cSZachary Turner; CHECK-NEXT:   isSingleInheritance: 1
280c41ce835SZachary Turner; CHECK-NEXT:   unalignedType: 0
281c41ce835SZachary Turner; CHECK-NEXT:   volatileType: 0
282c41ce835SZachary Turner; CHECK-NEXT: }
283c41ce835SZachary Turner; CHECK-NEXT: {
284c41ce835SZachary Turner; CHECK-NEXT:   symTag: PointerType
285c41ce835SZachary Turner; CHECK-NEXT:   length: 8
286c41ce835SZachary Turner; CHECK-NEXT:   constType: 0
287c41ce835SZachary Turner; CHECK-NEXT:   isPointerToDataMember: 0
288c41ce835SZachary Turner; CHECK-NEXT:   isPointerToMemberFunction: 1
289c41ce835SZachary Turner; CHECK-NEXT:   RValueReference: 0
290c41ce835SZachary Turner; CHECK-NEXT:   reference: 0
291c41ce835SZachary Turner; CHECK-NEXT:   restrictedType: 0
292*6ca6a03cSZachary Turner; CHECK-NEXT:   isSingleInheritance: 1
293c41ce835SZachary Turner; CHECK-NEXT:   unalignedType: 0
294c41ce835SZachary Turner; CHECK-NEXT:   volatileType: 0
295c41ce835SZachary Turner; CHECK-NEXT: }
296c41ce835SZachary Turner; CHECK-NEXT: {
297c41ce835SZachary Turner; CHECK-NEXT:   symTag: PointerType
298c41ce835SZachary Turner; CHECK-NEXT:   length: 8
299c41ce835SZachary Turner; CHECK-NEXT:   constType: 0
300c41ce835SZachary Turner; CHECK-NEXT:   isPointerToDataMember: 0
301c41ce835SZachary Turner; CHECK-NEXT:   isPointerToMemberFunction: 0
302c41ce835SZachary Turner; CHECK-NEXT:   RValueReference: 0
303c41ce835SZachary Turner; CHECK-NEXT:   reference: 0
304c41ce835SZachary Turner; CHECK-NEXT:   restrictedType: 0
305c41ce835SZachary Turner; CHECK-NEXT:   unalignedType: 0
306c41ce835SZachary Turner; CHECK-NEXT:   volatileType: 0
307c41ce835SZachary Turner; CHECK-NEXT: }
308c41ce835SZachary Turner; CHECK-NEXT: {
309c41ce835SZachary Turner; CHECK-NEXT:   symTag: PointerType
310c41ce835SZachary Turner; CHECK-NEXT:   length: 8
311c41ce835SZachary Turner; CHECK-NEXT:   constType: 0
312c41ce835SZachary Turner; CHECK-NEXT:   isPointerToDataMember: 0
313c41ce835SZachary Turner; CHECK-NEXT:   isPointerToMemberFunction: 0
314c41ce835SZachary Turner; CHECK-NEXT:   RValueReference: 0
315c41ce835SZachary Turner; CHECK-NEXT:   reference: 0
316c41ce835SZachary Turner; CHECK-NEXT:   restrictedType: 0
317c41ce835SZachary Turner; CHECK-NEXT:   unalignedType: 0
318c41ce835SZachary Turner; CHECK-NEXT:   volatileType: 0
319c41ce835SZachary Turner; CHECK-NEXT: }
320c41ce835SZachary Turner; CHECK-NEXT: {
321c41ce835SZachary Turner; CHECK-NEXT:   symTag: PointerType
322c41ce835SZachary Turner; CHECK-NEXT:   length: 8
323c41ce835SZachary Turner; CHECK-NEXT:   constType: 0
324c41ce835SZachary Turner; CHECK-NEXT:   isPointerToDataMember: 0
325c41ce835SZachary Turner; CHECK-NEXT:   isPointerToMemberFunction: 0
326c41ce835SZachary Turner; CHECK-NEXT:   RValueReference: 0
327c41ce835SZachary Turner; CHECK-NEXT:   reference: 0
328c41ce835SZachary Turner; CHECK-NEXT:   restrictedType: 1
329c41ce835SZachary Turner; CHECK-NEXT:   unalignedType: 0
330c41ce835SZachary Turner; CHECK-NEXT:   volatileType: 0
331c41ce835SZachary Turner; CHECK-NEXT: }
332c41ce835SZachary Turner; CHECK-NEXT: {
333c41ce835SZachary Turner; CHECK-NEXT:   symTag: PointerType
334c41ce835SZachary Turner; CHECK-NEXT:   length: 8
335c41ce835SZachary Turner; CHECK-NEXT:   constType: 0
336c41ce835SZachary Turner; CHECK-NEXT:   isPointerToDataMember: 0
337c41ce835SZachary Turner; CHECK-NEXT:   isPointerToMemberFunction: 0
338c41ce835SZachary Turner; CHECK-NEXT:   RValueReference: 0
339c41ce835SZachary Turner; CHECK-NEXT:   reference: 0
340c41ce835SZachary Turner; CHECK-NEXT:   restrictedType: 0
341c41ce835SZachary Turner; CHECK-NEXT:   unalignedType: 0
342c41ce835SZachary Turner; CHECK-NEXT:   volatileType: 0
343c41ce835SZachary Turner; CHECK-NEXT: }
344c41ce835SZachary Turner; CHECK-NEXT: {
345c41ce835SZachary Turner; CHECK-NEXT:   symTag: PointerType
346c41ce835SZachary Turner; CHECK-NEXT:   length: 8
347c41ce835SZachary Turner; CHECK-NEXT:   constType: 0
348c41ce835SZachary Turner; CHECK-NEXT:   isPointerToDataMember: 0
349c41ce835SZachary Turner; CHECK-NEXT:   isPointerToMemberFunction: 0
350c41ce835SZachary Turner; CHECK-NEXT:   RValueReference: 0
351c41ce835SZachary Turner; CHECK-NEXT:   reference: 0
352c41ce835SZachary Turner; CHECK-NEXT:   restrictedType: 0
353c41ce835SZachary Turner; CHECK-NEXT:   unalignedType: 0
354c41ce835SZachary Turner; CHECK-NEXT:   volatileType: 0
355c41ce835SZachary Turner; CHECK-NEXT: }
356c41ce835SZachary Turner; CHECK-NEXT: {
357c41ce835SZachary Turner; CHECK-NEXT:   symTag: PointerType
358c41ce835SZachary Turner; CHECK-NEXT:   length: 8
359c41ce835SZachary Turner; CHECK-NEXT:   constType: 0
360c41ce835SZachary Turner; CHECK-NEXT:   isPointerToDataMember: 0
361c41ce835SZachary Turner; CHECK-NEXT:   isPointerToMemberFunction: 0
362c41ce835SZachary Turner; CHECK-NEXT:   RValueReference: 0
363c41ce835SZachary Turner; CHECK-NEXT:   reference: 0
364c41ce835SZachary Turner; CHECK-NEXT:   restrictedType: 0
365c41ce835SZachary Turner; CHECK-NEXT:   unalignedType: 0
366c41ce835SZachary Turner; CHECK-NEXT:   volatileType: 0
367c41ce835SZachary Turner; CHECK-NEXT: }
368c41ce835SZachary Turner; CHECK-NEXT: {
369c41ce835SZachary Turner; CHECK-NEXT:   symTag: PointerType
370c41ce835SZachary Turner; CHECK-NEXT:   length: 8
371c41ce835SZachary Turner; CHECK-NEXT:   constType: 0
372c41ce835SZachary Turner; CHECK-NEXT:   isPointerToDataMember: 0
373c41ce835SZachary Turner; CHECK-NEXT:   isPointerToMemberFunction: 0
374c41ce835SZachary Turner; CHECK-NEXT:   RValueReference: 1
375c41ce835SZachary Turner; CHECK-NEXT:   reference: 0
376c41ce835SZachary Turner; CHECK-NEXT:   restrictedType: 0
377c41ce835SZachary Turner; CHECK-NEXT:   unalignedType: 0
378c41ce835SZachary Turner; CHECK-NEXT:   volatileType: 0
379c41ce835SZachary Turner; CHECK-NEXT: }
380c41ce835SZachary Turner; CHECK-NEXT: {
381c41ce835SZachary Turner; CHECK-NEXT:   symTag: PointerType
382c41ce835SZachary Turner; CHECK-NEXT:   length: 8
383c41ce835SZachary Turner; CHECK-NEXT:   constType: 0
384c41ce835SZachary Turner; CHECK-NEXT:   isPointerToDataMember: 0
385c41ce835SZachary Turner; CHECK-NEXT:   isPointerToMemberFunction: 0
386c41ce835SZachary Turner; CHECK-NEXT:   RValueReference: 0
387c41ce835SZachary Turner; CHECK-NEXT:   reference: 1
388c41ce835SZachary Turner; CHECK-NEXT:   restrictedType: 0
389c41ce835SZachary Turner; CHECK-NEXT:   unalignedType: 0
390c41ce835SZachary Turner; CHECK-NEXT:   volatileType: 0
391c41ce835SZachary Turner; CHECK-NEXT: }