summaryrefslogtreecommitdiff
path: root/lang/c/pseudoc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lang/c/pseudoc.cpp')
-rw-r--r--lang/c/pseudoc.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/lang/c/pseudoc.cpp b/lang/c/pseudoc.cpp
index 592e224f..35966230 100644
--- a/lang/c/pseudoc.cpp
+++ b/lang/c/pseudoc.cpp
@@ -1816,6 +1816,32 @@ void PseudoCFunction::GetExprTextInternal(const HighLevelILInstruction& instr, H
}();
break;
+ case HLIL_PASS_BY_REF:
+ [&]() {
+ const auto srcExpr = instr.GetSourceExpr<HLIL_PASS_BY_REF>();
+ if (srcExpr.operation == HLIL_ADDRESS_OF)
+ {
+ GetExprTextInternal(srcExpr.GetSourceExpr<HLIL_ADDRESS_OF>(), tokens, settings, precedence);
+ }
+ else
+ {
+ tokens.Append(OperationToken, "*");
+ GetExprTextInternal(srcExpr, tokens, settings, UnaryOperatorPrecedence);
+ }
+ if (statement)
+ tokens.AppendSemicolon();
+ }();
+ break;
+
+ case HLIL_RETURN_BY_REF:
+ [&]() {
+ const auto srcExpr = instr.GetSourceExpr<HLIL_RETURN_BY_REF>();
+ GetExprTextInternal(srcExpr, tokens, settings, UnaryOperatorPrecedence);
+ if (statement)
+ tokens.AppendSemicolon();
+ }();
+ break;
+
case HLIL_FCMP_E:
[&]() {
bool parens = precedence > EqualityOperatorPrecedence;