Line data Source code
1 : /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2 : |* *|
3 : |* Attribute deserialization code *|
4 : |* *|
5 : |* Automatically generated file, do not edit! *|
6 : |* *|
7 : \*===----------------------------------------------------------------------===*/
8 :
9 39388 : switch (Kind) {
10 0 : case attr::AMDGPUFlatWorkGroupSize: {
11 0 : bool isInherited = Record.readInt();
12 0 : bool isImplicit = Record.readInt();
13 0 : unsigned Spelling = Record.readInt();
14 0 : unsigned min = Record.readInt();
15 0 : unsigned max = Record.readInt();
16 : New = new (Context) AMDGPUFlatWorkGroupSizeAttr(Range, Context, min, max, Spelling);
17 : cast<InheritableAttr>(New)->setInherited(isInherited);
18 : New->setImplicit(isImplicit);
19 : break;
20 : }
21 0 : case attr::AMDGPUNumSGPR: {
22 0 : bool isInherited = Record.readInt();
23 0 : bool isImplicit = Record.readInt();
24 0 : unsigned Spelling = Record.readInt();
25 0 : unsigned numSGPR = Record.readInt();
26 : New = new (Context) AMDGPUNumSGPRAttr(Range, Context, numSGPR, Spelling);
27 : cast<InheritableAttr>(New)->setInherited(isInherited);
28 : New->setImplicit(isImplicit);
29 : break;
30 : }
31 0 : case attr::AMDGPUNumVGPR: {
32 0 : bool isInherited = Record.readInt();
33 0 : bool isImplicit = Record.readInt();
34 0 : unsigned Spelling = Record.readInt();
35 0 : unsigned numVGPR = Record.readInt();
36 : New = new (Context) AMDGPUNumVGPRAttr(Range, Context, numVGPR, Spelling);
37 : cast<InheritableAttr>(New)->setInherited(isInherited);
38 : New->setImplicit(isImplicit);
39 : break;
40 : }
41 0 : case attr::AMDGPUWavesPerEU: {
42 0 : bool isInherited = Record.readInt();
43 0 : bool isImplicit = Record.readInt();
44 0 : unsigned Spelling = Record.readInt();
45 0 : unsigned min = Record.readInt();
46 0 : unsigned max = Record.readInt();
47 : New = new (Context) AMDGPUWavesPerEUAttr(Range, Context, min, max, Spelling);
48 : cast<InheritableAttr>(New)->setInherited(isInherited);
49 : New->setImplicit(isImplicit);
50 : break;
51 : }
52 0 : case attr::ARMInterrupt: {
53 0 : bool isInherited = Record.readInt();
54 0 : bool isImplicit = Record.readInt();
55 0 : unsigned Spelling = Record.readInt();
56 0 : ARMInterruptAttr::InterruptType interrupt(static_cast<ARMInterruptAttr::InterruptType>(Record.readInt()));
57 : New = new (Context) ARMInterruptAttr(Range, Context, interrupt, Spelling);
58 : cast<InheritableAttr>(New)->setInherited(isInherited);
59 : New->setImplicit(isImplicit);
60 : break;
61 : }
62 0 : case attr::AVRInterrupt: {
63 0 : bool isInherited = Record.readInt();
64 0 : bool isImplicit = Record.readInt();
65 0 : unsigned Spelling = Record.readInt();
66 : New = new (Context) AVRInterruptAttr(Range, Context, Spelling);
67 : cast<InheritableAttr>(New)->setInherited(isInherited);
68 : New->setImplicit(isImplicit);
69 : break;
70 : }
71 0 : case attr::AVRSignal: {
72 0 : bool isInherited = Record.readInt();
73 0 : bool isImplicit = Record.readInt();
74 0 : unsigned Spelling = Record.readInt();
75 : New = new (Context) AVRSignalAttr(Range, Context, Spelling);
76 : cast<InheritableAttr>(New)->setInherited(isInherited);
77 : New->setImplicit(isImplicit);
78 : break;
79 : }
80 1 : case attr::AbiTag: {
81 1 : bool isImplicit = Record.readInt();
82 1 : unsigned Spelling = Record.readInt();
83 1 : unsigned tagsSize = Record.readInt();
84 : SmallVector<StringRef, 4> tags;
85 : tags.reserve(tagsSize);
86 1 : SmallVector<std::string, 4> tagsStorage;
87 : tagsStorage.reserve(tagsSize);
88 4 : for (unsigned i = 0; i != tagsSize; ++i)
89 6 : tagsStorage.push_back(Record.readString());
90 4 : for (unsigned i = 0; i != tagsSize; ++i)
91 6 : tags.push_back(tagsStorage[i]);
92 1 : New = new (Context) AbiTagAttr(Range, Context, tags.data(), tagsSize, Spelling);
93 : New->setImplicit(isImplicit);
94 : break;
95 : }
96 3 : case attr::AcquireCapability: {
97 3 : bool isInherited = Record.readInt();
98 3 : bool isImplicit = Record.readInt();
99 3 : unsigned Spelling = Record.readInt();
100 3 : unsigned argsSize = Record.readInt();
101 : SmallVector<Expr *, 4> args;
102 : args.reserve(argsSize);
103 4 : for (unsigned i = 0; i != argsSize; ++i)
104 1 : args.push_back(Record.readExpr());
105 3 : New = new (Context) AcquireCapabilityAttr(Range, Context, args.data(), argsSize, Spelling);
106 : cast<InheritableAttr>(New)->setInherited(isInherited);
107 : New->setImplicit(isImplicit);
108 : break;
109 : }
110 1 : case attr::AcquiredAfter: {
111 1 : bool isInherited = Record.readInt();
112 1 : bool isImplicit = Record.readInt();
113 1 : unsigned Spelling = Record.readInt();
114 1 : unsigned argsSize = Record.readInt();
115 : SmallVector<Expr *, 4> args;
116 : args.reserve(argsSize);
117 2 : for (unsigned i = 0; i != argsSize; ++i)
118 1 : args.push_back(Record.readExpr());
119 1 : New = new (Context) AcquiredAfterAttr(Range, Context, args.data(), argsSize, Spelling);
120 : cast<InheritableAttr>(New)->setInherited(isInherited);
121 : New->setImplicit(isImplicit);
122 : break;
123 : }
124 0 : case attr::AcquiredBefore: {
125 0 : bool isInherited = Record.readInt();
126 0 : bool isImplicit = Record.readInt();
127 0 : unsigned Spelling = Record.readInt();
128 0 : unsigned argsSize = Record.readInt();
129 : SmallVector<Expr *, 4> args;
130 : args.reserve(argsSize);
131 0 : for (unsigned i = 0; i != argsSize; ++i)
132 0 : args.push_back(Record.readExpr());
133 0 : New = new (Context) AcquiredBeforeAttr(Range, Context, args.data(), argsSize, Spelling);
134 : cast<InheritableAttr>(New)->setInherited(isInherited);
135 : New->setImplicit(isImplicit);
136 : break;
137 : }
138 7 : case attr::AddressSpace: {
139 7 : bool isImplicit = Record.readInt();
140 7 : unsigned Spelling = Record.readInt();
141 7 : int addressSpace = Record.readInt();
142 : New = new (Context) AddressSpaceAttr(Range, Context, addressSpace, Spelling);
143 : New->setImplicit(isImplicit);
144 : break;
145 : }
146 2 : case attr::Alias: {
147 2 : bool isImplicit = Record.readInt();
148 2 : unsigned Spelling = Record.readInt();
149 : std::string aliasee= Record.readString();
150 2 : New = new (Context) AliasAttr(Range, Context, aliasee, Spelling);
151 : New->setImplicit(isImplicit);
152 : break;
153 : }
154 0 : case attr::AlignMac68k: {
155 0 : bool isInherited = Record.readInt();
156 0 : bool isImplicit = Record.readInt();
157 0 : unsigned Spelling = Record.readInt();
158 : New = new (Context) AlignMac68kAttr(Range, Context, Spelling);
159 : cast<InheritableAttr>(New)->setInherited(isInherited);
160 : New->setImplicit(isImplicit);
161 : break;
162 : }
163 0 : case attr::AlignValue: {
164 0 : bool isImplicit = Record.readInt();
165 0 : unsigned Spelling = Record.readInt();
166 : Expr * alignment = Record.readExpr();
167 : New = new (Context) AlignValueAttr(Range, Context, alignment, Spelling);
168 : New->setImplicit(isImplicit);
169 : break;
170 : }
171 182 : case attr::Aligned: {
172 182 : bool isInherited = Record.readInt();
173 182 : bool isImplicit = Record.readInt();
174 182 : unsigned Spelling = Record.readInt();
175 182 : bool isalignmentExpr = Record.readInt();
176 : void *alignmentPtr;
177 182 : if (isalignmentExpr)
178 : alignmentPtr = Record.readExpr();
179 : else
180 : alignmentPtr = Record.getTypeSourceInfo();
181 : New = new (Context) AlignedAttr(Range, Context, isalignmentExpr, alignmentPtr, Spelling);
182 : cast<InheritableAttr>(New)->setInherited(isInherited);
183 : New->setImplicit(isImplicit);
184 : break;
185 : }
186 2 : case attr::AllocAlign: {
187 2 : bool isInherited = Record.readInt();
188 2 : bool isImplicit = Record.readInt();
189 2 : unsigned Spelling = Record.readInt();
190 2 : ParamIdx paramIndex = ParamIdx::deserialize(Record.readInt());
191 2 : New = new (Context) AllocAlignAttr(Range, Context, paramIndex, Spelling);
192 : cast<InheritableAttr>(New)->setInherited(isInherited);
193 : New->setImplicit(isImplicit);
194 : break;
195 : }
196 4 : case attr::AllocSize: {
197 4 : bool isInherited = Record.readInt();
198 4 : bool isImplicit = Record.readInt();
199 4 : unsigned Spelling = Record.readInt();
200 8 : ParamIdx elemSizeParam = ParamIdx::deserialize(Record.readInt());
201 4 : ParamIdx numElemsParam = ParamIdx::deserialize(Record.readInt());
202 4 : New = new (Context) AllocSizeAttr(Range, Context, elemSizeParam, numElemsParam, Spelling);
203 : cast<InheritableAttr>(New)->setInherited(isInherited);
204 : New->setImplicit(isImplicit);
205 : break;
206 : }
207 0 : case attr::AlwaysDestroy: {
208 0 : bool isInherited = Record.readInt();
209 0 : bool isImplicit = Record.readInt();
210 0 : unsigned Spelling = Record.readInt();
211 : New = new (Context) AlwaysDestroyAttr(Range, Context, Spelling);
212 : cast<InheritableAttr>(New)->setInherited(isInherited);
213 : New->setImplicit(isImplicit);
214 : break;
215 : }
216 5912 : case attr::AlwaysInline: {
217 5912 : bool isInherited = Record.readInt();
218 5912 : bool isImplicit = Record.readInt();
219 5912 : unsigned Spelling = Record.readInt();
220 : New = new (Context) AlwaysInlineAttr(Range, Context, Spelling);
221 : cast<InheritableAttr>(New)->setInherited(isInherited);
222 : New->setImplicit(isImplicit);
223 : break;
224 : }
225 0 : case attr::AnalyzerNoReturn: {
226 0 : bool isInherited = Record.readInt();
227 0 : bool isImplicit = Record.readInt();
228 0 : unsigned Spelling = Record.readInt();
229 : New = new (Context) AnalyzerNoReturnAttr(Range, Context, Spelling);
230 : cast<InheritableAttr>(New)->setInherited(isInherited);
231 : New->setImplicit(isImplicit);
232 : break;
233 : }
234 0 : case attr::Annotate: {
235 0 : bool isInherited = Record.readInt();
236 0 : bool isImplicit = Record.readInt();
237 0 : unsigned Spelling = Record.readInt();
238 : std::string annotation= Record.readString();
239 0 : New = new (Context) AnnotateAttr(Range, Context, annotation, Spelling);
240 : cast<InheritableAttr>(New)->setInherited(isInherited);
241 : New->setImplicit(isImplicit);
242 : break;
243 : }
244 0 : case attr::AnyX86Interrupt: {
245 0 : bool isInherited = Record.readInt();
246 0 : bool isImplicit = Record.readInt();
247 0 : unsigned Spelling = Record.readInt();
248 : New = new (Context) AnyX86InterruptAttr(Range, Context, Spelling);
249 : cast<InheritableAttr>(New)->setInherited(isInherited);
250 : New->setImplicit(isImplicit);
251 : break;
252 : }
253 0 : case attr::AnyX86NoCallerSavedRegisters: {
254 0 : bool isInherited = Record.readInt();
255 0 : bool isImplicit = Record.readInt();
256 0 : unsigned Spelling = Record.readInt();
257 : New = new (Context) AnyX86NoCallerSavedRegistersAttr(Range, Context, Spelling);
258 : cast<InheritableAttr>(New)->setInherited(isInherited);
259 : New->setImplicit(isImplicit);
260 : break;
261 : }
262 0 : case attr::AnyX86NoCfCheck: {
263 0 : bool isInherited = Record.readInt();
264 0 : bool isImplicit = Record.readInt();
265 0 : unsigned Spelling = Record.readInt();
266 : New = new (Context) AnyX86NoCfCheckAttr(Range, Context, Spelling);
267 : cast<InheritableAttr>(New)->setInherited(isInherited);
268 : New->setImplicit(isImplicit);
269 : break;
270 : }
271 0 : case attr::ArcWeakrefUnavailable: {
272 0 : bool isInherited = Record.readInt();
273 0 : bool isImplicit = Record.readInt();
274 0 : unsigned Spelling = Record.readInt();
275 : New = new (Context) ArcWeakrefUnavailableAttr(Range, Context, Spelling);
276 : cast<InheritableAttr>(New)->setInherited(isInherited);
277 : New->setImplicit(isImplicit);
278 : break;
279 : }
280 4 : case attr::ArgumentWithTypeTag: {
281 4 : bool isInherited = Record.readInt();
282 4 : bool isImplicit = Record.readInt();
283 4 : unsigned Spelling = Record.readInt();
284 : IdentifierInfo * argumentKind = Record.getIdentifierInfo();
285 8 : ParamIdx argumentIdx = ParamIdx::deserialize(Record.readInt());
286 8 : ParamIdx typeTagIdx = ParamIdx::deserialize(Record.readInt());
287 4 : bool isPointer = Record.readInt();
288 4 : New = new (Context) ArgumentWithTypeTagAttr(Range, Context, argumentKind, argumentIdx, typeTagIdx, isPointer, Spelling);
289 : cast<InheritableAttr>(New)->setInherited(isInherited);
290 : New->setImplicit(isImplicit);
291 : break;
292 : }
293 0 : case attr::Artificial: {
294 0 : bool isInherited = Record.readInt();
295 0 : bool isImplicit = Record.readInt();
296 0 : unsigned Spelling = Record.readInt();
297 : New = new (Context) ArtificialAttr(Range, Context, Spelling);
298 : cast<InheritableAttr>(New)->setInherited(isInherited);
299 : New->setImplicit(isImplicit);
300 : break;
301 : }
302 8 : case attr::AsmLabel: {
303 8 : bool isInherited = Record.readInt();
304 8 : bool isImplicit = Record.readInt();
305 8 : unsigned Spelling = Record.readInt();
306 : std::string label= Record.readString();
307 8 : New = new (Context) AsmLabelAttr(Range, Context, label, Spelling);
308 : cast<InheritableAttr>(New)->setInherited(isInherited);
309 : New->setImplicit(isImplicit);
310 : break;
311 : }
312 0 : case attr::AssertCapability: {
313 0 : bool isInherited = Record.readInt();
314 0 : bool isImplicit = Record.readInt();
315 0 : unsigned Spelling = Record.readInt();
316 0 : unsigned argsSize = Record.readInt();
317 : SmallVector<Expr *, 4> args;
318 : args.reserve(argsSize);
319 0 : for (unsigned i = 0; i != argsSize; ++i)
320 0 : args.push_back(Record.readExpr());
321 0 : New = new (Context) AssertCapabilityAttr(Range, Context, args.data(), argsSize, Spelling);
322 : cast<InheritableAttr>(New)->setInherited(isInherited);
323 : New->setImplicit(isImplicit);
324 : break;
325 : }
326 0 : case attr::AssertExclusiveLock: {
327 0 : bool isInherited = Record.readInt();
328 0 : bool isImplicit = Record.readInt();
329 0 : unsigned Spelling = Record.readInt();
330 0 : unsigned argsSize = Record.readInt();
331 : SmallVector<Expr *, 4> args;
332 : args.reserve(argsSize);
333 0 : for (unsigned i = 0; i != argsSize; ++i)
334 0 : args.push_back(Record.readExpr());
335 0 : New = new (Context) AssertExclusiveLockAttr(Range, Context, args.data(), argsSize, Spelling);
336 : cast<InheritableAttr>(New)->setInherited(isInherited);
337 : New->setImplicit(isImplicit);
338 : break;
339 : }
340 0 : case attr::AssertSharedLock: {
341 0 : bool isInherited = Record.readInt();
342 0 : bool isImplicit = Record.readInt();
343 0 : unsigned Spelling = Record.readInt();
344 0 : unsigned argsSize = Record.readInt();
345 : SmallVector<Expr *, 4> args;
346 : args.reserve(argsSize);
347 0 : for (unsigned i = 0; i != argsSize; ++i)
348 0 : args.push_back(Record.readExpr());
349 0 : New = new (Context) AssertSharedLockAttr(Range, Context, args.data(), argsSize, Spelling);
350 : cast<InheritableAttr>(New)->setInherited(isInherited);
351 : New->setImplicit(isImplicit);
352 : break;
353 : }
354 0 : case attr::AssumeAligned: {
355 0 : bool isInherited = Record.readInt();
356 0 : bool isImplicit = Record.readInt();
357 0 : unsigned Spelling = Record.readInt();
358 : Expr * alignment = Record.readExpr();
359 : Expr * offset = Record.readExpr();
360 : New = new (Context) AssumeAlignedAttr(Range, Context, alignment, offset, Spelling);
361 : cast<InheritableAttr>(New)->setInherited(isInherited);
362 : New->setImplicit(isImplicit);
363 : break;
364 : }
365 4 : case attr::Availability: {
366 4 : bool isInherited = Record.readInt();
367 4 : bool isImplicit = Record.readInt();
368 4 : unsigned Spelling = Record.readInt();
369 : IdentifierInfo * platform = Record.getIdentifierInfo();
370 4 : VersionTuple introduced= Record.readVersionTuple();
371 4 : VersionTuple deprecated= Record.readVersionTuple();
372 4 : VersionTuple obsoleted= Record.readVersionTuple();
373 4 : bool unavailable = Record.readInt();
374 : std::string message= Record.readString();
375 4 : bool strict = Record.readInt();
376 : std::string replacement= Record.readString();
377 4 : New = new (Context) AvailabilityAttr(Range, Context, platform, introduced, deprecated, obsoleted, unavailable, message, strict, replacement, Spelling);
378 : cast<InheritableAttr>(New)->setInherited(isInherited);
379 : New->setImplicit(isImplicit);
380 : break;
381 : }
382 5 : case attr::Blocks: {
383 5 : bool isInherited = Record.readInt();
384 5 : bool isImplicit = Record.readInt();
385 5 : unsigned Spelling = Record.readInt();
386 5 : BlocksAttr::BlockType type(static_cast<BlocksAttr::BlockType>(Record.readInt()));
387 : New = new (Context) BlocksAttr(Range, Context, type, Spelling);
388 : cast<InheritableAttr>(New)->setInherited(isInherited);
389 : New->setImplicit(isImplicit);
390 : break;
391 : }
392 0 : case attr::C11NoReturn: {
393 0 : bool isInherited = Record.readInt();
394 0 : bool isImplicit = Record.readInt();
395 0 : unsigned Spelling = Record.readInt();
396 : New = new (Context) C11NoReturnAttr(Range, Context, Spelling);
397 : cast<InheritableAttr>(New)->setInherited(isInherited);
398 : New->setImplicit(isImplicit);
399 : break;
400 : }
401 0 : case attr::CDecl: {
402 0 : bool isInherited = Record.readInt();
403 0 : bool isImplicit = Record.readInt();
404 0 : unsigned Spelling = Record.readInt();
405 : New = new (Context) CDeclAttr(Range, Context, Spelling);
406 : cast<InheritableAttr>(New)->setInherited(isInherited);
407 : New->setImplicit(isImplicit);
408 : break;
409 : }
410 0 : case attr::CFAuditedTransfer: {
411 0 : bool isInherited = Record.readInt();
412 0 : bool isImplicit = Record.readInt();
413 0 : unsigned Spelling = Record.readInt();
414 : New = new (Context) CFAuditedTransferAttr(Range, Context, Spelling);
415 : cast<InheritableAttr>(New)->setInherited(isInherited);
416 : New->setImplicit(isImplicit);
417 : break;
418 : }
419 0 : case attr::CFConsumed: {
420 0 : bool isInherited = Record.readInt();
421 0 : bool isImplicit = Record.readInt();
422 0 : unsigned Spelling = Record.readInt();
423 : New = new (Context) CFConsumedAttr(Range, Context, Spelling);
424 : cast<InheritableAttr>(New)->setInherited(isInherited);
425 : New->setImplicit(isImplicit);
426 : break;
427 : }
428 0 : case attr::CFReturnsNotRetained: {
429 0 : bool isInherited = Record.readInt();
430 0 : bool isImplicit = Record.readInt();
431 0 : unsigned Spelling = Record.readInt();
432 : New = new (Context) CFReturnsNotRetainedAttr(Range, Context, Spelling);
433 : cast<InheritableAttr>(New)->setInherited(isInherited);
434 : New->setImplicit(isImplicit);
435 : break;
436 : }
437 0 : case attr::CFReturnsRetained: {
438 0 : bool isInherited = Record.readInt();
439 0 : bool isImplicit = Record.readInt();
440 0 : unsigned Spelling = Record.readInt();
441 : New = new (Context) CFReturnsRetainedAttr(Range, Context, Spelling);
442 : cast<InheritableAttr>(New)->setInherited(isInherited);
443 : New->setImplicit(isImplicit);
444 : break;
445 : }
446 0 : case attr::CFUnknownTransfer: {
447 0 : bool isInherited = Record.readInt();
448 0 : bool isImplicit = Record.readInt();
449 0 : unsigned Spelling = Record.readInt();
450 : New = new (Context) CFUnknownTransferAttr(Range, Context, Spelling);
451 : cast<InheritableAttr>(New)->setInherited(isInherited);
452 : New->setImplicit(isImplicit);
453 : break;
454 : }
455 0 : case attr::CPUDispatch: {
456 0 : bool isInherited = Record.readInt();
457 0 : bool isImplicit = Record.readInt();
458 0 : unsigned Spelling = Record.readInt();
459 0 : unsigned cpusSize = Record.readInt();
460 : SmallVector<IdentifierInfo *, 4> cpus;
461 : cpus.reserve(cpusSize);
462 0 : for (unsigned i = 0; i != cpusSize; ++i)
463 0 : cpus.push_back(Record.getIdentifierInfo());
464 0 : New = new (Context) CPUDispatchAttr(Range, Context, cpus.data(), cpusSize, Spelling);
465 : cast<InheritableAttr>(New)->setInherited(isInherited);
466 : New->setImplicit(isImplicit);
467 : break;
468 : }
469 0 : case attr::CPUSpecific: {
470 0 : bool isInherited = Record.readInt();
471 0 : bool isImplicit = Record.readInt();
472 0 : unsigned Spelling = Record.readInt();
473 0 : unsigned cpusSize = Record.readInt();
474 : SmallVector<IdentifierInfo *, 4> cpus;
475 : cpus.reserve(cpusSize);
476 0 : for (unsigned i = 0; i != cpusSize; ++i)
477 0 : cpus.push_back(Record.getIdentifierInfo());
478 0 : New = new (Context) CPUSpecificAttr(Range, Context, cpus.data(), cpusSize, Spelling);
479 : cast<InheritableAttr>(New)->setInherited(isInherited);
480 : New->setImplicit(isImplicit);
481 : break;
482 : }
483 0 : case attr::CUDAConstant: {
484 0 : bool isInherited = Record.readInt();
485 0 : bool isImplicit = Record.readInt();
486 0 : unsigned Spelling = Record.readInt();
487 : New = new (Context) CUDAConstantAttr(Range, Context, Spelling);
488 : cast<InheritableAttr>(New)->setInherited(isInherited);
489 : New->setImplicit(isImplicit);
490 : break;
491 : }
492 4 : case attr::CUDADevice: {
493 4 : bool isInherited = Record.readInt();
494 4 : bool isImplicit = Record.readInt();
495 4 : unsigned Spelling = Record.readInt();
496 : New = new (Context) CUDADeviceAttr(Range, Context, Spelling);
497 : cast<InheritableAttr>(New)->setInherited(isInherited);
498 : New->setImplicit(isImplicit);
499 : break;
500 : }
501 1 : case attr::CUDAGlobal: {
502 1 : bool isInherited = Record.readInt();
503 1 : bool isImplicit = Record.readInt();
504 1 : unsigned Spelling = Record.readInt();
505 : New = new (Context) CUDAGlobalAttr(Range, Context, Spelling);
506 : cast<InheritableAttr>(New)->setInherited(isInherited);
507 : New->setImplicit(isImplicit);
508 : break;
509 : }
510 4 : case attr::CUDAHost: {
511 4 : bool isInherited = Record.readInt();
512 4 : bool isImplicit = Record.readInt();
513 4 : unsigned Spelling = Record.readInt();
514 : New = new (Context) CUDAHostAttr(Range, Context, Spelling);
515 : cast<InheritableAttr>(New)->setInherited(isInherited);
516 : New->setImplicit(isImplicit);
517 : break;
518 : }
519 0 : case attr::CUDAInvalidTarget: {
520 0 : bool isInherited = Record.readInt();
521 0 : bool isImplicit = Record.readInt();
522 0 : unsigned Spelling = Record.readInt();
523 : New = new (Context) CUDAInvalidTargetAttr(Range, Context, Spelling);
524 : cast<InheritableAttr>(New)->setInherited(isInherited);
525 : New->setImplicit(isImplicit);
526 : break;
527 : }
528 0 : case attr::CUDALaunchBounds: {
529 0 : bool isInherited = Record.readInt();
530 0 : bool isImplicit = Record.readInt();
531 0 : unsigned Spelling = Record.readInt();
532 : Expr * maxThreads = Record.readExpr();
533 : Expr * minBlocks = Record.readExpr();
534 : New = new (Context) CUDALaunchBoundsAttr(Range, Context, maxThreads, minBlocks, Spelling);
535 : cast<InheritableAttr>(New)->setInherited(isInherited);
536 : New->setImplicit(isImplicit);
537 : break;
538 : }
539 0 : case attr::CUDAShared: {
540 0 : bool isInherited = Record.readInt();
541 0 : bool isImplicit = Record.readInt();
542 0 : unsigned Spelling = Record.readInt();
543 : New = new (Context) CUDASharedAttr(Range, Context, Spelling);
544 : cast<InheritableAttr>(New)->setInherited(isInherited);
545 : New->setImplicit(isImplicit);
546 : break;
547 : }
548 0 : case attr::CXX11NoReturn: {
549 0 : bool isInherited = Record.readInt();
550 0 : bool isImplicit = Record.readInt();
551 0 : unsigned Spelling = Record.readInt();
552 : New = new (Context) CXX11NoReturnAttr(Range, Context, Spelling);
553 : cast<InheritableAttr>(New)->setInherited(isInherited);
554 : New->setImplicit(isImplicit);
555 : break;
556 : }
557 0 : case attr::CallableWhen: {
558 0 : bool isInherited = Record.readInt();
559 0 : bool isImplicit = Record.readInt();
560 0 : unsigned Spelling = Record.readInt();
561 0 : unsigned callableStatesSize = Record.readInt();
562 : SmallVector<CallableWhenAttr::ConsumedState, 4> callableStates;
563 : callableStates.reserve(callableStatesSize);
564 0 : for (unsigned i = callableStatesSize; i; --i)
565 0 : callableStates.push_back(static_cast<CallableWhenAttr::ConsumedState>(Record.readInt()));
566 0 : New = new (Context) CallableWhenAttr(Range, Context, callableStates.data(), callableStatesSize, Spelling);
567 : cast<InheritableAttr>(New)->setInherited(isInherited);
568 : New->setImplicit(isImplicit);
569 : break;
570 : }
571 4 : case attr::Capability: {
572 4 : bool isInherited = Record.readInt();
573 4 : bool isImplicit = Record.readInt();
574 4 : unsigned Spelling = Record.readInt();
575 : std::string name= Record.readString();
576 4 : New = new (Context) CapabilityAttr(Range, Context, name, Spelling);
577 : cast<InheritableAttr>(New)->setInherited(isInherited);
578 : New->setImplicit(isImplicit);
579 : break;
580 : }
581 18856 : case attr::CapturedRecord: {
582 18856 : bool isInherited = Record.readInt();
583 18856 : bool isImplicit = Record.readInt();
584 18856 : unsigned Spelling = Record.readInt();
585 : New = new (Context) CapturedRecordAttr(Range, Context, Spelling);
586 : cast<InheritableAttr>(New)->setInherited(isInherited);
587 : New->setImplicit(isImplicit);
588 : break;
589 : }
590 0 : case attr::CarriesDependency: {
591 0 : bool isInherited = Record.readInt();
592 0 : bool isImplicit = Record.readInt();
593 0 : unsigned Spelling = Record.readInt();
594 : New = new (Context) CarriesDependencyAttr(Range, Context, Spelling);
595 : cast<InheritableAttr>(New)->setInherited(isInherited);
596 : New->setImplicit(isImplicit);
597 : break;
598 : }
599 0 : case attr::Cleanup: {
600 0 : bool isInherited = Record.readInt();
601 0 : bool isImplicit = Record.readInt();
602 0 : unsigned Spelling = Record.readInt();
603 0 : FunctionDecl * functionDecl = Record.GetLocalDeclAs<FunctionDecl >(Record.readInt());
604 : New = new (Context) CleanupAttr(Range, Context, functionDecl, Spelling);
605 : cast<InheritableAttr>(New)->setInherited(isInherited);
606 : New->setImplicit(isImplicit);
607 : break;
608 : }
609 0 : case attr::CodeSeg: {
610 0 : bool isInherited = Record.readInt();
611 0 : bool isImplicit = Record.readInt();
612 0 : unsigned Spelling = Record.readInt();
613 : std::string name= Record.readString();
614 0 : New = new (Context) CodeSegAttr(Range, Context, name, Spelling);
615 : cast<InheritableAttr>(New)->setInherited(isInherited);
616 : New->setImplicit(isImplicit);
617 : break;
618 : }
619 8 : case attr::Cold: {
620 8 : bool isInherited = Record.readInt();
621 8 : bool isImplicit = Record.readInt();
622 8 : unsigned Spelling = Record.readInt();
623 : New = new (Context) ColdAttr(Range, Context, Spelling);
624 : cast<InheritableAttr>(New)->setInherited(isInherited);
625 : New->setImplicit(isImplicit);
626 : break;
627 : }
628 0 : case attr::Common: {
629 0 : bool isInherited = Record.readInt();
630 0 : bool isImplicit = Record.readInt();
631 0 : unsigned Spelling = Record.readInt();
632 : New = new (Context) CommonAttr(Range, Context, Spelling);
633 : cast<InheritableAttr>(New)->setInherited(isInherited);
634 : New->setImplicit(isImplicit);
635 : break;
636 : }
637 62 : case attr::Const: {
638 62 : bool isInherited = Record.readInt();
639 62 : bool isImplicit = Record.readInt();
640 62 : unsigned Spelling = Record.readInt();
641 : New = new (Context) ConstAttr(Range, Context, Spelling);
642 : cast<InheritableAttr>(New)->setInherited(isInherited);
643 : New->setImplicit(isImplicit);
644 : break;
645 : }
646 0 : case attr::Constructor: {
647 0 : bool isInherited = Record.readInt();
648 0 : bool isImplicit = Record.readInt();
649 0 : unsigned Spelling = Record.readInt();
650 0 : int priority = Record.readInt();
651 : New = new (Context) ConstructorAttr(Range, Context, priority, Spelling);
652 : cast<InheritableAttr>(New)->setInherited(isInherited);
653 : New->setImplicit(isImplicit);
654 : break;
655 : }
656 0 : case attr::Consumable: {
657 0 : bool isInherited = Record.readInt();
658 0 : bool isImplicit = Record.readInt();
659 0 : unsigned Spelling = Record.readInt();
660 0 : ConsumableAttr::ConsumedState defaultState(static_cast<ConsumableAttr::ConsumedState>(Record.readInt()));
661 : New = new (Context) ConsumableAttr(Range, Context, defaultState, Spelling);
662 : cast<InheritableAttr>(New)->setInherited(isInherited);
663 : New->setImplicit(isImplicit);
664 : break;
665 : }
666 0 : case attr::ConsumableAutoCast: {
667 0 : bool isInherited = Record.readInt();
668 0 : bool isImplicit = Record.readInt();
669 0 : unsigned Spelling = Record.readInt();
670 : New = new (Context) ConsumableAutoCastAttr(Range, Context, Spelling);
671 : cast<InheritableAttr>(New)->setInherited(isInherited);
672 : New->setImplicit(isImplicit);
673 : break;
674 : }
675 0 : case attr::ConsumableSetOnRead: {
676 0 : bool isInherited = Record.readInt();
677 0 : bool isImplicit = Record.readInt();
678 0 : unsigned Spelling = Record.readInt();
679 : New = new (Context) ConsumableSetOnReadAttr(Range, Context, Spelling);
680 : cast<InheritableAttr>(New)->setInherited(isInherited);
681 : New->setImplicit(isImplicit);
682 : break;
683 : }
684 0 : case attr::Convergent: {
685 0 : bool isInherited = Record.readInt();
686 0 : bool isImplicit = Record.readInt();
687 0 : unsigned Spelling = Record.readInt();
688 : New = new (Context) ConvergentAttr(Range, Context, Spelling);
689 : cast<InheritableAttr>(New)->setInherited(isInherited);
690 : New->setImplicit(isImplicit);
691 : break;
692 : }
693 53 : case attr::DLLExport: {
694 53 : bool isInherited = Record.readInt();
695 53 : bool isImplicit = Record.readInt();
696 53 : unsigned Spelling = Record.readInt();
697 : New = new (Context) DLLExportAttr(Range, Context, Spelling);
698 : cast<InheritableAttr>(New)->setInherited(isInherited);
699 : New->setImplicit(isImplicit);
700 : break;
701 : }
702 0 : case attr::DLLImport: {
703 0 : bool isInherited = Record.readInt();
704 0 : bool isImplicit = Record.readInt();
705 0 : unsigned Spelling = Record.readInt();
706 : New = new (Context) DLLImportAttr(Range, Context, Spelling);
707 : cast<InheritableAttr>(New)->setInherited(isInherited);
708 : New->setImplicit(isImplicit);
709 : break;
710 : }
711 1 : case attr::Deprecated: {
712 1 : bool isInherited = Record.readInt();
713 1 : bool isImplicit = Record.readInt();
714 1 : unsigned Spelling = Record.readInt();
715 : std::string message= Record.readString();
716 : std::string replacement= Record.readString();
717 1 : New = new (Context) DeprecatedAttr(Range, Context, message, replacement, Spelling);
718 : cast<InheritableAttr>(New)->setInherited(isInherited);
719 : New->setImplicit(isImplicit);
720 : break;
721 : }
722 0 : case attr::Destructor: {
723 0 : bool isInherited = Record.readInt();
724 0 : bool isImplicit = Record.readInt();
725 0 : unsigned Spelling = Record.readInt();
726 0 : int priority = Record.readInt();
727 : New = new (Context) DestructorAttr(Range, Context, priority, Spelling);
728 : cast<InheritableAttr>(New)->setInherited(isInherited);
729 : New->setImplicit(isImplicit);
730 : break;
731 : }
732 0 : case attr::DiagnoseIf: {
733 0 : bool isInherited = Record.readInt();
734 0 : bool isImplicit = Record.readInt();
735 0 : unsigned Spelling = Record.readInt();
736 : Expr * cond = Record.readExpr();
737 : std::string message= Record.readString();
738 0 : DiagnoseIfAttr::DiagnosticType diagnosticType(static_cast<DiagnoseIfAttr::DiagnosticType>(Record.readInt()));
739 0 : bool argDependent = Record.readInt();
740 0 : NamedDecl * parent = Record.GetLocalDeclAs<NamedDecl >(Record.readInt());
741 0 : New = new (Context) DiagnoseIfAttr(Range, Context, cond, message, diagnosticType, argDependent, parent, Spelling);
742 : cast<InheritableAttr>(New)->setInherited(isInherited);
743 : New->setImplicit(isImplicit);
744 : break;
745 : }
746 0 : case attr::DisableTailCalls: {
747 0 : bool isInherited = Record.readInt();
748 0 : bool isImplicit = Record.readInt();
749 0 : unsigned Spelling = Record.readInt();
750 : New = new (Context) DisableTailCallsAttr(Range, Context, Spelling);
751 : cast<InheritableAttr>(New)->setInherited(isInherited);
752 : New->setImplicit(isImplicit);
753 : break;
754 : }
755 0 : case attr::EmptyBases: {
756 0 : bool isInherited = Record.readInt();
757 0 : bool isImplicit = Record.readInt();
758 0 : unsigned Spelling = Record.readInt();
759 : New = new (Context) EmptyBasesAttr(Range, Context, Spelling);
760 : cast<InheritableAttr>(New)->setInherited(isInherited);
761 : New->setImplicit(isImplicit);
762 : break;
763 : }
764 6 : case attr::EnableIf: {
765 6 : bool isInherited = Record.readInt();
766 6 : bool isImplicit = Record.readInt();
767 6 : unsigned Spelling = Record.readInt();
768 : Expr * cond = Record.readExpr();
769 : std::string message= Record.readString();
770 6 : New = new (Context) EnableIfAttr(Range, Context, cond, message, Spelling);
771 : cast<InheritableAttr>(New)->setInherited(isInherited);
772 : New->setImplicit(isImplicit);
773 : break;
774 : }
775 2 : case attr::EnumExtensibility: {
776 2 : bool isInherited = Record.readInt();
777 2 : bool isImplicit = Record.readInt();
778 2 : unsigned Spelling = Record.readInt();
779 2 : EnumExtensibilityAttr::Kind extensibility(static_cast<EnumExtensibilityAttr::Kind>(Record.readInt()));
780 : New = new (Context) EnumExtensibilityAttr(Range, Context, extensibility, Spelling);
781 : cast<InheritableAttr>(New)->setInherited(isInherited);
782 : New->setImplicit(isImplicit);
783 : break;
784 : }
785 0 : case attr::ExcludeFromExplicitInstantiation: {
786 0 : bool isInherited = Record.readInt();
787 0 : bool isImplicit = Record.readInt();
788 0 : unsigned Spelling = Record.readInt();
789 : New = new (Context) ExcludeFromExplicitInstantiationAttr(Range, Context, Spelling);
790 : cast<InheritableAttr>(New)->setInherited(isInherited);
791 : New->setImplicit(isImplicit);
792 : break;
793 : }
794 0 : case attr::ExclusiveTrylockFunction: {
795 0 : bool isInherited = Record.readInt();
796 0 : bool isImplicit = Record.readInt();
797 0 : unsigned Spelling = Record.readInt();
798 : Expr * successValue = Record.readExpr();
799 0 : unsigned argsSize = Record.readInt();
800 : SmallVector<Expr *, 4> args;
801 : args.reserve(argsSize);
802 0 : for (unsigned i = 0; i != argsSize; ++i)
803 0 : args.push_back(Record.readExpr());
804 0 : New = new (Context) ExclusiveTrylockFunctionAttr(Range, Context, successValue, args.data(), argsSize, Spelling);
805 : cast<InheritableAttr>(New)->setInherited(isInherited);
806 : New->setImplicit(isImplicit);
807 : break;
808 : }
809 0 : case attr::ExternalSourceSymbol: {
810 0 : bool isInherited = Record.readInt();
811 0 : bool isImplicit = Record.readInt();
812 0 : unsigned Spelling = Record.readInt();
813 : std::string language= Record.readString();
814 : std::string definedIn= Record.readString();
815 0 : bool generatedDeclaration = Record.readInt();
816 0 : New = new (Context) ExternalSourceSymbolAttr(Range, Context, language, definedIn, generatedDeclaration, Spelling);
817 : cast<InheritableAttr>(New)->setInherited(isInherited);
818 : New->setImplicit(isImplicit);
819 : break;
820 : }
821 4 : case attr::FallThrough: {
822 4 : bool isImplicit = Record.readInt();
823 4 : unsigned Spelling = Record.readInt();
824 : New = new (Context) FallThroughAttr(Range, Context, Spelling);
825 : New->setImplicit(isImplicit);
826 : break;
827 : }
828 0 : case attr::FastCall: {
829 0 : bool isInherited = Record.readInt();
830 0 : bool isImplicit = Record.readInt();
831 0 : unsigned Spelling = Record.readInt();
832 : New = new (Context) FastCallAttr(Range, Context, Spelling);
833 : cast<InheritableAttr>(New)->setInherited(isInherited);
834 : New->setImplicit(isImplicit);
835 : break;
836 : }
837 0 : case attr::Final: {
838 0 : bool isInherited = Record.readInt();
839 0 : bool isImplicit = Record.readInt();
840 0 : unsigned Spelling = Record.readInt();
841 : New = new (Context) FinalAttr(Range, Context, Spelling);
842 : cast<InheritableAttr>(New)->setInherited(isInherited);
843 : New->setImplicit(isImplicit);
844 : break;
845 : }
846 2 : case attr::FlagEnum: {
847 2 : bool isInherited = Record.readInt();
848 2 : bool isImplicit = Record.readInt();
849 2 : unsigned Spelling = Record.readInt();
850 : New = new (Context) FlagEnumAttr(Range, Context, Spelling);
851 : cast<InheritableAttr>(New)->setInherited(isInherited);
852 : New->setImplicit(isImplicit);
853 : break;
854 : }
855 0 : case attr::Flatten: {
856 0 : bool isInherited = Record.readInt();
857 0 : bool isImplicit = Record.readInt();
858 0 : unsigned Spelling = Record.readInt();
859 : New = new (Context) FlattenAttr(Range, Context, Spelling);
860 : cast<InheritableAttr>(New)->setInherited(isInherited);
861 : New->setImplicit(isImplicit);
862 : break;
863 : }
864 27 : case attr::Format: {
865 27 : bool isInherited = Record.readInt();
866 27 : bool isImplicit = Record.readInt();
867 27 : unsigned Spelling = Record.readInt();
868 : IdentifierInfo * type = Record.getIdentifierInfo();
869 27 : int formatIdx = Record.readInt();
870 27 : int firstArg = Record.readInt();
871 : New = new (Context) FormatAttr(Range, Context, type, formatIdx, firstArg, Spelling);
872 : cast<InheritableAttr>(New)->setInherited(isInherited);
873 : New->setImplicit(isImplicit);
874 : break;
875 : }
876 2 : case attr::FormatArg: {
877 2 : bool isInherited = Record.readInt();
878 2 : bool isImplicit = Record.readInt();
879 2 : unsigned Spelling = Record.readInt();
880 2 : ParamIdx formatIdx = ParamIdx::deserialize(Record.readInt());
881 2 : New = new (Context) FormatArgAttr(Range, Context, formatIdx, Spelling);
882 : cast<InheritableAttr>(New)->setInherited(isInherited);
883 : New->setImplicit(isImplicit);
884 : break;
885 : }
886 0 : case attr::GNUInline: {
887 0 : bool isInherited = Record.readInt();
888 0 : bool isImplicit = Record.readInt();
889 0 : unsigned Spelling = Record.readInt();
890 : New = new (Context) GNUInlineAttr(Range, Context, Spelling);
891 : cast<InheritableAttr>(New)->setInherited(isInherited);
892 : New->setImplicit(isImplicit);
893 : break;
894 : }
895 3 : case attr::GuardedBy: {
896 3 : bool isInherited = Record.readInt();
897 3 : bool isImplicit = Record.readInt();
898 3 : unsigned Spelling = Record.readInt();
899 : Expr * arg = Record.readExpr();
900 : New = new (Context) GuardedByAttr(Range, Context, arg, Spelling);
901 : cast<InheritableAttr>(New)->setInherited(isInherited);
902 : New->setImplicit(isImplicit);
903 : break;
904 : }
905 1 : case attr::GuardedVar: {
906 1 : bool isInherited = Record.readInt();
907 1 : bool isImplicit = Record.readInt();
908 1 : unsigned Spelling = Record.readInt();
909 : New = new (Context) GuardedVarAttr(Range, Context, Spelling);
910 : cast<InheritableAttr>(New)->setInherited(isInherited);
911 : New->setImplicit(isImplicit);
912 : break;
913 : }
914 0 : case attr::Hot: {
915 0 : bool isInherited = Record.readInt();
916 0 : bool isImplicit = Record.readInt();
917 0 : unsigned Spelling = Record.readInt();
918 : New = new (Context) HotAttr(Range, Context, Spelling);
919 : cast<InheritableAttr>(New)->setInherited(isInherited);
920 : New->setImplicit(isImplicit);
921 : break;
922 : }
923 2 : case attr::IBAction: {
924 2 : bool isInherited = Record.readInt();
925 2 : bool isImplicit = Record.readInt();
926 2 : unsigned Spelling = Record.readInt();
927 : New = new (Context) IBActionAttr(Range, Context, Spelling);
928 : cast<InheritableAttr>(New)->setInherited(isInherited);
929 : New->setImplicit(isImplicit);
930 : break;
931 : }
932 3 : case attr::IBOutlet: {
933 3 : bool isInherited = Record.readInt();
934 3 : bool isImplicit = Record.readInt();
935 3 : unsigned Spelling = Record.readInt();
936 : New = new (Context) IBOutletAttr(Range, Context, Spelling);
937 : cast<InheritableAttr>(New)->setInherited(isInherited);
938 : New->setImplicit(isImplicit);
939 : break;
940 : }
941 1 : case attr::IBOutletCollection: {
942 1 : bool isInherited = Record.readInt();
943 1 : bool isImplicit = Record.readInt();
944 1 : unsigned Spelling = Record.readInt();
945 : TypeSourceInfo * interface_ = Record.getTypeSourceInfo();
946 : New = new (Context) IBOutletCollectionAttr(Range, Context, interface_, Spelling);
947 : cast<InheritableAttr>(New)->setInherited(isInherited);
948 : New->setImplicit(isImplicit);
949 : break;
950 : }
951 0 : case attr::IFunc: {
952 0 : bool isImplicit = Record.readInt();
953 0 : unsigned Spelling = Record.readInt();
954 : std::string resolver= Record.readString();
955 0 : New = new (Context) IFuncAttr(Range, Context, resolver, Spelling);
956 : New->setImplicit(isImplicit);
957 : break;
958 : }
959 216 : case attr::InitPriority: {
960 216 : bool isInherited = Record.readInt();
961 216 : bool isImplicit = Record.readInt();
962 216 : unsigned Spelling = Record.readInt();
963 216 : unsigned priority = Record.readInt();
964 : New = new (Context) InitPriorityAttr(Range, Context, priority, Spelling);
965 : cast<InheritableAttr>(New)->setInherited(isInherited);
966 : New->setImplicit(isImplicit);
967 : break;
968 : }
969 0 : case attr::InitSeg: {
970 0 : bool isImplicit = Record.readInt();
971 0 : unsigned Spelling = Record.readInt();
972 : std::string section= Record.readString();
973 0 : New = new (Context) InitSegAttr(Range, Context, section, Spelling);
974 : New->setImplicit(isImplicit);
975 : break;
976 : }
977 0 : case attr::IntelOclBicc: {
978 0 : bool isInherited = Record.readInt();
979 0 : bool isImplicit = Record.readInt();
980 0 : unsigned Spelling = Record.readInt();
981 : New = new (Context) IntelOclBiccAttr(Range, Context, Spelling);
982 : cast<InheritableAttr>(New)->setInherited(isInherited);
983 : New->setImplicit(isImplicit);
984 : break;
985 : }
986 0 : case attr::InternalLinkage: {
987 0 : bool isInherited = Record.readInt();
988 0 : bool isImplicit = Record.readInt();
989 0 : unsigned Spelling = Record.readInt();
990 : New = new (Context) InternalLinkageAttr(Range, Context, Spelling);
991 : cast<InheritableAttr>(New)->setInherited(isInherited);
992 : New->setImplicit(isImplicit);
993 : break;
994 : }
995 0 : case attr::LTOVisibilityPublic: {
996 0 : bool isInherited = Record.readInt();
997 0 : bool isImplicit = Record.readInt();
998 0 : unsigned Spelling = Record.readInt();
999 : New = new (Context) LTOVisibilityPublicAttr(Range, Context, Spelling);
1000 : cast<InheritableAttr>(New)->setInherited(isInherited);
1001 : New->setImplicit(isImplicit);
1002 : break;
1003 : }
1004 0 : case attr::LayoutVersion: {
1005 0 : bool isInherited = Record.readInt();
1006 0 : bool isImplicit = Record.readInt();
1007 0 : unsigned Spelling = Record.readInt();
1008 0 : unsigned version = Record.readInt();
1009 : New = new (Context) LayoutVersionAttr(Range, Context, version, Spelling);
1010 : cast<InheritableAttr>(New)->setInherited(isInherited);
1011 : New->setImplicit(isImplicit);
1012 : break;
1013 : }
1014 0 : case attr::LifetimeBound: {
1015 0 : bool isInherited = Record.readInt();
1016 0 : bool isImplicit = Record.readInt();
1017 0 : unsigned Spelling = Record.readInt();
1018 : New = new (Context) LifetimeBoundAttr(Range, Context, Spelling);
1019 : cast<InheritableAttr>(New)->setInherited(isInherited);
1020 : New->setImplicit(isImplicit);
1021 : break;
1022 : }
1023 0 : case attr::LockReturned: {
1024 0 : bool isInherited = Record.readInt();
1025 0 : bool isImplicit = Record.readInt();
1026 0 : unsigned Spelling = Record.readInt();
1027 : Expr * arg = Record.readExpr();
1028 : New = new (Context) LockReturnedAttr(Range, Context, arg, Spelling);
1029 : cast<InheritableAttr>(New)->setInherited(isInherited);
1030 : New->setImplicit(isImplicit);
1031 : break;
1032 : }
1033 0 : case attr::LocksExcluded: {
1034 0 : bool isInherited = Record.readInt();
1035 0 : bool isImplicit = Record.readInt();
1036 0 : unsigned Spelling = Record.readInt();
1037 0 : unsigned argsSize = Record.readInt();
1038 : SmallVector<Expr *, 4> args;
1039 : args.reserve(argsSize);
1040 0 : for (unsigned i = 0; i != argsSize; ++i)
1041 0 : args.push_back(Record.readExpr());
1042 0 : New = new (Context) LocksExcludedAttr(Range, Context, args.data(), argsSize, Spelling);
1043 : cast<InheritableAttr>(New)->setInherited(isInherited);
1044 : New->setImplicit(isImplicit);
1045 : break;
1046 : }
1047 16 : case attr::LoopHint: {
1048 16 : bool isImplicit = Record.readInt();
1049 16 : unsigned Spelling = Record.readInt();
1050 16 : LoopHintAttr::OptionType option(static_cast<LoopHintAttr::OptionType>(Record.readInt()));
1051 16 : LoopHintAttr::LoopHintState state(static_cast<LoopHintAttr::LoopHintState>(Record.readInt()));
1052 : Expr * value = Record.readExpr();
1053 : New = new (Context) LoopHintAttr(Range, Context, option, state, value, Spelling);
1054 : New->setImplicit(isImplicit);
1055 : break;
1056 : }
1057 1 : case attr::MSABI: {
1058 1 : bool isInherited = Record.readInt();
1059 1 : bool isImplicit = Record.readInt();
1060 1 : unsigned Spelling = Record.readInt();
1061 : New = new (Context) MSABIAttr(Range, Context, Spelling);
1062 : cast<InheritableAttr>(New)->setInherited(isInherited);
1063 : New->setImplicit(isImplicit);
1064 : break;
1065 : }
1066 1 : case attr::MSInheritance: {
1067 1 : bool isInherited = Record.readInt();
1068 1 : bool isImplicit = Record.readInt();
1069 1 : unsigned Spelling = Record.readInt();
1070 1 : bool bestCase = Record.readInt();
1071 : New = new (Context) MSInheritanceAttr(Range, Context, bestCase, Spelling);
1072 : cast<InheritableAttr>(New)->setInherited(isInherited);
1073 : New->setImplicit(isImplicit);
1074 : break;
1075 : }
1076 0 : case attr::MSNoVTable: {
1077 0 : bool isInherited = Record.readInt();
1078 0 : bool isImplicit = Record.readInt();
1079 0 : unsigned Spelling = Record.readInt();
1080 : New = new (Context) MSNoVTableAttr(Range, Context, Spelling);
1081 : cast<InheritableAttr>(New)->setInherited(isInherited);
1082 : New->setImplicit(isImplicit);
1083 : break;
1084 : }
1085 0 : case attr::MSP430Interrupt: {
1086 0 : bool isInherited = Record.readInt();
1087 0 : bool isImplicit = Record.readInt();
1088 0 : unsigned Spelling = Record.readInt();
1089 0 : unsigned number = Record.readInt();
1090 : New = new (Context) MSP430InterruptAttr(Range, Context, number, Spelling);
1091 : cast<InheritableAttr>(New)->setInherited(isInherited);
1092 : New->setImplicit(isImplicit);
1093 : break;
1094 : }
1095 1 : case attr::MSStruct: {
1096 1 : bool isInherited = Record.readInt();
1097 1 : bool isImplicit = Record.readInt();
1098 1 : unsigned Spelling = Record.readInt();
1099 : New = new (Context) MSStructAttr(Range, Context, Spelling);
1100 : cast<InheritableAttr>(New)->setInherited(isInherited);
1101 : New->setImplicit(isImplicit);
1102 : break;
1103 : }
1104 0 : case attr::MSVtorDisp: {
1105 0 : bool isInherited = Record.readInt();
1106 0 : bool isImplicit = Record.readInt();
1107 0 : unsigned Spelling = Record.readInt();
1108 0 : unsigned vdm = Record.readInt();
1109 : New = new (Context) MSVtorDispAttr(Range, Context, vdm, Spelling);
1110 : cast<InheritableAttr>(New)->setInherited(isInherited);
1111 : New->setImplicit(isImplicit);
1112 : break;
1113 : }
1114 0 : case attr::MaxFieldAlignment: {
1115 0 : bool isInherited = Record.readInt();
1116 0 : bool isImplicit = Record.readInt();
1117 0 : unsigned Spelling = Record.readInt();
1118 0 : unsigned alignment = Record.readInt();
1119 : New = new (Context) MaxFieldAlignmentAttr(Range, Context, alignment, Spelling);
1120 : cast<InheritableAttr>(New)->setInherited(isInherited);
1121 : New->setImplicit(isImplicit);
1122 : break;
1123 : }
1124 0 : case attr::MayAlias: {
1125 0 : bool isInherited = Record.readInt();
1126 0 : bool isImplicit = Record.readInt();
1127 0 : unsigned Spelling = Record.readInt();
1128 : New = new (Context) MayAliasAttr(Range, Context, Spelling);
1129 : cast<InheritableAttr>(New)->setInherited(isInherited);
1130 : New->setImplicit(isImplicit);
1131 : break;
1132 : }
1133 0 : case attr::MicroMips: {
1134 0 : bool isInherited = Record.readInt();
1135 0 : bool isImplicit = Record.readInt();
1136 0 : unsigned Spelling = Record.readInt();
1137 : New = new (Context) MicroMipsAttr(Range, Context, Spelling);
1138 : cast<InheritableAttr>(New)->setInherited(isInherited);
1139 : New->setImplicit(isImplicit);
1140 : break;
1141 : }
1142 0 : case attr::MinSize: {
1143 0 : bool isInherited = Record.readInt();
1144 0 : bool isImplicit = Record.readInt();
1145 0 : unsigned Spelling = Record.readInt();
1146 : New = new (Context) MinSizeAttr(Range, Context, Spelling);
1147 : cast<InheritableAttr>(New)->setInherited(isInherited);
1148 : New->setImplicit(isImplicit);
1149 : break;
1150 : }
1151 5 : case attr::MinVectorWidth: {
1152 5 : bool isInherited = Record.readInt();
1153 5 : bool isImplicit = Record.readInt();
1154 5 : unsigned Spelling = Record.readInt();
1155 5 : unsigned vectorWidth = Record.readInt();
1156 : New = new (Context) MinVectorWidthAttr(Range, Context, vectorWidth, Spelling);
1157 : cast<InheritableAttr>(New)->setInherited(isInherited);
1158 : New->setImplicit(isImplicit);
1159 : break;
1160 : }
1161 0 : case attr::Mips16: {
1162 0 : bool isInherited = Record.readInt();
1163 0 : bool isImplicit = Record.readInt();
1164 0 : unsigned Spelling = Record.readInt();
1165 : New = new (Context) Mips16Attr(Range, Context, Spelling);
1166 : cast<InheritableAttr>(New)->setInherited(isInherited);
1167 : New->setImplicit(isImplicit);
1168 : break;
1169 : }
1170 0 : case attr::MipsInterrupt: {
1171 0 : bool isInherited = Record.readInt();
1172 0 : bool isImplicit = Record.readInt();
1173 0 : unsigned Spelling = Record.readInt();
1174 0 : MipsInterruptAttr::InterruptType interrupt(static_cast<MipsInterruptAttr::InterruptType>(Record.readInt()));
1175 : New = new (Context) MipsInterruptAttr(Range, Context, interrupt, Spelling);
1176 : cast<InheritableAttr>(New)->setInherited(isInherited);
1177 : New->setImplicit(isImplicit);
1178 : break;
1179 : }
1180 0 : case attr::MipsLongCall: {
1181 0 : bool isInherited = Record.readInt();
1182 0 : bool isImplicit = Record.readInt();
1183 0 : unsigned Spelling = Record.readInt();
1184 : New = new (Context) MipsLongCallAttr(Range, Context, Spelling);
1185 : cast<InheritableAttr>(New)->setInherited(isInherited);
1186 : New->setImplicit(isImplicit);
1187 : break;
1188 : }
1189 0 : case attr::MipsShortCall: {
1190 0 : bool isInherited = Record.readInt();
1191 0 : bool isImplicit = Record.readInt();
1192 0 : unsigned Spelling = Record.readInt();
1193 : New = new (Context) MipsShortCallAttr(Range, Context, Spelling);
1194 : cast<InheritableAttr>(New)->setInherited(isInherited);
1195 : New->setImplicit(isImplicit);
1196 : break;
1197 : }
1198 0 : case attr::Mode: {
1199 0 : bool isImplicit = Record.readInt();
1200 0 : unsigned Spelling = Record.readInt();
1201 : IdentifierInfo * mode = Record.getIdentifierInfo();
1202 : New = new (Context) ModeAttr(Range, Context, mode, Spelling);
1203 : New->setImplicit(isImplicit);
1204 : break;
1205 : }
1206 0 : case attr::NSConsumed: {
1207 0 : bool isInherited = Record.readInt();
1208 0 : bool isImplicit = Record.readInt();
1209 0 : unsigned Spelling = Record.readInt();
1210 : New = new (Context) NSConsumedAttr(Range, Context, Spelling);
1211 : cast<InheritableAttr>(New)->setInherited(isInherited);
1212 : New->setImplicit(isImplicit);
1213 : break;
1214 : }
1215 0 : case attr::NSConsumesSelf: {
1216 0 : bool isInherited = Record.readInt();
1217 0 : bool isImplicit = Record.readInt();
1218 0 : unsigned Spelling = Record.readInt();
1219 : New = new (Context) NSConsumesSelfAttr(Range, Context, Spelling);
1220 : cast<InheritableAttr>(New)->setInherited(isInherited);
1221 : New->setImplicit(isImplicit);
1222 : break;
1223 : }
1224 0 : case attr::NSReturnsAutoreleased: {
1225 0 : bool isInherited = Record.readInt();
1226 0 : bool isImplicit = Record.readInt();
1227 0 : unsigned Spelling = Record.readInt();
1228 : New = new (Context) NSReturnsAutoreleasedAttr(Range, Context, Spelling);
1229 : cast<InheritableAttr>(New)->setInherited(isInherited);
1230 : New->setImplicit(isImplicit);
1231 : break;
1232 : }
1233 0 : case attr::NSReturnsNotRetained: {
1234 0 : bool isInherited = Record.readInt();
1235 0 : bool isImplicit = Record.readInt();
1236 0 : unsigned Spelling = Record.readInt();
1237 : New = new (Context) NSReturnsNotRetainedAttr(Range, Context, Spelling);
1238 : cast<InheritableAttr>(New)->setInherited(isInherited);
1239 : New->setImplicit(isImplicit);
1240 : break;
1241 : }
1242 0 : case attr::NSReturnsRetained: {
1243 0 : bool isInherited = Record.readInt();
1244 0 : bool isImplicit = Record.readInt();
1245 0 : unsigned Spelling = Record.readInt();
1246 : New = new (Context) NSReturnsRetainedAttr(Range, Context, Spelling);
1247 : cast<InheritableAttr>(New)->setInherited(isInherited);
1248 : New->setImplicit(isImplicit);
1249 : break;
1250 : }
1251 0 : case attr::Naked: {
1252 0 : bool isInherited = Record.readInt();
1253 0 : bool isImplicit = Record.readInt();
1254 0 : unsigned Spelling = Record.readInt();
1255 : New = new (Context) NakedAttr(Range, Context, Spelling);
1256 : cast<InheritableAttr>(New)->setInherited(isInherited);
1257 : New->setImplicit(isImplicit);
1258 : break;
1259 : }
1260 0 : case attr::NoAlias: {
1261 0 : bool isInherited = Record.readInt();
1262 0 : bool isImplicit = Record.readInt();
1263 0 : unsigned Spelling = Record.readInt();
1264 : New = new (Context) NoAliasAttr(Range, Context, Spelling);
1265 : cast<InheritableAttr>(New)->setInherited(isInherited);
1266 : New->setImplicit(isImplicit);
1267 : break;
1268 : }
1269 0 : case attr::NoCommon: {
1270 0 : bool isInherited = Record.readInt();
1271 0 : bool isImplicit = Record.readInt();
1272 0 : unsigned Spelling = Record.readInt();
1273 : New = new (Context) NoCommonAttr(Range, Context, Spelling);
1274 : cast<InheritableAttr>(New)->setInherited(isInherited);
1275 : New->setImplicit(isImplicit);
1276 : break;
1277 : }
1278 5 : case attr::NoDebug: {
1279 5 : bool isInherited = Record.readInt();
1280 5 : bool isImplicit = Record.readInt();
1281 5 : unsigned Spelling = Record.readInt();
1282 : New = new (Context) NoDebugAttr(Range, Context, Spelling);
1283 : cast<InheritableAttr>(New)->setInherited(isInherited);
1284 : New->setImplicit(isImplicit);
1285 : break;
1286 : }
1287 0 : case attr::NoDestroy: {
1288 0 : bool isInherited = Record.readInt();
1289 0 : bool isImplicit = Record.readInt();
1290 0 : unsigned Spelling = Record.readInt();
1291 : New = new (Context) NoDestroyAttr(Range, Context, Spelling);
1292 : cast<InheritableAttr>(New)->setInherited(isInherited);
1293 : New->setImplicit(isImplicit);
1294 : break;
1295 : }
1296 0 : case attr::NoDuplicate: {
1297 0 : bool isInherited = Record.readInt();
1298 0 : bool isImplicit = Record.readInt();
1299 0 : unsigned Spelling = Record.readInt();
1300 : New = new (Context) NoDuplicateAttr(Range, Context, Spelling);
1301 : cast<InheritableAttr>(New)->setInherited(isInherited);
1302 : New->setImplicit(isImplicit);
1303 : break;
1304 : }
1305 1 : case attr::NoEscape: {
1306 1 : bool isImplicit = Record.readInt();
1307 1 : unsigned Spelling = Record.readInt();
1308 : New = new (Context) NoEscapeAttr(Range, Context, Spelling);
1309 : New->setImplicit(isImplicit);
1310 : break;
1311 : }
1312 0 : case attr::NoInline: {
1313 0 : bool isInherited = Record.readInt();
1314 0 : bool isImplicit = Record.readInt();
1315 0 : unsigned Spelling = Record.readInt();
1316 : New = new (Context) NoInlineAttr(Range, Context, Spelling);
1317 : cast<InheritableAttr>(New)->setInherited(isInherited);
1318 : New->setImplicit(isImplicit);
1319 : break;
1320 : }
1321 0 : case attr::NoInstrumentFunction: {
1322 0 : bool isInherited = Record.readInt();
1323 0 : bool isImplicit = Record.readInt();
1324 0 : unsigned Spelling = Record.readInt();
1325 : New = new (Context) NoInstrumentFunctionAttr(Range, Context, Spelling);
1326 : cast<InheritableAttr>(New)->setInherited(isInherited);
1327 : New->setImplicit(isImplicit);
1328 : break;
1329 : }
1330 0 : case attr::NoMicroMips: {
1331 0 : bool isInherited = Record.readInt();
1332 0 : bool isImplicit = Record.readInt();
1333 0 : unsigned Spelling = Record.readInt();
1334 : New = new (Context) NoMicroMipsAttr(Range, Context, Spelling);
1335 : cast<InheritableAttr>(New)->setInherited(isInherited);
1336 : New->setImplicit(isImplicit);
1337 : break;
1338 : }
1339 0 : case attr::NoMips16: {
1340 0 : bool isInherited = Record.readInt();
1341 0 : bool isImplicit = Record.readInt();
1342 0 : unsigned Spelling = Record.readInt();
1343 : New = new (Context) NoMips16Attr(Range, Context, Spelling);
1344 : cast<InheritableAttr>(New)->setInherited(isInherited);
1345 : New->setImplicit(isImplicit);
1346 : break;
1347 : }
1348 0 : case attr::NoReturn: {
1349 0 : bool isInherited = Record.readInt();
1350 0 : bool isImplicit = Record.readInt();
1351 0 : unsigned Spelling = Record.readInt();
1352 : New = new (Context) NoReturnAttr(Range, Context, Spelling);
1353 : cast<InheritableAttr>(New)->setInherited(isInherited);
1354 : New->setImplicit(isImplicit);
1355 : break;
1356 : }
1357 1 : case attr::NoSanitize: {
1358 1 : bool isInherited = Record.readInt();
1359 1 : bool isImplicit = Record.readInt();
1360 1 : unsigned Spelling = Record.readInt();
1361 1 : unsigned sanitizersSize = Record.readInt();
1362 : SmallVector<StringRef, 4> sanitizers;
1363 : sanitizers.reserve(sanitizersSize);
1364 1 : SmallVector<std::string, 4> sanitizersStorage;
1365 : sanitizersStorage.reserve(sanitizersSize);
1366 3 : for (unsigned i = 0; i != sanitizersSize; ++i)
1367 4 : sanitizersStorage.push_back(Record.readString());
1368 3 : for (unsigned i = 0; i != sanitizersSize; ++i)
1369 4 : sanitizers.push_back(sanitizersStorage[i]);
1370 1 : New = new (Context) NoSanitizeAttr(Range, Context, sanitizers.data(), sanitizersSize, Spelling);
1371 : cast<InheritableAttr>(New)->setInherited(isInherited);
1372 : New->setImplicit(isImplicit);
1373 : break;
1374 : }
1375 0 : case attr::NoSplitStack: {
1376 0 : bool isInherited = Record.readInt();
1377 0 : bool isImplicit = Record.readInt();
1378 0 : unsigned Spelling = Record.readInt();
1379 : New = new (Context) NoSplitStackAttr(Range, Context, Spelling);
1380 : cast<InheritableAttr>(New)->setInherited(isInherited);
1381 : New->setImplicit(isImplicit);
1382 : break;
1383 : }
1384 0 : case attr::NoStackProtector: {
1385 0 : bool isInherited = Record.readInt();
1386 0 : bool isImplicit = Record.readInt();
1387 0 : unsigned Spelling = Record.readInt();
1388 : New = new (Context) NoStackProtectorAttr(Range, Context, Spelling);
1389 : cast<InheritableAttr>(New)->setInherited(isInherited);
1390 : New->setImplicit(isImplicit);
1391 : break;
1392 : }
1393 0 : case attr::NoThreadSafetyAnalysis: {
1394 0 : bool isInherited = Record.readInt();
1395 0 : bool isImplicit = Record.readInt();
1396 0 : unsigned Spelling = Record.readInt();
1397 : New = new (Context) NoThreadSafetyAnalysisAttr(Range, Context, Spelling);
1398 : cast<InheritableAttr>(New)->setInherited(isInherited);
1399 : New->setImplicit(isImplicit);
1400 : break;
1401 : }
1402 33 : case attr::NoThrow: {
1403 33 : bool isInherited = Record.readInt();
1404 33 : bool isImplicit = Record.readInt();
1405 33 : unsigned Spelling = Record.readInt();
1406 : New = new (Context) NoThrowAttr(Range, Context, Spelling);
1407 : cast<InheritableAttr>(New)->setInherited(isInherited);
1408 : New->setImplicit(isImplicit);
1409 : break;
1410 : }
1411 2 : case attr::NonNull: {
1412 2 : bool isInherited = Record.readInt();
1413 2 : bool isImplicit = Record.readInt();
1414 2 : unsigned Spelling = Record.readInt();
1415 2 : unsigned argsSize = Record.readInt();
1416 : SmallVector<ParamIdx, 4> args;
1417 : args.reserve(argsSize);
1418 6 : for (unsigned i = 0; i != argsSize; ++i)
1419 8 : args.push_back(ParamIdx::deserialize(Record.readInt()));
1420 2 : New = new (Context) NonNullAttr(Range, Context, args.data(), argsSize, Spelling);
1421 : cast<InheritableAttr>(New)->setInherited(isInherited);
1422 : New->setImplicit(isImplicit);
1423 : break;
1424 : }
1425 1 : case attr::NotTailCalled: {
1426 1 : bool isInherited = Record.readInt();
1427 1 : bool isImplicit = Record.readInt();
1428 1 : unsigned Spelling = Record.readInt();
1429 : New = new (Context) NotTailCalledAttr(Range, Context, Spelling);
1430 : cast<InheritableAttr>(New)->setInherited(isInherited);
1431 : New->setImplicit(isImplicit);
1432 : break;
1433 : }
1434 4613 : case attr::OMPCaptureKind: {
1435 4613 : bool isImplicit = Record.readInt();
1436 4613 : unsigned Spelling = Record.readInt();
1437 4613 : unsigned captureKind = Record.readInt();
1438 : New = new (Context) OMPCaptureKindAttr(Range, Context, captureKind, Spelling);
1439 : New->setImplicit(isImplicit);
1440 : break;
1441 : }
1442 18 : case attr::OMPCaptureNoInit: {
1443 18 : bool isInherited = Record.readInt();
1444 18 : bool isImplicit = Record.readInt();
1445 18 : unsigned Spelling = Record.readInt();
1446 : New = new (Context) OMPCaptureNoInitAttr(Range, Context, Spelling);
1447 : cast<InheritableAttr>(New)->setInherited(isInherited);
1448 : New->setImplicit(isImplicit);
1449 : break;
1450 : }
1451 124 : case attr::OMPDeclareSimdDecl: {
1452 124 : bool isImplicit = Record.readInt();
1453 124 : unsigned Spelling = Record.readInt();
1454 124 : OMPDeclareSimdDeclAttr::BranchStateTy branchState(static_cast<OMPDeclareSimdDeclAttr::BranchStateTy>(Record.readInt()));
1455 : Expr * simdlen = Record.readExpr();
1456 124 : unsigned uniformsSize = Record.readInt();
1457 : SmallVector<Expr *, 4> uniforms;
1458 : uniforms.reserve(uniformsSize);
1459 160 : for (unsigned i = 0; i != uniformsSize; ++i)
1460 36 : uniforms.push_back(Record.readExpr());
1461 124 : unsigned alignedsSize = Record.readInt();
1462 : SmallVector<Expr *, 4> aligneds;
1463 : aligneds.reserve(alignedsSize);
1464 206 : for (unsigned i = 0; i != alignedsSize; ++i)
1465 82 : aligneds.push_back(Record.readExpr());
1466 124 : unsigned alignmentsSize = Record.readInt();
1467 : SmallVector<Expr *, 4> alignments;
1468 : alignments.reserve(alignmentsSize);
1469 206 : for (unsigned i = 0; i != alignmentsSize; ++i)
1470 82 : alignments.push_back(Record.readExpr());
1471 124 : unsigned linearsSize = Record.readInt();
1472 : SmallVector<Expr *, 4> linears;
1473 : linears.reserve(linearsSize);
1474 178 : for (unsigned i = 0; i != linearsSize; ++i)
1475 54 : linears.push_back(Record.readExpr());
1476 124 : unsigned modifiersSize = Record.readInt();
1477 : SmallVector<unsigned, 4> modifiers;
1478 : modifiers.reserve(modifiersSize);
1479 178 : for (unsigned i = 0; i != modifiersSize; ++i)
1480 54 : modifiers.push_back(Record.readInt());
1481 124 : unsigned stepsSize = Record.readInt();
1482 : SmallVector<Expr *, 4> steps;
1483 : steps.reserve(stepsSize);
1484 178 : for (unsigned i = 0; i != stepsSize; ++i)
1485 54 : steps.push_back(Record.readExpr());
1486 124 : New = new (Context) OMPDeclareSimdDeclAttr(Range, Context, branchState, simdlen, uniforms.data(), uniformsSize, aligneds.data(), alignedsSize, alignments.data(), alignmentsSize, linears.data(), linearsSize, modifiers.data(), modifiersSize, steps.data(), stepsSize, Spelling);
1487 : New->setImplicit(isImplicit);
1488 : break;
1489 : }
1490 110 : case attr::OMPDeclareTargetDecl: {
1491 110 : bool isInherited = Record.readInt();
1492 110 : bool isImplicit = Record.readInt();
1493 110 : unsigned Spelling = Record.readInt();
1494 110 : OMPDeclareTargetDeclAttr::MapTypeTy mapType(static_cast<OMPDeclareTargetDeclAttr::MapTypeTy>(Record.readInt()));
1495 : New = new (Context) OMPDeclareTargetDeclAttr(Range, Context, mapType, Spelling);
1496 : cast<InheritableAttr>(New)->setInherited(isInherited);
1497 : New->setImplicit(isImplicit);
1498 : break;
1499 : }
1500 8100 : case attr::OMPReferencedVar: {
1501 8100 : bool isImplicit = Record.readInt();
1502 8100 : unsigned Spelling = Record.readInt();
1503 : Expr * ref = Record.readExpr();
1504 : New = new (Context) OMPReferencedVarAttr(Range, Context, ref, Spelling);
1505 : New->setImplicit(isImplicit);
1506 : break;
1507 : }
1508 162 : case attr::OMPThreadPrivateDecl: {
1509 162 : bool isInherited = Record.readInt();
1510 162 : bool isImplicit = Record.readInt();
1511 162 : unsigned Spelling = Record.readInt();
1512 : New = new (Context) OMPThreadPrivateDeclAttr(Range, Context, Spelling);
1513 : cast<InheritableAttr>(New)->setInherited(isInherited);
1514 : New->setImplicit(isImplicit);
1515 : break;
1516 : }
1517 2 : case attr::ObjCBoxable: {
1518 2 : bool isImplicit = Record.readInt();
1519 2 : unsigned Spelling = Record.readInt();
1520 : New = new (Context) ObjCBoxableAttr(Range, Context, Spelling);
1521 : New->setImplicit(isImplicit);
1522 : break;
1523 : }
1524 0 : case attr::ObjCBridge: {
1525 0 : bool isInherited = Record.readInt();
1526 0 : bool isImplicit = Record.readInt();
1527 0 : unsigned Spelling = Record.readInt();
1528 : IdentifierInfo * bridgedType = Record.getIdentifierInfo();
1529 : New = new (Context) ObjCBridgeAttr(Range, Context, bridgedType, Spelling);
1530 : cast<InheritableAttr>(New)->setInherited(isInherited);
1531 : New->setImplicit(isImplicit);
1532 : break;
1533 : }
1534 0 : case attr::ObjCBridgeMutable: {
1535 0 : bool isInherited = Record.readInt();
1536 0 : bool isImplicit = Record.readInt();
1537 0 : unsigned Spelling = Record.readInt();
1538 : IdentifierInfo * bridgedType = Record.getIdentifierInfo();
1539 : New = new (Context) ObjCBridgeMutableAttr(Range, Context, bridgedType, Spelling);
1540 : cast<InheritableAttr>(New)->setInherited(isInherited);
1541 : New->setImplicit(isImplicit);
1542 : break;
1543 : }
1544 0 : case attr::ObjCBridgeRelated: {
1545 0 : bool isInherited = Record.readInt();
1546 0 : bool isImplicit = Record.readInt();
1547 0 : unsigned Spelling = Record.readInt();
1548 : IdentifierInfo * relatedClass = Record.getIdentifierInfo();
1549 : IdentifierInfo * classMethod = Record.getIdentifierInfo();
1550 : IdentifierInfo * instanceMethod = Record.getIdentifierInfo();
1551 : New = new (Context) ObjCBridgeRelatedAttr(Range, Context, relatedClass, classMethod, instanceMethod, Spelling);
1552 : cast<InheritableAttr>(New)->setInherited(isInherited);
1553 : New->setImplicit(isImplicit);
1554 : break;
1555 : }
1556 1 : case attr::ObjCDesignatedInitializer: {
1557 1 : bool isImplicit = Record.readInt();
1558 1 : unsigned Spelling = Record.readInt();
1559 : New = new (Context) ObjCDesignatedInitializerAttr(Range, Context, Spelling);
1560 : New->setImplicit(isImplicit);
1561 : break;
1562 : }
1563 0 : case attr::ObjCException: {
1564 0 : bool isInherited = Record.readInt();
1565 0 : bool isImplicit = Record.readInt();
1566 0 : unsigned Spelling = Record.readInt();
1567 : New = new (Context) ObjCExceptionAttr(Range, Context, Spelling);
1568 : cast<InheritableAttr>(New)->setInherited(isInherited);
1569 : New->setImplicit(isImplicit);
1570 : break;
1571 : }
1572 0 : case attr::ObjCExplicitProtocolImpl: {
1573 0 : bool isInherited = Record.readInt();
1574 0 : bool isImplicit = Record.readInt();
1575 0 : unsigned Spelling = Record.readInt();
1576 : New = new (Context) ObjCExplicitProtocolImplAttr(Range, Context, Spelling);
1577 : cast<InheritableAttr>(New)->setInherited(isInherited);
1578 : New->setImplicit(isImplicit);
1579 : break;
1580 : }
1581 4 : case attr::ObjCGC: {
1582 4 : bool isImplicit = Record.readInt();
1583 4 : unsigned Spelling = Record.readInt();
1584 : IdentifierInfo * kind = Record.getIdentifierInfo();
1585 : New = new (Context) ObjCGCAttr(Range, Context, kind, Spelling);
1586 : New->setImplicit(isImplicit);
1587 : break;
1588 : }
1589 0 : case attr::ObjCIndependentClass: {
1590 0 : bool isInherited = Record.readInt();
1591 0 : bool isImplicit = Record.readInt();
1592 0 : unsigned Spelling = Record.readInt();
1593 : New = new (Context) ObjCIndependentClassAttr(Range, Context, Spelling);
1594 : cast<InheritableAttr>(New)->setInherited(isInherited);
1595 : New->setImplicit(isImplicit);
1596 : break;
1597 : }
1598 0 : case attr::ObjCInertUnsafeUnretained: {
1599 0 : bool isImplicit = Record.readInt();
1600 0 : unsigned Spelling = Record.readInt();
1601 : New = new (Context) ObjCInertUnsafeUnretainedAttr(Range, Context, Spelling);
1602 : New->setImplicit(isImplicit);
1603 : break;
1604 : }
1605 2 : case attr::ObjCKindOf: {
1606 2 : bool isImplicit = Record.readInt();
1607 2 : unsigned Spelling = Record.readInt();
1608 : New = new (Context) ObjCKindOfAttr(Range, Context, Spelling);
1609 : New->setImplicit(isImplicit);
1610 : break;
1611 : }
1612 0 : case attr::ObjCMethodFamily: {
1613 0 : bool isInherited = Record.readInt();
1614 0 : bool isImplicit = Record.readInt();
1615 0 : unsigned Spelling = Record.readInt();
1616 0 : ObjCMethodFamilyAttr::FamilyKind family(static_cast<ObjCMethodFamilyAttr::FamilyKind>(Record.readInt()));
1617 : New = new (Context) ObjCMethodFamilyAttr(Range, Context, family, Spelling);
1618 : cast<InheritableAttr>(New)->setInherited(isInherited);
1619 : New->setImplicit(isImplicit);
1620 : break;
1621 : }
1622 0 : case attr::ObjCNSObject: {
1623 0 : bool isInherited = Record.readInt();
1624 0 : bool isImplicit = Record.readInt();
1625 0 : unsigned Spelling = Record.readInt();
1626 : New = new (Context) ObjCNSObjectAttr(Range, Context, Spelling);
1627 : cast<InheritableAttr>(New)->setInherited(isInherited);
1628 : New->setImplicit(isImplicit);
1629 : break;
1630 : }
1631 0 : case attr::ObjCOwnership: {
1632 0 : bool isInherited = Record.readInt();
1633 0 : bool isImplicit = Record.readInt();
1634 0 : unsigned Spelling = Record.readInt();
1635 : IdentifierInfo * kind = Record.getIdentifierInfo();
1636 : New = new (Context) ObjCOwnershipAttr(Range, Context, kind, Spelling);
1637 : cast<InheritableAttr>(New)->setInherited(isInherited);
1638 : New->setImplicit(isImplicit);
1639 : break;
1640 : }
1641 0 : case attr::ObjCPreciseLifetime: {
1642 0 : bool isInherited = Record.readInt();
1643 0 : bool isImplicit = Record.readInt();
1644 0 : unsigned Spelling = Record.readInt();
1645 : New = new (Context) ObjCPreciseLifetimeAttr(Range, Context, Spelling);
1646 : cast<InheritableAttr>(New)->setInherited(isInherited);
1647 : New->setImplicit(isImplicit);
1648 : break;
1649 : }
1650 0 : case attr::ObjCRequiresPropertyDefs: {
1651 0 : bool isInherited = Record.readInt();
1652 0 : bool isImplicit = Record.readInt();
1653 0 : unsigned Spelling = Record.readInt();
1654 : New = new (Context) ObjCRequiresPropertyDefsAttr(Range, Context, Spelling);
1655 : cast<InheritableAttr>(New)->setInherited(isInherited);
1656 : New->setImplicit(isImplicit);
1657 : break;
1658 : }
1659 0 : case attr::ObjCRequiresSuper: {
1660 0 : bool isInherited = Record.readInt();
1661 0 : bool isImplicit = Record.readInt();
1662 0 : unsigned Spelling = Record.readInt();
1663 : New = new (Context) ObjCRequiresSuperAttr(Range, Context, Spelling);
1664 : cast<InheritableAttr>(New)->setInherited(isInherited);
1665 : New->setImplicit(isImplicit);
1666 : break;
1667 : }
1668 0 : case attr::ObjCReturnsInnerPointer: {
1669 0 : bool isInherited = Record.readInt();
1670 0 : bool isImplicit = Record.readInt();
1671 0 : unsigned Spelling = Record.readInt();
1672 : New = new (Context) ObjCReturnsInnerPointerAttr(Range, Context, Spelling);
1673 : cast<InheritableAttr>(New)->setInherited(isInherited);
1674 : New->setImplicit(isImplicit);
1675 : break;
1676 : }
1677 2 : case attr::ObjCRootClass: {
1678 2 : bool isInherited = Record.readInt();
1679 2 : bool isImplicit = Record.readInt();
1680 2 : unsigned Spelling = Record.readInt();
1681 : New = new (Context) ObjCRootClassAttr(Range, Context, Spelling);
1682 : cast<InheritableAttr>(New)->setInherited(isInherited);
1683 : New->setImplicit(isImplicit);
1684 : break;
1685 : }
1686 0 : case attr::ObjCRuntimeName: {
1687 0 : bool isImplicit = Record.readInt();
1688 0 : unsigned Spelling = Record.readInt();
1689 : std::string metadataName= Record.readString();
1690 0 : New = new (Context) ObjCRuntimeNameAttr(Range, Context, metadataName, Spelling);
1691 : New->setImplicit(isImplicit);
1692 : break;
1693 : }
1694 0 : case attr::ObjCRuntimeVisible: {
1695 0 : bool isImplicit = Record.readInt();
1696 0 : unsigned Spelling = Record.readInt();
1697 : New = new (Context) ObjCRuntimeVisibleAttr(Range, Context, Spelling);
1698 : New->setImplicit(isImplicit);
1699 : break;
1700 : }
1701 0 : case attr::ObjCSubclassingRestricted: {
1702 0 : bool isInherited = Record.readInt();
1703 0 : bool isImplicit = Record.readInt();
1704 0 : unsigned Spelling = Record.readInt();
1705 : New = new (Context) ObjCSubclassingRestrictedAttr(Range, Context, Spelling);
1706 : cast<InheritableAttr>(New)->setInherited(isInherited);
1707 : New->setImplicit(isImplicit);
1708 : break;
1709 : }
1710 124 : case attr::OpenCLAccess: {
1711 124 : bool isImplicit = Record.readInt();
1712 124 : unsigned Spelling = Record.readInt();
1713 : New = new (Context) OpenCLAccessAttr(Range, Context, Spelling);
1714 : New->setImplicit(isImplicit);
1715 : break;
1716 : }
1717 0 : case attr::OpenCLConstantAddressSpace: {
1718 0 : bool isImplicit = Record.readInt();
1719 0 : unsigned Spelling = Record.readInt();
1720 : New = new (Context) OpenCLConstantAddressSpaceAttr(Range, Context, Spelling);
1721 : New->setImplicit(isImplicit);
1722 : break;
1723 : }
1724 0 : case attr::OpenCLGenericAddressSpace: {
1725 0 : bool isImplicit = Record.readInt();
1726 0 : unsigned Spelling = Record.readInt();
1727 : New = new (Context) OpenCLGenericAddressSpaceAttr(Range, Context, Spelling);
1728 : New->setImplicit(isImplicit);
1729 : break;
1730 : }
1731 0 : case attr::OpenCLGlobalAddressSpace: {
1732 0 : bool isImplicit = Record.readInt();
1733 0 : unsigned Spelling = Record.readInt();
1734 : New = new (Context) OpenCLGlobalAddressSpaceAttr(Range, Context, Spelling);
1735 : New->setImplicit(isImplicit);
1736 : break;
1737 : }
1738 0 : case attr::OpenCLIntelReqdSubGroupSize: {
1739 0 : bool isInherited = Record.readInt();
1740 0 : bool isImplicit = Record.readInt();
1741 0 : unsigned Spelling = Record.readInt();
1742 0 : unsigned subGroupSize = Record.readInt();
1743 : New = new (Context) OpenCLIntelReqdSubGroupSizeAttr(Range, Context, subGroupSize, Spelling);
1744 : cast<InheritableAttr>(New)->setInherited(isInherited);
1745 : New->setImplicit(isImplicit);
1746 : break;
1747 : }
1748 0 : case attr::OpenCLKernel: {
1749 0 : bool isInherited = Record.readInt();
1750 0 : bool isImplicit = Record.readInt();
1751 0 : unsigned Spelling = Record.readInt();
1752 : New = new (Context) OpenCLKernelAttr(Range, Context, Spelling);
1753 : cast<InheritableAttr>(New)->setInherited(isInherited);
1754 : New->setImplicit(isImplicit);
1755 : break;
1756 : }
1757 0 : case attr::OpenCLLocalAddressSpace: {
1758 0 : bool isImplicit = Record.readInt();
1759 0 : unsigned Spelling = Record.readInt();
1760 : New = new (Context) OpenCLLocalAddressSpaceAttr(Range, Context, Spelling);
1761 : New->setImplicit(isImplicit);
1762 : break;
1763 : }
1764 0 : case attr::OpenCLPrivateAddressSpace: {
1765 0 : bool isImplicit = Record.readInt();
1766 0 : unsigned Spelling = Record.readInt();
1767 : New = new (Context) OpenCLPrivateAddressSpaceAttr(Range, Context, Spelling);
1768 : New->setImplicit(isImplicit);
1769 : break;
1770 : }
1771 0 : case attr::OpenCLUnrollHint: {
1772 0 : bool isInherited = Record.readInt();
1773 0 : bool isImplicit = Record.readInt();
1774 0 : unsigned Spelling = Record.readInt();
1775 0 : unsigned unrollHint = Record.readInt();
1776 : New = new (Context) OpenCLUnrollHintAttr(Range, Context, unrollHint, Spelling);
1777 : cast<InheritableAttr>(New)->setInherited(isInherited);
1778 : New->setImplicit(isImplicit);
1779 : break;
1780 : }
1781 0 : case attr::OptimizeNone: {
1782 0 : bool isInherited = Record.readInt();
1783 0 : bool isImplicit = Record.readInt();
1784 0 : unsigned Spelling = Record.readInt();
1785 : New = new (Context) OptimizeNoneAttr(Range, Context, Spelling);
1786 : cast<InheritableAttr>(New)->setInherited(isInherited);
1787 : New->setImplicit(isImplicit);
1788 : break;
1789 : }
1790 359 : case attr::Overloadable: {
1791 359 : bool isImplicit = Record.readInt();
1792 359 : unsigned Spelling = Record.readInt();
1793 : New = new (Context) OverloadableAttr(Range, Context, Spelling);
1794 : New->setImplicit(isImplicit);
1795 : break;
1796 : }
1797 0 : case attr::Override: {
1798 0 : bool isInherited = Record.readInt();
1799 0 : bool isImplicit = Record.readInt();
1800 0 : unsigned Spelling = Record.readInt();
1801 : New = new (Context) OverrideAttr(Range, Context, Spelling);
1802 : cast<InheritableAttr>(New)->setInherited(isInherited);
1803 : New->setImplicit(isImplicit);
1804 : break;
1805 : }
1806 6 : case attr::Ownership: {
1807 6 : bool isInherited = Record.readInt();
1808 6 : bool isImplicit = Record.readInt();
1809 6 : unsigned Spelling = Record.readInt();
1810 : IdentifierInfo * module = Record.getIdentifierInfo();
1811 6 : unsigned argsSize = Record.readInt();
1812 : SmallVector<ParamIdx, 4> args;
1813 : args.reserve(argsSize);
1814 16 : for (unsigned i = 0; i != argsSize; ++i)
1815 20 : args.push_back(ParamIdx::deserialize(Record.readInt()));
1816 6 : New = new (Context) OwnershipAttr(Range, Context, module, args.data(), argsSize, Spelling);
1817 : cast<InheritableAttr>(New)->setInherited(isInherited);
1818 : New->setImplicit(isImplicit);
1819 : break;
1820 : }
1821 41 : case attr::Packed: {
1822 41 : bool isInherited = Record.readInt();
1823 41 : bool isImplicit = Record.readInt();
1824 41 : unsigned Spelling = Record.readInt();
1825 : New = new (Context) PackedAttr(Range, Context, Spelling);
1826 : cast<InheritableAttr>(New)->setInherited(isInherited);
1827 : New->setImplicit(isImplicit);
1828 : break;
1829 : }
1830 0 : case attr::ParamTypestate: {
1831 0 : bool isInherited = Record.readInt();
1832 0 : bool isImplicit = Record.readInt();
1833 0 : unsigned Spelling = Record.readInt();
1834 0 : ParamTypestateAttr::ConsumedState paramState(static_cast<ParamTypestateAttr::ConsumedState>(Record.readInt()));
1835 : New = new (Context) ParamTypestateAttr(Range, Context, paramState, Spelling);
1836 : cast<InheritableAttr>(New)->setInherited(isInherited);
1837 : New->setImplicit(isImplicit);
1838 : break;
1839 : }
1840 0 : case attr::Pascal: {
1841 0 : bool isInherited = Record.readInt();
1842 0 : bool isImplicit = Record.readInt();
1843 0 : unsigned Spelling = Record.readInt();
1844 : New = new (Context) PascalAttr(Range, Context, Spelling);
1845 : cast<InheritableAttr>(New)->setInherited(isInherited);
1846 : New->setImplicit(isImplicit);
1847 : break;
1848 : }
1849 2 : case attr::PassObjectSize: {
1850 2 : bool isInherited = Record.readInt();
1851 2 : bool isImplicit = Record.readInt();
1852 2 : unsigned Spelling = Record.readInt();
1853 2 : int type = Record.readInt();
1854 : New = new (Context) PassObjectSizeAttr(Range, Context, type, Spelling);
1855 : cast<InheritableAttr>(New)->setInherited(isInherited);
1856 : New->setImplicit(isImplicit);
1857 : break;
1858 : }
1859 0 : case attr::Pcs: {
1860 0 : bool isInherited = Record.readInt();
1861 0 : bool isImplicit = Record.readInt();
1862 0 : unsigned Spelling = Record.readInt();
1863 0 : PcsAttr::PCSType pCS(static_cast<PcsAttr::PCSType>(Record.readInt()));
1864 : New = new (Context) PcsAttr(Range, Context, pCS, Spelling);
1865 : cast<InheritableAttr>(New)->setInherited(isInherited);
1866 : New->setImplicit(isImplicit);
1867 : break;
1868 : }
1869 0 : case attr::PragmaClangBSSSection: {
1870 0 : bool isInherited = Record.readInt();
1871 0 : bool isImplicit = Record.readInt();
1872 0 : unsigned Spelling = Record.readInt();
1873 : std::string name= Record.readString();
1874 0 : New = new (Context) PragmaClangBSSSectionAttr(Range, Context, name, Spelling);
1875 : cast<InheritableAttr>(New)->setInherited(isInherited);
1876 : New->setImplicit(isImplicit);
1877 : break;
1878 : }
1879 0 : case attr::PragmaClangDataSection: {
1880 0 : bool isInherited = Record.readInt();
1881 0 : bool isImplicit = Record.readInt();
1882 0 : unsigned Spelling = Record.readInt();
1883 : std::string name= Record.readString();
1884 0 : New = new (Context) PragmaClangDataSectionAttr(Range, Context, name, Spelling);
1885 : cast<InheritableAttr>(New)->setInherited(isInherited);
1886 : New->setImplicit(isImplicit);
1887 : break;
1888 : }
1889 0 : case attr::PragmaClangRodataSection: {
1890 0 : bool isInherited = Record.readInt();
1891 0 : bool isImplicit = Record.readInt();
1892 0 : unsigned Spelling = Record.readInt();
1893 : std::string name= Record.readString();
1894 0 : New = new (Context) PragmaClangRodataSectionAttr(Range, Context, name, Spelling);
1895 : cast<InheritableAttr>(New)->setInherited(isInherited);
1896 : New->setImplicit(isImplicit);
1897 : break;
1898 : }
1899 0 : case attr::PragmaClangTextSection: {
1900 0 : bool isInherited = Record.readInt();
1901 0 : bool isImplicit = Record.readInt();
1902 0 : unsigned Spelling = Record.readInt();
1903 : std::string name= Record.readString();
1904 0 : New = new (Context) PragmaClangTextSectionAttr(Range, Context, name, Spelling);
1905 : cast<InheritableAttr>(New)->setInherited(isInherited);
1906 : New->setImplicit(isImplicit);
1907 : break;
1908 : }
1909 0 : case attr::PreserveAll: {
1910 0 : bool isInherited = Record.readInt();
1911 0 : bool isImplicit = Record.readInt();
1912 0 : unsigned Spelling = Record.readInt();
1913 : New = new (Context) PreserveAllAttr(Range, Context, Spelling);
1914 : cast<InheritableAttr>(New)->setInherited(isInherited);
1915 : New->setImplicit(isImplicit);
1916 : break;
1917 : }
1918 0 : case attr::PreserveMost: {
1919 0 : bool isInherited = Record.readInt();
1920 0 : bool isImplicit = Record.readInt();
1921 0 : unsigned Spelling = Record.readInt();
1922 : New = new (Context) PreserveMostAttr(Range, Context, Spelling);
1923 : cast<InheritableAttr>(New)->setInherited(isInherited);
1924 : New->setImplicit(isImplicit);
1925 : break;
1926 : }
1927 0 : case attr::PtGuardedBy: {
1928 0 : bool isInherited = Record.readInt();
1929 0 : bool isImplicit = Record.readInt();
1930 0 : unsigned Spelling = Record.readInt();
1931 : Expr * arg = Record.readExpr();
1932 : New = new (Context) PtGuardedByAttr(Range, Context, arg, Spelling);
1933 : cast<InheritableAttr>(New)->setInherited(isInherited);
1934 : New->setImplicit(isImplicit);
1935 : break;
1936 : }
1937 0 : case attr::PtGuardedVar: {
1938 0 : bool isInherited = Record.readInt();
1939 0 : bool isImplicit = Record.readInt();
1940 0 : unsigned Spelling = Record.readInt();
1941 : New = new (Context) PtGuardedVarAttr(Range, Context, Spelling);
1942 : cast<InheritableAttr>(New)->setInherited(isInherited);
1943 : New->setImplicit(isImplicit);
1944 : break;
1945 : }
1946 0 : case attr::Ptr32: {
1947 0 : bool isImplicit = Record.readInt();
1948 0 : unsigned Spelling = Record.readInt();
1949 : New = new (Context) Ptr32Attr(Range, Context, Spelling);
1950 : New->setImplicit(isImplicit);
1951 : break;
1952 : }
1953 0 : case attr::Ptr64: {
1954 0 : bool isImplicit = Record.readInt();
1955 0 : unsigned Spelling = Record.readInt();
1956 : New = new (Context) Ptr64Attr(Range, Context, Spelling);
1957 : New->setImplicit(isImplicit);
1958 : break;
1959 : }
1960 0 : case attr::Pure: {
1961 0 : bool isInherited = Record.readInt();
1962 0 : bool isImplicit = Record.readInt();
1963 0 : unsigned Spelling = Record.readInt();
1964 : New = new (Context) PureAttr(Range, Context, Spelling);
1965 : cast<InheritableAttr>(New)->setInherited(isInherited);
1966 : New->setImplicit(isImplicit);
1967 : break;
1968 : }
1969 0 : case attr::RISCVInterrupt: {
1970 0 : bool isInherited = Record.readInt();
1971 0 : bool isImplicit = Record.readInt();
1972 0 : unsigned Spelling = Record.readInt();
1973 0 : RISCVInterruptAttr::InterruptType interrupt(static_cast<RISCVInterruptAttr::InterruptType>(Record.readInt()));
1974 : New = new (Context) RISCVInterruptAttr(Range, Context, interrupt, Spelling);
1975 : cast<InheritableAttr>(New)->setInherited(isInherited);
1976 : New->setImplicit(isImplicit);
1977 : break;
1978 : }
1979 0 : case attr::RegCall: {
1980 0 : bool isInherited = Record.readInt();
1981 0 : bool isImplicit = Record.readInt();
1982 0 : unsigned Spelling = Record.readInt();
1983 : New = new (Context) RegCallAttr(Range, Context, Spelling);
1984 : cast<InheritableAttr>(New)->setInherited(isInherited);
1985 : New->setImplicit(isImplicit);
1986 : break;
1987 : }
1988 0 : case attr::Reinitializes: {
1989 0 : bool isInherited = Record.readInt();
1990 0 : bool isImplicit = Record.readInt();
1991 0 : unsigned Spelling = Record.readInt();
1992 : New = new (Context) ReinitializesAttr(Range, Context, Spelling);
1993 : cast<InheritableAttr>(New)->setInherited(isInherited);
1994 : New->setImplicit(isImplicit);
1995 : break;
1996 : }
1997 4 : case attr::ReleaseCapability: {
1998 4 : bool isInherited = Record.readInt();
1999 4 : bool isImplicit = Record.readInt();
2000 4 : unsigned Spelling = Record.readInt();
2001 4 : unsigned argsSize = Record.readInt();
2002 : SmallVector<Expr *, 4> args;
2003 : args.reserve(argsSize);
2004 5 : for (unsigned i = 0; i != argsSize; ++i)
2005 1 : args.push_back(Record.readExpr());
2006 4 : New = new (Context) ReleaseCapabilityAttr(Range, Context, args.data(), argsSize, Spelling);
2007 : cast<InheritableAttr>(New)->setInherited(isInherited);
2008 : New->setImplicit(isImplicit);
2009 : break;
2010 : }
2011 0 : case attr::RenderScriptKernel: {
2012 0 : bool isImplicit = Record.readInt();
2013 0 : unsigned Spelling = Record.readInt();
2014 : New = new (Context) RenderScriptKernelAttr(Range, Context, Spelling);
2015 : New->setImplicit(isImplicit);
2016 : break;
2017 : }
2018 0 : case attr::ReqdWorkGroupSize: {
2019 0 : bool isInherited = Record.readInt();
2020 0 : bool isImplicit = Record.readInt();
2021 0 : unsigned Spelling = Record.readInt();
2022 0 : unsigned xDim = Record.readInt();
2023 0 : unsigned yDim = Record.readInt();
2024 0 : unsigned zDim = Record.readInt();
2025 : New = new (Context) ReqdWorkGroupSizeAttr(Range, Context, xDim, yDim, zDim, Spelling);
2026 : cast<InheritableAttr>(New)->setInherited(isInherited);
2027 : New->setImplicit(isImplicit);
2028 : break;
2029 : }
2030 0 : case attr::RequireConstantInit: {
2031 0 : bool isInherited = Record.readInt();
2032 0 : bool isImplicit = Record.readInt();
2033 0 : unsigned Spelling = Record.readInt();
2034 : New = new (Context) RequireConstantInitAttr(Range, Context, Spelling);
2035 : cast<InheritableAttr>(New)->setInherited(isInherited);
2036 : New->setImplicit(isImplicit);
2037 : break;
2038 : }
2039 0 : case attr::RequiresCapability: {
2040 0 : bool isInherited = Record.readInt();
2041 0 : bool isImplicit = Record.readInt();
2042 0 : unsigned Spelling = Record.readInt();
2043 0 : unsigned argsSize = Record.readInt();
2044 : SmallVector<Expr *, 4> args;
2045 : args.reserve(argsSize);
2046 0 : for (unsigned i = 0; i != argsSize; ++i)
2047 0 : args.push_back(Record.readExpr());
2048 0 : New = new (Context) RequiresCapabilityAttr(Range, Context, args.data(), argsSize, Spelling);
2049 : cast<InheritableAttr>(New)->setInherited(isInherited);
2050 : New->setImplicit(isImplicit);
2051 : break;
2052 : }
2053 0 : case attr::Restrict: {
2054 0 : bool isInherited = Record.readInt();
2055 0 : bool isImplicit = Record.readInt();
2056 0 : unsigned Spelling = Record.readInt();
2057 : New = new (Context) RestrictAttr(Range, Context, Spelling);
2058 : cast<InheritableAttr>(New)->setInherited(isInherited);
2059 : New->setImplicit(isImplicit);
2060 : break;
2061 : }
2062 0 : case attr::ReturnTypestate: {
2063 0 : bool isInherited = Record.readInt();
2064 0 : bool isImplicit = Record.readInt();
2065 0 : unsigned Spelling = Record.readInt();
2066 0 : ReturnTypestateAttr::ConsumedState state(static_cast<ReturnTypestateAttr::ConsumedState>(Record.readInt()));
2067 : New = new (Context) ReturnTypestateAttr(Range, Context, state, Spelling);
2068 : cast<InheritableAttr>(New)->setInherited(isInherited);
2069 : New->setImplicit(isImplicit);
2070 : break;
2071 : }
2072 0 : case attr::ReturnsNonNull: {
2073 0 : bool isInherited = Record.readInt();
2074 0 : bool isImplicit = Record.readInt();
2075 0 : unsigned Spelling = Record.readInt();
2076 : New = new (Context) ReturnsNonNullAttr(Range, Context, Spelling);
2077 : cast<InheritableAttr>(New)->setInherited(isInherited);
2078 : New->setImplicit(isImplicit);
2079 : break;
2080 : }
2081 0 : case attr::ReturnsTwice: {
2082 0 : bool isInherited = Record.readInt();
2083 0 : bool isImplicit = Record.readInt();
2084 0 : unsigned Spelling = Record.readInt();
2085 : New = new (Context) ReturnsTwiceAttr(Range, Context, Spelling);
2086 : cast<InheritableAttr>(New)->setInherited(isInherited);
2087 : New->setImplicit(isImplicit);
2088 : break;
2089 : }
2090 0 : case attr::SPtr: {
2091 0 : bool isImplicit = Record.readInt();
2092 0 : unsigned Spelling = Record.readInt();
2093 : New = new (Context) SPtrAttr(Range, Context, Spelling);
2094 : New->setImplicit(isImplicit);
2095 : break;
2096 : }
2097 0 : case attr::ScopedLockable: {
2098 0 : bool isInherited = Record.readInt();
2099 0 : bool isImplicit = Record.readInt();
2100 0 : unsigned Spelling = Record.readInt();
2101 : New = new (Context) ScopedLockableAttr(Range, Context, Spelling);
2102 : cast<InheritableAttr>(New)->setInherited(isInherited);
2103 : New->setImplicit(isImplicit);
2104 : break;
2105 : }
2106 0 : case attr::Section: {
2107 0 : bool isInherited = Record.readInt();
2108 0 : bool isImplicit = Record.readInt();
2109 0 : unsigned Spelling = Record.readInt();
2110 : std::string name= Record.readString();
2111 0 : New = new (Context) SectionAttr(Range, Context, name, Spelling);
2112 : cast<InheritableAttr>(New)->setInherited(isInherited);
2113 : New->setImplicit(isImplicit);
2114 : break;
2115 : }
2116 0 : case attr::SelectAny: {
2117 0 : bool isInherited = Record.readInt();
2118 0 : bool isImplicit = Record.readInt();
2119 0 : unsigned Spelling = Record.readInt();
2120 : New = new (Context) SelectAnyAttr(Range, Context, Spelling);
2121 : cast<InheritableAttr>(New)->setInherited(isInherited);
2122 : New->setImplicit(isImplicit);
2123 : break;
2124 : }
2125 0 : case attr::Sentinel: {
2126 0 : bool isInherited = Record.readInt();
2127 0 : bool isImplicit = Record.readInt();
2128 0 : unsigned Spelling = Record.readInt();
2129 0 : int sentinel = Record.readInt();
2130 0 : int nullPos = Record.readInt();
2131 : New = new (Context) SentinelAttr(Range, Context, sentinel, nullPos, Spelling);
2132 : cast<InheritableAttr>(New)->setInherited(isInherited);
2133 : New->setImplicit(isImplicit);
2134 : break;
2135 : }
2136 0 : case attr::SetTypestate: {
2137 0 : bool isInherited = Record.readInt();
2138 0 : bool isImplicit = Record.readInt();
2139 0 : unsigned Spelling = Record.readInt();
2140 0 : SetTypestateAttr::ConsumedState newState(static_cast<SetTypestateAttr::ConsumedState>(Record.readInt()));
2141 : New = new (Context) SetTypestateAttr(Range, Context, newState, Spelling);
2142 : cast<InheritableAttr>(New)->setInherited(isInherited);
2143 : New->setImplicit(isImplicit);
2144 : break;
2145 : }
2146 0 : case attr::SharedTrylockFunction: {
2147 0 : bool isInherited = Record.readInt();
2148 0 : bool isImplicit = Record.readInt();
2149 0 : unsigned Spelling = Record.readInt();
2150 : Expr * successValue = Record.readExpr();
2151 0 : unsigned argsSize = Record.readInt();
2152 : SmallVector<Expr *, 4> args;
2153 : args.reserve(argsSize);
2154 0 : for (unsigned i = 0; i != argsSize; ++i)
2155 0 : args.push_back(Record.readExpr());
2156 0 : New = new (Context) SharedTrylockFunctionAttr(Range, Context, successValue, args.data(), argsSize, Spelling);
2157 : cast<InheritableAttr>(New)->setInherited(isInherited);
2158 : New->setImplicit(isImplicit);
2159 : break;
2160 : }
2161 0 : case attr::StdCall: {
2162 0 : bool isInherited = Record.readInt();
2163 0 : bool isImplicit = Record.readInt();
2164 0 : unsigned Spelling = Record.readInt();
2165 : New = new (Context) StdCallAttr(Range, Context, Spelling);
2166 : cast<InheritableAttr>(New)->setInherited(isInherited);
2167 : New->setImplicit(isImplicit);
2168 : break;
2169 : }
2170 0 : case attr::Suppress: {
2171 0 : bool isImplicit = Record.readInt();
2172 0 : unsigned Spelling = Record.readInt();
2173 0 : unsigned diagnosticIdentifiersSize = Record.readInt();
2174 : SmallVector<StringRef, 4> diagnosticIdentifiers;
2175 : diagnosticIdentifiers.reserve(diagnosticIdentifiersSize);
2176 0 : SmallVector<std::string, 4> diagnosticIdentifiersStorage;
2177 : diagnosticIdentifiersStorage.reserve(diagnosticIdentifiersSize);
2178 0 : for (unsigned i = 0; i != diagnosticIdentifiersSize; ++i)
2179 0 : diagnosticIdentifiersStorage.push_back(Record.readString());
2180 0 : for (unsigned i = 0; i != diagnosticIdentifiersSize; ++i)
2181 0 : diagnosticIdentifiers.push_back(diagnosticIdentifiersStorage[i]);
2182 0 : New = new (Context) SuppressAttr(Range, Context, diagnosticIdentifiers.data(), diagnosticIdentifiersSize, Spelling);
2183 : New->setImplicit(isImplicit);
2184 : break;
2185 : }
2186 0 : case attr::SwiftCall: {
2187 0 : bool isInherited = Record.readInt();
2188 0 : bool isImplicit = Record.readInt();
2189 0 : unsigned Spelling = Record.readInt();
2190 : New = new (Context) SwiftCallAttr(Range, Context, Spelling);
2191 : cast<InheritableAttr>(New)->setInherited(isInherited);
2192 : New->setImplicit(isImplicit);
2193 : break;
2194 : }
2195 0 : case attr::SwiftContext: {
2196 0 : bool isInherited = Record.readInt();
2197 0 : bool isImplicit = Record.readInt();
2198 0 : unsigned Spelling = Record.readInt();
2199 : New = new (Context) SwiftContextAttr(Range, Context, Spelling);
2200 : cast<InheritableAttr>(New)->setInherited(isInherited);
2201 : New->setImplicit(isImplicit);
2202 : break;
2203 : }
2204 0 : case attr::SwiftErrorResult: {
2205 0 : bool isInherited = Record.readInt();
2206 0 : bool isImplicit = Record.readInt();
2207 0 : unsigned Spelling = Record.readInt();
2208 : New = new (Context) SwiftErrorResultAttr(Range, Context, Spelling);
2209 : cast<InheritableAttr>(New)->setInherited(isInherited);
2210 : New->setImplicit(isImplicit);
2211 : break;
2212 : }
2213 0 : case attr::SwiftIndirectResult: {
2214 0 : bool isInherited = Record.readInt();
2215 0 : bool isImplicit = Record.readInt();
2216 0 : unsigned Spelling = Record.readInt();
2217 : New = new (Context) SwiftIndirectResultAttr(Range, Context, Spelling);
2218 : cast<InheritableAttr>(New)->setInherited(isInherited);
2219 : New->setImplicit(isImplicit);
2220 : break;
2221 : }
2222 0 : case attr::SysVABI: {
2223 0 : bool isInherited = Record.readInt();
2224 0 : bool isImplicit = Record.readInt();
2225 0 : unsigned Spelling = Record.readInt();
2226 : New = new (Context) SysVABIAttr(Range, Context, Spelling);
2227 : cast<InheritableAttr>(New)->setInherited(isInherited);
2228 : New->setImplicit(isImplicit);
2229 : break;
2230 : }
2231 0 : case attr::TLSModel: {
2232 0 : bool isInherited = Record.readInt();
2233 0 : bool isImplicit = Record.readInt();
2234 0 : unsigned Spelling = Record.readInt();
2235 : std::string model= Record.readString();
2236 0 : New = new (Context) TLSModelAttr(Range, Context, model, Spelling);
2237 : cast<InheritableAttr>(New)->setInherited(isInherited);
2238 : New->setImplicit(isImplicit);
2239 : break;
2240 : }
2241 9 : case attr::Target: {
2242 9 : bool isInherited = Record.readInt();
2243 9 : bool isImplicit = Record.readInt();
2244 9 : unsigned Spelling = Record.readInt();
2245 : std::string featuresStr= Record.readString();
2246 9 : New = new (Context) TargetAttr(Range, Context, featuresStr, Spelling);
2247 : cast<InheritableAttr>(New)->setInherited(isInherited);
2248 : New->setImplicit(isImplicit);
2249 : break;
2250 : }
2251 0 : case attr::TestTypestate: {
2252 0 : bool isInherited = Record.readInt();
2253 0 : bool isImplicit = Record.readInt();
2254 0 : unsigned Spelling = Record.readInt();
2255 0 : TestTypestateAttr::ConsumedState testState(static_cast<TestTypestateAttr::ConsumedState>(Record.readInt()));
2256 : New = new (Context) TestTypestateAttr(Range, Context, testState, Spelling);
2257 : cast<InheritableAttr>(New)->setInherited(isInherited);
2258 : New->setImplicit(isImplicit);
2259 : break;
2260 : }
2261 0 : case attr::ThisCall: {
2262 0 : bool isInherited = Record.readInt();
2263 0 : bool isImplicit = Record.readInt();
2264 0 : unsigned Spelling = Record.readInt();
2265 : New = new (Context) ThisCallAttr(Range, Context, Spelling);
2266 : cast<InheritableAttr>(New)->setInherited(isInherited);
2267 : New->setImplicit(isImplicit);
2268 : break;
2269 : }
2270 0 : case attr::Thread: {
2271 0 : bool isImplicit = Record.readInt();
2272 0 : unsigned Spelling = Record.readInt();
2273 : New = new (Context) ThreadAttr(Range, Context, Spelling);
2274 : New->setImplicit(isImplicit);
2275 : break;
2276 : }
2277 0 : case attr::TransparentUnion: {
2278 0 : bool isInherited = Record.readInt();
2279 0 : bool isImplicit = Record.readInt();
2280 0 : unsigned Spelling = Record.readInt();
2281 : New = new (Context) TransparentUnionAttr(Range, Context, Spelling);
2282 : cast<InheritableAttr>(New)->setInherited(isInherited);
2283 : New->setImplicit(isImplicit);
2284 : break;
2285 : }
2286 0 : case attr::TrivialABI: {
2287 0 : bool isInherited = Record.readInt();
2288 0 : bool isImplicit = Record.readInt();
2289 0 : unsigned Spelling = Record.readInt();
2290 : New = new (Context) TrivialABIAttr(Range, Context, Spelling);
2291 : cast<InheritableAttr>(New)->setInherited(isInherited);
2292 : New->setImplicit(isImplicit);
2293 : break;
2294 : }
2295 0 : case attr::TryAcquireCapability: {
2296 0 : bool isInherited = Record.readInt();
2297 0 : bool isImplicit = Record.readInt();
2298 0 : unsigned Spelling = Record.readInt();
2299 : Expr * successValue = Record.readExpr();
2300 0 : unsigned argsSize = Record.readInt();
2301 : SmallVector<Expr *, 4> args;
2302 : args.reserve(argsSize);
2303 0 : for (unsigned i = 0; i != argsSize; ++i)
2304 0 : args.push_back(Record.readExpr());
2305 0 : New = new (Context) TryAcquireCapabilityAttr(Range, Context, successValue, args.data(), argsSize, Spelling);
2306 : cast<InheritableAttr>(New)->setInherited(isInherited);
2307 : New->setImplicit(isImplicit);
2308 : break;
2309 : }
2310 0 : case attr::TypeNonNull: {
2311 0 : bool isImplicit = Record.readInt();
2312 0 : unsigned Spelling = Record.readInt();
2313 : New = new (Context) TypeNonNullAttr(Range, Context, Spelling);
2314 : New->setImplicit(isImplicit);
2315 : break;
2316 : }
2317 0 : case attr::TypeNullUnspecified: {
2318 0 : bool isImplicit = Record.readInt();
2319 0 : unsigned Spelling = Record.readInt();
2320 : New = new (Context) TypeNullUnspecifiedAttr(Range, Context, Spelling);
2321 : New->setImplicit(isImplicit);
2322 : break;
2323 : }
2324 4 : case attr::TypeNullable: {
2325 4 : bool isImplicit = Record.readInt();
2326 4 : unsigned Spelling = Record.readInt();
2327 : New = new (Context) TypeNullableAttr(Range, Context, Spelling);
2328 : New->setImplicit(isImplicit);
2329 : break;
2330 : }
2331 0 : case attr::TypeTagForDatatype: {
2332 0 : bool isInherited = Record.readInt();
2333 0 : bool isImplicit = Record.readInt();
2334 0 : unsigned Spelling = Record.readInt();
2335 : IdentifierInfo * argumentKind = Record.getIdentifierInfo();
2336 : TypeSourceInfo * matchingCType = Record.getTypeSourceInfo();
2337 0 : bool layoutCompatible = Record.readInt();
2338 0 : bool mustBeNull = Record.readInt();
2339 : New = new (Context) TypeTagForDatatypeAttr(Range, Context, argumentKind, matchingCType, layoutCompatible, mustBeNull, Spelling);
2340 : cast<InheritableAttr>(New)->setInherited(isInherited);
2341 : New->setImplicit(isImplicit);
2342 : break;
2343 : }
2344 9 : case attr::TypeVisibility: {
2345 9 : bool isInherited = Record.readInt();
2346 9 : bool isImplicit = Record.readInt();
2347 9 : unsigned Spelling = Record.readInt();
2348 9 : TypeVisibilityAttr::VisibilityType visibility(static_cast<TypeVisibilityAttr::VisibilityType>(Record.readInt()));
2349 : New = new (Context) TypeVisibilityAttr(Range, Context, visibility, Spelling);
2350 : cast<InheritableAttr>(New)->setInherited(isInherited);
2351 : New->setImplicit(isImplicit);
2352 : break;
2353 : }
2354 0 : case attr::UPtr: {
2355 0 : bool isImplicit = Record.readInt();
2356 0 : unsigned Spelling = Record.readInt();
2357 : New = new (Context) UPtrAttr(Range, Context, Spelling);
2358 : New->setImplicit(isImplicit);
2359 : break;
2360 : }
2361 8 : case attr::Unavailable: {
2362 8 : bool isInherited = Record.readInt();
2363 8 : bool isImplicit = Record.readInt();
2364 8 : unsigned Spelling = Record.readInt();
2365 : std::string message= Record.readString();
2366 8 : UnavailableAttr::ImplicitReason implicitReason(static_cast<UnavailableAttr::ImplicitReason>(Record.readInt()));
2367 8 : New = new (Context) UnavailableAttr(Range, Context, message, implicitReason, Spelling);
2368 : cast<InheritableAttr>(New)->setInherited(isInherited);
2369 : New->setImplicit(isImplicit);
2370 : break;
2371 : }
2372 0 : case attr::Unused: {
2373 0 : bool isInherited = Record.readInt();
2374 0 : bool isImplicit = Record.readInt();
2375 0 : unsigned Spelling = Record.readInt();
2376 : New = new (Context) UnusedAttr(Range, Context, Spelling);
2377 : cast<InheritableAttr>(New)->setInherited(isInherited);
2378 : New->setImplicit(isImplicit);
2379 : break;
2380 : }
2381 0 : case attr::Used: {
2382 0 : bool isInherited = Record.readInt();
2383 0 : bool isImplicit = Record.readInt();
2384 0 : unsigned Spelling = Record.readInt();
2385 : New = new (Context) UsedAttr(Range, Context, Spelling);
2386 : cast<InheritableAttr>(New)->setInherited(isInherited);
2387 : New->setImplicit(isImplicit);
2388 : break;
2389 : }
2390 0 : case attr::Uuid: {
2391 0 : bool isInherited = Record.readInt();
2392 0 : bool isImplicit = Record.readInt();
2393 0 : unsigned Spelling = Record.readInt();
2394 : std::string guid= Record.readString();
2395 0 : New = new (Context) UuidAttr(Range, Context, guid, Spelling);
2396 : cast<InheritableAttr>(New)->setInherited(isInherited);
2397 : New->setImplicit(isImplicit);
2398 : break;
2399 : }
2400 0 : case attr::VecReturn: {
2401 0 : bool isInherited = Record.readInt();
2402 0 : bool isImplicit = Record.readInt();
2403 0 : unsigned Spelling = Record.readInt();
2404 : New = new (Context) VecReturnAttr(Range, Context, Spelling);
2405 : cast<InheritableAttr>(New)->setInherited(isInherited);
2406 : New->setImplicit(isImplicit);
2407 : break;
2408 : }
2409 0 : case attr::VecTypeHint: {
2410 0 : bool isInherited = Record.readInt();
2411 0 : bool isImplicit = Record.readInt();
2412 0 : unsigned Spelling = Record.readInt();
2413 : TypeSourceInfo * typeHint = Record.getTypeSourceInfo();
2414 : New = new (Context) VecTypeHintAttr(Range, Context, typeHint, Spelling);
2415 : cast<InheritableAttr>(New)->setInherited(isInherited);
2416 : New->setImplicit(isImplicit);
2417 : break;
2418 : }
2419 0 : case attr::VectorCall: {
2420 0 : bool isInherited = Record.readInt();
2421 0 : bool isImplicit = Record.readInt();
2422 0 : unsigned Spelling = Record.readInt();
2423 : New = new (Context) VectorCallAttr(Range, Context, Spelling);
2424 : cast<InheritableAttr>(New)->setInherited(isInherited);
2425 : New->setImplicit(isImplicit);
2426 : break;
2427 : }
2428 76 : case attr::Visibility: {
2429 76 : bool isInherited = Record.readInt();
2430 76 : bool isImplicit = Record.readInt();
2431 76 : unsigned Spelling = Record.readInt();
2432 76 : VisibilityAttr::VisibilityType visibility(static_cast<VisibilityAttr::VisibilityType>(Record.readInt()));
2433 : New = new (Context) VisibilityAttr(Range, Context, visibility, Spelling);
2434 : cast<InheritableAttr>(New)->setInherited(isInherited);
2435 : New->setImplicit(isImplicit);
2436 : break;
2437 : }
2438 0 : case attr::WarnUnused: {
2439 0 : bool isInherited = Record.readInt();
2440 0 : bool isImplicit = Record.readInt();
2441 0 : unsigned Spelling = Record.readInt();
2442 : New = new (Context) WarnUnusedAttr(Range, Context, Spelling);
2443 : cast<InheritableAttr>(New)->setInherited(isInherited);
2444 : New->setImplicit(isImplicit);
2445 : break;
2446 : }
2447 0 : case attr::WarnUnusedResult: {
2448 0 : bool isInherited = Record.readInt();
2449 0 : bool isImplicit = Record.readInt();
2450 0 : unsigned Spelling = Record.readInt();
2451 : New = new (Context) WarnUnusedResultAttr(Range, Context, Spelling);
2452 : cast<InheritableAttr>(New)->setInherited(isInherited);
2453 : New->setImplicit(isImplicit);
2454 : break;
2455 : }
2456 140 : case attr::Weak: {
2457 140 : bool isInherited = Record.readInt();
2458 140 : bool isImplicit = Record.readInt();
2459 140 : unsigned Spelling = Record.readInt();
2460 : New = new (Context) WeakAttr(Range, Context, Spelling);
2461 : cast<InheritableAttr>(New)->setInherited(isInherited);
2462 : New->setImplicit(isImplicit);
2463 : break;
2464 : }
2465 0 : case attr::WeakImport: {
2466 0 : bool isInherited = Record.readInt();
2467 0 : bool isImplicit = Record.readInt();
2468 0 : unsigned Spelling = Record.readInt();
2469 : New = new (Context) WeakImportAttr(Range, Context, Spelling);
2470 : cast<InheritableAttr>(New)->setInherited(isInherited);
2471 : New->setImplicit(isImplicit);
2472 : break;
2473 : }
2474 2 : case attr::WeakRef: {
2475 2 : bool isInherited = Record.readInt();
2476 2 : bool isImplicit = Record.readInt();
2477 2 : unsigned Spelling = Record.readInt();
2478 : std::string aliasee= Record.readString();
2479 2 : New = new (Context) WeakRefAttr(Range, Context, aliasee, Spelling);
2480 : cast<InheritableAttr>(New)->setInherited(isInherited);
2481 : New->setImplicit(isImplicit);
2482 : break;
2483 : }
2484 0 : case attr::WorkGroupSizeHint: {
2485 0 : bool isInherited = Record.readInt();
2486 0 : bool isImplicit = Record.readInt();
2487 0 : unsigned Spelling = Record.readInt();
2488 0 : unsigned xDim = Record.readInt();
2489 0 : unsigned yDim = Record.readInt();
2490 0 : unsigned zDim = Record.readInt();
2491 : New = new (Context) WorkGroupSizeHintAttr(Range, Context, xDim, yDim, zDim, Spelling);
2492 : cast<InheritableAttr>(New)->setInherited(isInherited);
2493 : New->setImplicit(isImplicit);
2494 : break;
2495 : }
2496 0 : case attr::X86ForceAlignArgPointer: {
2497 0 : bool isInherited = Record.readInt();
2498 0 : bool isImplicit = Record.readInt();
2499 0 : unsigned Spelling = Record.readInt();
2500 : New = new (Context) X86ForceAlignArgPointerAttr(Range, Context, Spelling);
2501 : cast<InheritableAttr>(New)->setInherited(isInherited);
2502 : New->setImplicit(isImplicit);
2503 : break;
2504 : }
2505 0 : case attr::XRayInstrument: {
2506 0 : bool isInherited = Record.readInt();
2507 0 : bool isImplicit = Record.readInt();
2508 0 : unsigned Spelling = Record.readInt();
2509 : New = new (Context) XRayInstrumentAttr(Range, Context, Spelling);
2510 : cast<InheritableAttr>(New)->setInherited(isInherited);
2511 : New->setImplicit(isImplicit);
2512 : break;
2513 : }
2514 2 : case attr::XRayLogArgs: {
2515 2 : bool isInherited = Record.readInt();
2516 2 : bool isImplicit = Record.readInt();
2517 2 : unsigned Spelling = Record.readInt();
2518 2 : unsigned argumentCount = Record.readInt();
2519 : New = new (Context) XRayLogArgsAttr(Range, Context, argumentCount, Spelling);
2520 : cast<InheritableAttr>(New)->setInherited(isInherited);
2521 : New->setImplicit(isImplicit);
2522 : break;
2523 : }
2524 : }
|