[clang] Fix #104794: Fixed sret bugs with `clang::musttail` on 32 bit targets (PR #104795)
Eli Friedman via cfe-commits
cfe-commits at lists.llvm.org
Mon Aug 19 11:40: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) {
----------------
efriedma-quic wrote:
Do any of the tests cover the case of `RetAI.isInAlloca()` or `RetAI.isCoerceAndExpand()`?
https://github.com/llvm/llvm-project/pull/104795
More information about the cfe-commits
mailing list