@@ -592,7 +592,7 @@ void MicrosoftCXXNameMangler::mangleMemberDataPointer(const CXXRecordDecl *RD,
592592
593593 int64_t FieldOffset;
594594 int64_t VBTableOffset;
595- MSInheritanceAttr::Spelling IM = RD->getMSInheritanceModel ();
595+ MSInheritanceModel IM = RD->getMSInheritanceModel ();
596596 if (VD) {
597597 FieldOffset = getASTContext ().getFieldOffset (VD);
598598 assert (FieldOffset % getASTContext ().getCharWidth () == 0 &&
@@ -601,7 +601,7 @@ void MicrosoftCXXNameMangler::mangleMemberDataPointer(const CXXRecordDecl *RD,
601601
602602 VBTableOffset = 0 ;
603603
604- if (IM == MSInheritanceAttr::Keyword_virtual_inheritance )
604+ if (IM == MSInheritanceModel::Virtual )
605605 FieldOffset -= getASTContext ().getOffsetOfBaseWithVBPtr (RD).getQuantity ();
606606 } else {
607607 FieldOffset = RD->nullFieldOffsetIsZero () ? 0 : -1 ;
@@ -611,12 +611,10 @@ void MicrosoftCXXNameMangler::mangleMemberDataPointer(const CXXRecordDecl *RD,
611611
612612 char Code = ' \0 ' ;
613613 switch (IM) {
614- case MSInheritanceAttr::Keyword_single_inheritance: Code = ' 0' ; break ;
615- case MSInheritanceAttr::Keyword_multiple_inheritance: Code = ' 0' ; break ;
616- case MSInheritanceAttr::Keyword_virtual_inheritance: Code = ' F' ; break ;
617- case MSInheritanceAttr::Keyword_unspecified_inheritance: Code = ' G' ; break ;
618- case MSInheritanceAttr::SpellingNotCalculated:
619- llvm_unreachable (" not reachable" );
614+ case MSInheritanceModel::Single: Code = ' 0' ; break ;
615+ case MSInheritanceModel::Multiple: Code = ' 0' ; break ;
616+ case MSInheritanceModel::Virtual: Code = ' F' ; break ;
617+ case MSInheritanceModel::Unspecified: Code = ' G' ; break ;
620618 }
621619
622620 Out << ' $' << Code;
@@ -626,9 +624,9 @@ void MicrosoftCXXNameMangler::mangleMemberDataPointer(const CXXRecordDecl *RD,
626624 // The C++ standard doesn't allow base-to-derived member pointer conversions
627625 // in template parameter contexts, so the vbptr offset of data member pointers
628626 // is always zero.
629- if (MSInheritanceAttr::hasVBPtrOffsetField (IM))
627+ if (inheritanceModelHasVBPtrOffsetField (IM))
630628 mangleNumber (0 );
631- if (MSInheritanceAttr::hasVBTableOffsetField (IM))
629+ if (inheritanceModelHasVBTableOffsetField (IM))
632630 mangleNumber (VBTableOffset);
633631}
634632
@@ -640,16 +638,14 @@ MicrosoftCXXNameMangler::mangleMemberFunctionPointer(const CXXRecordDecl *RD,
640638 // ::= $I? <name> <number> <number>
641639 // ::= $J? <name> <number> <number> <number>
642640
643- MSInheritanceAttr::Spelling IM = RD->getMSInheritanceModel ();
641+ MSInheritanceModel IM = RD->getMSInheritanceModel ();
644642
645643 char Code = ' \0 ' ;
646644 switch (IM) {
647- case MSInheritanceAttr::Keyword_single_inheritance: Code = ' 1' ; break ;
648- case MSInheritanceAttr::Keyword_multiple_inheritance: Code = ' H' ; break ;
649- case MSInheritanceAttr::Keyword_virtual_inheritance: Code = ' I' ; break ;
650- case MSInheritanceAttr::Keyword_unspecified_inheritance: Code = ' J' ; break ;
651- case MSInheritanceAttr::SpellingNotCalculated:
652- llvm_unreachable (" not reachable" );
645+ case MSInheritanceModel::Single: Code = ' 1' ; break ;
646+ case MSInheritanceModel::Multiple: Code = ' H' ; break ;
647+ case MSInheritanceModel::Virtual: Code = ' I' ; break ;
648+ case MSInheritanceModel::Unspecified: Code = ' J' ; break ;
653649 }
654650
655651 // If non-virtual, mangle the name. If virtual, mangle as a virtual memptr
@@ -676,25 +672,24 @@ MicrosoftCXXNameMangler::mangleMemberFunctionPointer(const CXXRecordDecl *RD,
676672 mangleFunctionEncoding (MD, /* ShouldMangle=*/ true );
677673 }
678674
679- if (VBTableOffset == 0 &&
680- IM == MSInheritanceAttr::Keyword_virtual_inheritance)
675+ if (VBTableOffset == 0 && IM == MSInheritanceModel::Virtual)
681676 NVOffset -= getASTContext ().getOffsetOfBaseWithVBPtr (RD).getQuantity ();
682677 } else {
683678 // Null single inheritance member functions are encoded as a simple nullptr.
684- if (IM == MSInheritanceAttr::Keyword_single_inheritance ) {
679+ if (IM == MSInheritanceModel::Single ) {
685680 Out << " $0A@" ;
686681 return ;
687682 }
688- if (IM == MSInheritanceAttr::Keyword_unspecified_inheritance )
683+ if (IM == MSInheritanceModel::Unspecified )
689684 VBTableOffset = -1 ;
690685 Out << ' $' << Code;
691686 }
692687
693- if (MSInheritanceAttr::hasNVOffsetField (/* IsMemberFunction=*/ true , IM))
688+ if (inheritanceModelHasNVOffsetField (/* IsMemberFunction=*/ true , IM))
694689 mangleNumber (static_cast <uint32_t >(NVOffset));
695- if (MSInheritanceAttr::hasVBPtrOffsetField (IM))
690+ if (inheritanceModelHasVBPtrOffsetField (IM))
696691 mangleNumber (VBPtrOffset);
697- if (MSInheritanceAttr::hasVBTableOffsetField (IM))
692+ if (inheritanceModelHasVBTableOffsetField (IM))
698693 mangleNumber (VBTableOffset);
699694}
700695
0 commit comments