================
@@ -5627,15 +5754,25 @@ RValue CodeGenFunction::EmitCall(const CGFunctionInfo 
&CallInfo,
         } else {
           uint64_t SrcSize = SrcTypeSize.getFixedValue();
           uint64_t DstSize = DstTypeSize.getFixedValue();
+          bool HasPFPFields = !findPFPCoercedFields(*this, I->Ty).empty();
----------------
pcc wrote:

This needs to be the same as the condition where `CreatePFPCoercedLoad` would 
return non-null; `!findPFPCoercedFields().empty()` has a different value than 
`hasPFPFields()` because the former checks `IsWithinUnion`.

`IsWithinUnion` was added to support trivial relocation. If we're removing the 
trivial relocation support, I think we might be able to remove `IsWithinUnion` 
and have `findPFPFields` not return fields within unions. Then everything will 
be calling `hasPFPFields` or `findPFPFields`.

https://github.com/llvm/llvm-project/pull/172119
_______________________________________________
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to