summaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CGNonTrivialStruct.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/CodeGen/CGNonTrivialStruct.cpp')
-rw-r--r--clang/lib/CodeGen/CGNonTrivialStruct.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/clang/lib/CodeGen/CGNonTrivialStruct.cpp b/clang/lib/CodeGen/CGNonTrivialStruct.cpp
index 1b941fff8b64..2d70e4c2e039 100644
--- a/clang/lib/CodeGen/CGNonTrivialStruct.cpp
+++ b/clang/lib/CodeGen/CGNonTrivialStruct.cpp
@@ -39,8 +39,7 @@ template <class Derived> struct StructVisitor {
template <class... Ts>
void visitStructFields(QualType QT, CharUnits CurStructOffset, Ts... Args) {
- const RecordDecl *RD =
- QT->castAs<RecordType>()->getOriginalDecl()->getDefinitionOrSelf();
+ const auto *RD = QT->castAsRecordDecl();
// Iterate over the fields of the struct.
for (const FieldDecl *FD : RD->fields()) {
@@ -674,7 +673,8 @@ struct GenDefaultInitialize
CharUnits Size = Ctx.getTypeSizeInChars(QualType(AT, 0));
QualType EltTy = Ctx.getBaseElementType(QualType(AT, 0));
- if (Size < CharUnits::fromQuantity(16) || EltTy->getAs<RecordType>()) {
+ if (Size < CharUnits::fromQuantity(16) ||
+ EltTy->getAsCanonical<RecordType>()) {
GenFuncBaseTy::visitArray(FK, AT, IsVolatile, FD, CurStructOffset, Addrs);
return;
}