Please use GitHub pull requests for new patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
clang/lib/AST/Interp/Record.cpp
Show All 33 Lines | |||||
} | } | ||||
const Record::Base *Record::getBase(const RecordDecl *FD) const { | const Record::Base *Record::getBase(const RecordDecl *FD) const { | ||||
auto It = BaseMap.find(FD); | auto It = BaseMap.find(FD); | ||||
assert(It != BaseMap.end() && "Missing base"); | assert(It != BaseMap.end() && "Missing base"); | ||||
return It->second; | return It->second; | ||||
} | } | ||||
const Record::Base *Record::getBase(QualType T) const { | |||||
if (!T->isRecordType()) | |||||
return nullptr; | |||||
const RecordDecl *RD = T->getAs<RecordType>()->getDecl(); | |||||
if (auto It = BaseMap.find(RD); It != BaseMap.end()) | |||||
return It->second; | |||||
return nullptr; | |||||
} | |||||
const Record::Base *Record::getVirtualBase(const RecordDecl *FD) const { | const Record::Base *Record::getVirtualBase(const RecordDecl *FD) const { | ||||
auto It = VirtualBaseMap.find(FD); | auto It = VirtualBaseMap.find(FD); | ||||
assert(It != VirtualBaseMap.end() && "Missing virtual base"); | assert(It != VirtualBaseMap.end() && "Missing virtual base"); | ||||
return It->second; | return It->second; | ||||
} | } |