diff options
Diffstat (limited to 'clang/lib/CodeGen/CGNonTrivialStruct.cpp')
| -rw-r--r-- | clang/lib/CodeGen/CGNonTrivialStruct.cpp | 6 |
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; } |
