@@ -300,6 +300,128 @@ static const EnumEntry<COFF::SectionCharacteristics>
300
300
CV_ENUM_ENT (COFF, IMAGE_SCN_MEM_READ),
301
301
CV_ENUM_ENT (COFF, IMAGE_SCN_MEM_WRITE)};
302
302
303
+ static const EnumEntry<uint16_t > ClassOptionNames[] = {
304
+ CV_ENUM_CLASS_ENT (ClassOptions, Packed),
305
+ CV_ENUM_CLASS_ENT (ClassOptions, HasConstructorOrDestructor),
306
+ CV_ENUM_CLASS_ENT (ClassOptions, HasOverloadedOperator),
307
+ CV_ENUM_CLASS_ENT (ClassOptions, Nested),
308
+ CV_ENUM_CLASS_ENT (ClassOptions, ContainsNestedClass),
309
+ CV_ENUM_CLASS_ENT (ClassOptions, HasOverloadedAssignmentOperator),
310
+ CV_ENUM_CLASS_ENT (ClassOptions, HasConversionOperator),
311
+ CV_ENUM_CLASS_ENT (ClassOptions, ForwardReference),
312
+ CV_ENUM_CLASS_ENT (ClassOptions, Scoped),
313
+ CV_ENUM_CLASS_ENT (ClassOptions, HasUniqueName),
314
+ CV_ENUM_CLASS_ENT (ClassOptions, Sealed),
315
+ CV_ENUM_CLASS_ENT (ClassOptions, Intrinsic),
316
+ };
317
+
318
+ static const EnumEntry<uint8_t > MemberAccessNames[] = {
319
+ CV_ENUM_CLASS_ENT (MemberAccess, None),
320
+ CV_ENUM_CLASS_ENT (MemberAccess, Private),
321
+ CV_ENUM_CLASS_ENT (MemberAccess, Protected),
322
+ CV_ENUM_CLASS_ENT (MemberAccess, Public),
323
+ };
324
+
325
+ static const EnumEntry<uint16_t > MethodOptionNames[] = {
326
+ CV_ENUM_CLASS_ENT (MethodOptions, Pseudo),
327
+ CV_ENUM_CLASS_ENT (MethodOptions, NoInherit),
328
+ CV_ENUM_CLASS_ENT (MethodOptions, NoConstruct),
329
+ CV_ENUM_CLASS_ENT (MethodOptions, CompilerGenerated),
330
+ CV_ENUM_CLASS_ENT (MethodOptions, Sealed),
331
+ };
332
+
333
+ static const EnumEntry<uint16_t > MemberKindNames[] = {
334
+ CV_ENUM_CLASS_ENT (MethodKind, Vanilla),
335
+ CV_ENUM_CLASS_ENT (MethodKind, Virtual),
336
+ CV_ENUM_CLASS_ENT (MethodKind, Static),
337
+ CV_ENUM_CLASS_ENT (MethodKind, Friend),
338
+ CV_ENUM_CLASS_ENT (MethodKind, IntroducingVirtual),
339
+ CV_ENUM_CLASS_ENT (MethodKind, PureVirtual),
340
+ CV_ENUM_CLASS_ENT (MethodKind, PureIntroducingVirtual),
341
+ };
342
+
343
+ static const EnumEntry<uint8_t > PtrKindNames[] = {
344
+ CV_ENUM_CLASS_ENT (PointerKind, Near16),
345
+ CV_ENUM_CLASS_ENT (PointerKind, Far16),
346
+ CV_ENUM_CLASS_ENT (PointerKind, Huge16),
347
+ CV_ENUM_CLASS_ENT (PointerKind, BasedOnSegment),
348
+ CV_ENUM_CLASS_ENT (PointerKind, BasedOnValue),
349
+ CV_ENUM_CLASS_ENT (PointerKind, BasedOnSegmentValue),
350
+ CV_ENUM_CLASS_ENT (PointerKind, BasedOnAddress),
351
+ CV_ENUM_CLASS_ENT (PointerKind, BasedOnSegmentAddress),
352
+ CV_ENUM_CLASS_ENT (PointerKind, BasedOnType),
353
+ CV_ENUM_CLASS_ENT (PointerKind, BasedOnSelf),
354
+ CV_ENUM_CLASS_ENT (PointerKind, Near32),
355
+ CV_ENUM_CLASS_ENT (PointerKind, Far32),
356
+ CV_ENUM_CLASS_ENT (PointerKind, Near64),
357
+ };
358
+
359
+ static const EnumEntry<uint8_t > PtrModeNames[] = {
360
+ CV_ENUM_CLASS_ENT (PointerMode, Pointer),
361
+ CV_ENUM_CLASS_ENT (PointerMode, LValueReference),
362
+ CV_ENUM_CLASS_ENT (PointerMode, PointerToDataMember),
363
+ CV_ENUM_CLASS_ENT (PointerMode, PointerToMemberFunction),
364
+ CV_ENUM_CLASS_ENT (PointerMode, RValueReference),
365
+ };
366
+
367
+ static const EnumEntry<uint16_t > PtrMemberRepNames[] = {
368
+ CV_ENUM_CLASS_ENT (PointerToMemberRepresentation, Unknown),
369
+ CV_ENUM_CLASS_ENT (PointerToMemberRepresentation, SingleInheritanceData),
370
+ CV_ENUM_CLASS_ENT (PointerToMemberRepresentation, MultipleInheritanceData),
371
+ CV_ENUM_CLASS_ENT (PointerToMemberRepresentation, VirtualInheritanceData),
372
+ CV_ENUM_CLASS_ENT (PointerToMemberRepresentation, GeneralData),
373
+ CV_ENUM_CLASS_ENT (PointerToMemberRepresentation, SingleInheritanceFunction),
374
+ CV_ENUM_CLASS_ENT (PointerToMemberRepresentation,
375
+ MultipleInheritanceFunction),
376
+ CV_ENUM_CLASS_ENT (PointerToMemberRepresentation,
377
+ VirtualInheritanceFunction),
378
+ CV_ENUM_CLASS_ENT (PointerToMemberRepresentation, GeneralFunction),
379
+ };
380
+
381
+ static const EnumEntry<uint16_t > TypeModifierNames[] = {
382
+ CV_ENUM_CLASS_ENT (ModifierOptions, Const),
383
+ CV_ENUM_CLASS_ENT (ModifierOptions, Volatile),
384
+ CV_ENUM_CLASS_ENT (ModifierOptions, Unaligned),
385
+ };
386
+
387
+ static const EnumEntry<uint8_t > CallingConventions[] = {
388
+ CV_ENUM_CLASS_ENT (CallingConvention, NearC),
389
+ CV_ENUM_CLASS_ENT (CallingConvention, FarC),
390
+ CV_ENUM_CLASS_ENT (CallingConvention, NearPascal),
391
+ CV_ENUM_CLASS_ENT (CallingConvention, FarPascal),
392
+ CV_ENUM_CLASS_ENT (CallingConvention, NearFast),
393
+ CV_ENUM_CLASS_ENT (CallingConvention, FarFast),
394
+ CV_ENUM_CLASS_ENT (CallingConvention, NearStdCall),
395
+ CV_ENUM_CLASS_ENT (CallingConvention, FarStdCall),
396
+ CV_ENUM_CLASS_ENT (CallingConvention, NearSysCall),
397
+ CV_ENUM_CLASS_ENT (CallingConvention, FarSysCall),
398
+ CV_ENUM_CLASS_ENT (CallingConvention, ThisCall),
399
+ CV_ENUM_CLASS_ENT (CallingConvention, MipsCall),
400
+ CV_ENUM_CLASS_ENT (CallingConvention, Generic),
401
+ CV_ENUM_CLASS_ENT (CallingConvention, AlphaCall),
402
+ CV_ENUM_CLASS_ENT (CallingConvention, PpcCall),
403
+ CV_ENUM_CLASS_ENT (CallingConvention, SHCall),
404
+ CV_ENUM_CLASS_ENT (CallingConvention, ArmCall),
405
+ CV_ENUM_CLASS_ENT (CallingConvention, AM33Call),
406
+ CV_ENUM_CLASS_ENT (CallingConvention, TriCall),
407
+ CV_ENUM_CLASS_ENT (CallingConvention, SH5Call),
408
+ CV_ENUM_CLASS_ENT (CallingConvention, M32RCall),
409
+ CV_ENUM_CLASS_ENT (CallingConvention, ClrCall),
410
+ CV_ENUM_CLASS_ENT (CallingConvention, Inline),
411
+ CV_ENUM_CLASS_ENT (CallingConvention, NearVector),
412
+ };
413
+
414
+ static const EnumEntry<uint8_t > FunctionOptionEnum[] = {
415
+ CV_ENUM_CLASS_ENT (FunctionOptions, CxxReturnUdt),
416
+ CV_ENUM_CLASS_ENT (FunctionOptions, Constructor),
417
+ CV_ENUM_CLASS_ENT (FunctionOptions, ConstructorWithVirtualBases),
418
+ };
419
+
420
+ static const EnumEntry<uint16_t > LabelTypeEnum[] = {
421
+ CV_ENUM_CLASS_ENT (LabelType, Near),
422
+ CV_ENUM_CLASS_ENT (LabelType, Far),
423
+ };
424
+
303
425
namespace llvm {
304
426
namespace codeview {
305
427
@@ -379,5 +501,49 @@ getImageSectionCharacteristicNames() {
379
501
return makeArrayRef (ImageSectionCharacteristicNames);
380
502
}
381
503
504
+ ArrayRef<EnumEntry<uint16_t >> getClassOptionNames () {
505
+ return makeArrayRef (ClassOptionNames);
506
+ }
507
+
508
+ ArrayRef<EnumEntry<uint8_t >> getMemberAccessNames () {
509
+ return makeArrayRef (MemberAccessNames);
510
+ }
511
+
512
+ ArrayRef<EnumEntry<uint16_t >> getMethodOptionNames () {
513
+ return makeArrayRef (MethodOptionNames);
514
+ }
515
+
516
+ ArrayRef<EnumEntry<uint16_t >> getMemberKindNames () {
517
+ return makeArrayRef (MemberKindNames);
518
+ }
519
+
520
+ ArrayRef<EnumEntry<uint8_t >> getPtrKindNames () {
521
+ return makeArrayRef (PtrKindNames);
522
+ }
523
+
524
+ ArrayRef<EnumEntry<uint8_t >> getPtrModeNames () {
525
+ return makeArrayRef (PtrModeNames);
526
+ }
527
+
528
+ ArrayRef<EnumEntry<uint16_t >> getPtrMemberRepNames () {
529
+ return makeArrayRef (PtrMemberRepNames);
530
+ }
531
+
532
+ ArrayRef<EnumEntry<uint16_t >> getTypeModifierNames () {
533
+ return makeArrayRef (TypeModifierNames);
534
+ }
535
+
536
+ ArrayRef<EnumEntry<uint8_t >> getCallingConventions () {
537
+ return makeArrayRef (CallingConventions);
538
+ }
539
+
540
+ ArrayRef<EnumEntry<uint8_t >> getFunctionOptionEnum () {
541
+ return makeArrayRef (FunctionOptionEnum);
542
+ }
543
+
544
+ ArrayRef<EnumEntry<uint16_t >> getLabelTypeEnum () {
545
+ return makeArrayRef (LabelTypeEnum);
546
+ }
547
+
382
548
} // end namespace codeview
383
549
} // end namespace llvm
0 commit comments