Lines Matching refs:FD

25 static uint64_t getFieldSize(const FieldDecl *FD, QualType FT,
27 if (FD && FD->isBitField())
28 return FD->getBitWidthValue(Ctx);
44 for (const FieldDecl *FD : RD->fields()) {
45 QualType FT = FD->getType();
47 asDerived().visit(FT, FD, CurStructOffset, Args...);
61 uint64_t getFieldOffsetInBits(const FieldDecl *FD) {
62 return FD ? Ctx.getASTRecordLayout(FD->getParent())
63 .getFieldOffset(FD->getFieldIndex())
67 CharUnits getFieldOffset(const FieldDecl *FD) {
68 return Ctx.toCharUnitsFromBits(getFieldOffsetInBits(FD));
87 const FieldDecl *FD, CharUnits CurStructOffset, Ts &&... Args) {
94 const FieldDecl *FD, CharUnits CurStructOffset,
97 asDerived().visitArray(PCK, AT, FT.isVolatileQualified(), FD,
102 Super::visitWithKind(PCK, FT, FD, CurStructOffset,
107 void visitTrivial(QualType FT, const FieldDecl *FD, CharUnits CurStructOffset,
111 uint64_t FieldSize = getFieldSize(FD, FT, Ctx);
117 uint64_t FStartInBits = asDerived().getFieldOffsetInBits(FD);
159 void visitARCStrong(QualType FT, const FieldDecl *FD,
164 CharUnits FieldOffset = CurStructOffset + asDerived().getFieldOffset(FD);
168 void visitARCWeak(QualType FT, const FieldDecl *FD,
171 CharUnits FieldOffset = CurStructOffset + asDerived().getFieldOffset(FD);
175 void visitStruct(QualType QT, const FieldDecl *FD,
177 CharUnits FieldOffset = CurStructOffset + asDerived().getFieldOffset(FD);
184 const FieldDecl *FD, CharUnits CurStructOffset) {
188 return asDerived().visitTrivial(QualType(AT, 0), FD, CurStructOffset);
191 CharUnits FieldOffset = CurStructOffset + asDerived().getFieldOffset(FD);
255 void visitVolatileTrivial(QualType FT, const FieldDecl *FD,
260 this->Ctx.toBits(CurStructOffset) + this->getFieldOffsetInBits(FD);
262 llvm::to_string(getFieldSize(FD, FT, this->Ctx)));
274 const FieldDecl *FD, CharUnits CurStructOffset) {
276 visitArray(PDIK, AT, FT.isVolatileQualified(), FD, CurStructOffset);
280 Super::visitWithKind(PDIK, FT, FD, CurStructOffset);
291 const FieldDecl *FD, CharUnits CurStructOffset) {
293 visitArray(DK, AT, FT.isVolatileQualified(), FD, CurStructOffset);
297 Super::visitWithKind(DK, FT, FD, CurStructOffset);
324 void visitStruct(QualType FT, const FieldDecl *FD, CharUnits CurStructOffset,
327 FT, CurStructOffset + asDerived().getFieldOffset(FD), Addrs);
332 const FieldDecl *FD, CharUnits CurStructOffset,
336 return asDerived().visitTrivial(QualType(AT, 0), FD, CurStructOffset,
347 StartAddrs[I] = getAddrWithOffset(Addrs[I], CurStructOffset, FD);
421 const FieldDecl *FD) {
423 asDerived().getFieldOffset(FD));
462 FunctionDecl *FD = FunctionDecl::Create(
468 CGF->StartFunction(FD, Ctx.VoidTy, F, FI, Args);
542 void visitVolatileTrivial(QualType FT, const FieldDecl *FD, CharUnits Offset,
545 if (FD) {
546 QualType RT = QualType(FD->getParent()->getTypeForDecl(), 0);
551 DstLV = this->CGF->EmitLValueForField(DstBase, FD);
555 SrcLV = this->CGF->EmitLValueForField(SrcBase, FD);
576 const FieldDecl *FD, CharUnits CurStructOffset,
579 visitArray(DK, AT, FT.isVolatileQualified(), FD, CurStructOffset, Addrs);
583 Super::visitWithKind(DK, FT, FD, CurStructOffset, Addrs);
586 void visitARCStrong(QualType QT, const FieldDecl *FD,
589 *CGF, getAddrWithOffset(Addrs[DstIdx], CurStructOffset, FD), QT);
592 void visitARCWeak(QualType QT, const FieldDecl *FD, CharUnits CurStructOffset,
595 *CGF, getAddrWithOffset(Addrs[DstIdx], CurStructOffset, FD), QT);
616 const FieldDecl *FD, CharUnits CurStructOffset,
619 visitArray(PDIK, AT, FT.isVolatileQualified(), FD, CurStructOffset,
624 Super::visitWithKind(PDIK, FT, FD, CurStructOffset, Addrs);
627 void visitARCStrong(QualType QT, const FieldDecl *FD,
630 getAddrWithOffset(Addrs[DstIdx], CurStructOffset, FD), QT);
633 void visitARCWeak(QualType QT, const FieldDecl *FD, CharUnits CurStructOffset,
636 getAddrWithOffset(Addrs[DstIdx], CurStructOffset, FD), QT);
641 const FieldDecl *FD, CharUnits CurStructOffset,
644 return visitTrivial(QualType(AT, 0), FD, CurStructOffset, Addrs);
651 GenFuncBaseTy::visitArray(FK, AT, IsVolatile, FD, CurStructOffset, Addrs);
656 Address DstAddr = getAddrWithOffset(Addrs[DstIdx], CurStructOffset, FD);
673 void visitARCStrong(QualType QT, const FieldDecl *FD,
675 Addrs[DstIdx] = getAddrWithOffset(Addrs[DstIdx], CurStructOffset, FD);
676 Addrs[SrcIdx] = getAddrWithOffset(Addrs[SrcIdx], CurStructOffset, FD);
683 void visitARCWeak(QualType QT, const FieldDecl *FD, CharUnits CurStructOffset,
685 Addrs[DstIdx] = getAddrWithOffset(Addrs[DstIdx], CurStructOffset, FD);
686 Addrs[SrcIdx] = getAddrWithOffset(Addrs[SrcIdx], CurStructOffset, FD);
703 void visitARCStrong(QualType QT, const FieldDecl *FD,
705 Addrs[DstIdx] = getAddrWithOffset(Addrs[DstIdx], CurStructOffset, FD);
706 Addrs[SrcIdx] = getAddrWithOffset(Addrs[SrcIdx], CurStructOffset, FD);
715 void visitARCWeak(QualType QT, const FieldDecl *FD, CharUnits CurStructOffset,
717 Addrs[DstIdx] = getAddrWithOffset(Addrs[DstIdx], CurStructOffset, FD);
718 Addrs[SrcIdx] = getAddrWithOffset(Addrs[SrcIdx], CurStructOffset, FD);
735 void visitARCStrong(QualType QT, const FieldDecl *FD,
737 Addrs[DstIdx] = getAddrWithOffset(Addrs[DstIdx], CurStructOffset, FD);
738 Addrs[SrcIdx] = getAddrWithOffset(Addrs[SrcIdx], CurStructOffset, FD);
745 void visitARCWeak(QualType QT, const FieldDecl *FD, CharUnits CurStructOffset,
747 Addrs[DstIdx] = getAddrWithOffset(Addrs[DstIdx], CurStructOffset, FD);
748 Addrs[SrcIdx] = getAddrWithOffset(Addrs[SrcIdx], CurStructOffset, FD);
766 void visitARCStrong(QualType QT, const FieldDecl *FD,
768 Addrs[DstIdx] = getAddrWithOffset(Addrs[DstIdx], CurStructOffset, FD);
769 Addrs[SrcIdx] = getAddrWithOffset(Addrs[SrcIdx], CurStructOffset, FD);
781 void visitARCWeak(QualType QT, const FieldDecl *FD, CharUnits CurStructOffset,
783 Addrs[DstIdx] = getAddrWithOffset(Addrs[DstIdx], CurStructOffset, FD);
784 Addrs[SrcIdx] = getAddrWithOffset(Addrs[SrcIdx], CurStructOffset, FD);