[clang] Fix #104794: Fixed sret bugs with `clang::musttail` on 32 bit targets (PR #104795)

via cfe-commits cfe-commits at lists.llvm.org
Fri Aug 30 03:43:57 PDT 2024


================
@@ -5085,7 +5085,7 @@ RValue CodeGenFunction::EmitCall(const CGFunctionInfo &CallInfo,
   RawAddress SRetAlloca = RawAddress::invalid();
   llvm::Value *UnusedReturnSizePtr = nullptr;
   if (RetAI.isIndirect() || RetAI.isInAlloca() || RetAI.isCoerceAndExpand()) {
-    if (IsVirtualFunctionPointerThunk && RetAI.isIndirect()) {
+    if ((IsVirtualFunctionPointerThunk && RetAI.isIndirect()) || IsMustTail) {
----------------
kiran-isaac wrote:

Apologies for slow replies on both of my PRs, our fuzzer and some of our downstream testing identified some issues and I had to verify they were unrelated. No none of the tests cover these cases. I am in the process of trying to add some that do. 

https://github.com/llvm/llvm-project/pull/104795


More information about the cfe-commits mailing list