[ms-cxxabi] Rename enum and remove dead case per Jordan's suggestion

The IHM_ prefix was a fairly gross abbreviation to try to hit three
characters for uniqueness.

llvm-svn: 178551
This commit is contained in:
Reid Kleckner 2013-04-02 17:40:19 +00:00
parent daa0f3176e
commit 08a39a686e
2 changed files with 19 additions and 21 deletions

View File

@ -2094,10 +2094,10 @@ public:
/// The inheritance model to use for this member pointer.
enum MSInheritanceModel {
IHM_Single,
IHM_Multiple,
IHM_Virtual,
IHM_Unspecified
MSIM_Single,
MSIM_Multiple,
MSIM_Virtual,
MSIM_Unspecified
};
/// MemberPointerType - C++ 8.3.3 - Pointers to members

View File

@ -73,10 +73,10 @@ bool usesMultipleInheritanceModel(const CXXRecordDecl *RD) {
MSInheritanceModel MSInheritanceAttrToModel(attr::Kind Kind) {
switch (Kind) {
default: llvm_unreachable("expected MS inheritance attribute");
case attr::SingleInheritance: return IHM_Single;
case attr::MultipleInheritance: return IHM_Multiple;
case attr::VirtualInheritance: return IHM_Virtual;
case attr::UnspecifiedInheritance: return IHM_Unspecified;
case attr::SingleInheritance: return MSIM_Single;
case attr::MultipleInheritance: return MSIM_Multiple;
case attr::VirtualInheritance: return MSIM_Virtual;
case attr::UnspecifiedInheritance: return MSIM_Unspecified;
}
}
@ -87,10 +87,10 @@ MSInheritanceModel CXXRecordDecl::getMSInheritanceModel() const {
// If there was no explicit attribute, the record must be defined already, and
// we can figure out the inheritance model from its other properties.
if (this->getNumVBases() > 0)
return IHM_Virtual;
return MSIM_Virtual;
if (usesMultipleInheritanceModel(this))
return IHM_Multiple;
return IHM_Single;
return MSIM_Multiple;
return MSIM_Single;
}
// Returns the number of pointer and integer slots used to represent a member
@ -134,22 +134,20 @@ std::pair<unsigned, unsigned> MemberPointerType::getMSMemberPointerSlots() const
// the 'this' pointer.
Ptrs = 1; // First slot is always a function pointer.
switch (Inheritance) {
default: llvm_unreachable("unknown inheritance model");
case IHM_Unspecified: ++Ints; // VBTableOffset
case IHM_Virtual: ++Ints; // VirtualBaseAdjustmentOffset
case IHM_Multiple: ++Ints; // NonVirtualBaseAdjustment
case IHM_Single: break; // Nothing
case MSIM_Unspecified: ++Ints; // VBTableOffset
case MSIM_Virtual: ++Ints; // VirtualBaseAdjustmentOffset
case MSIM_Multiple: ++Ints; // NonVirtualBaseAdjustment
case MSIM_Single: break; // Nothing
}
} else {
// Data pointers are an aggregate of ints. The first int is an offset
// followed by vbtable-related offsets.
Ptrs = 0;
switch (Inheritance) {
default: llvm_unreachable("unknown inheritance model");
case IHM_Unspecified: ++Ints; // VBTableOffset
case IHM_Virtual: ++Ints; // VirtualBaseAdjustmentOffset
case IHM_Multiple: // Nothing
case IHM_Single: ++Ints; // Field offset
case MSIM_Unspecified: ++Ints; // VBTableOffset
case MSIM_Virtual: ++Ints; // VirtualBaseAdjustmentOffset
case MSIM_Multiple: // Nothing
case MSIM_Single: ++Ints; // Field offset
}
}
return std::make_pair(Ptrs, Ints);