summaryrefslogtreecommitdiff
path: root/src/passes/call-utils.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/passes/call-utils.h')
-rw-r--r--src/passes/call-utils.h14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/passes/call-utils.h b/src/passes/call-utils.h
index 7f2ebfda3..10106a756 100644
--- a/src/passes/call-utils.h
+++ b/src/passes/call-utils.h
@@ -19,6 +19,7 @@
#include <variant>
+#include "ir/debuginfo.h"
#include "ir/type-updating.h"
#include "wasm.h"
@@ -130,14 +131,17 @@ convertToDirectCalls(T* curr,
};
auto makeCall = [&](IndirectCallInfo info) -> Expression* {
+ Expression* ret;
if (std::get_if<Trap>(&info)) {
- return builder.makeUnreachable();
+ ret = builder.makeUnreachable();
} else {
- return builder.makeCall(std::get<Known>(info).target,
- getOperands(),
- curr->type,
- curr->isReturn);
+ ret = builder.makeCall(std::get<Known>(info).target,
+ getOperands(),
+ curr->type,
+ curr->isReturn);
}
+ debuginfo::copyOriginalToReplacement(curr, ret, &func);
+ return ret;
};
auto* ifTrueCall = makeCall(ifTrueCallInfo);
auto* ifFalseCall = makeCall(ifFalseCallInfo);