aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/backend
diff options
context:
space:
mode:
authorPhilip Herron <philip.herron@embecosm.com>2022-04-28 14:28:27 +0100
committerPhilip Herron <philip.herron@embecosm.com>2022-04-28 14:43:41 +0100
commitae085ac7b12809cadaf6bfdb18c34f1a177290c1 (patch)
tree664659586e7c79d2fd8e28d7e1c1458530a4be22 /gcc/rust/backend
parent1ada076b9324982fd6f49aea6456e99613e394a8 (diff)
downloadgcc-ae085ac7b12809cadaf6bfdb18c34f1a177290c1.zip
gcc-ae085ac7b12809cadaf6bfdb18c34f1a177290c1.tar.gz
gcc-ae085ac7b12809cadaf6bfdb18c34f1a177290c1.tar.bz2
Remove unused parameter caller from generating Call expressions
Within const context the fncontext maybe empty which in turn results in a segv for generating const calls which will be evaluated by the const-expr code anyway. Addresses #1130
Diffstat (limited to 'gcc/rust/backend')
-rw-r--r--gcc/rust/backend/rust-compile-expr.cc27
1 files changed, 10 insertions, 17 deletions
diff --git a/gcc/rust/backend/rust-compile-expr.cc b/gcc/rust/backend/rust-compile-expr.cc
index 2128f25..edeea8d 100644
--- a/gcc/rust/backend/rust-compile-expr.cc
+++ b/gcc/rust/backend/rust-compile-expr.cc
@@ -497,10 +497,8 @@ CompileExpr::visit (HIR::CallExpr &expr)
// must be a call to a function
auto fn_address = CompileExpr::Compile (expr.get_fnexpr (), ctx);
- auto fncontext = ctx->peek_fn ();
- translated
- = ctx->get_backend ()->call_expression (fncontext.fndecl, fn_address, args,
- nullptr, expr.get_locus ());
+ translated = ctx->get_backend ()->call_expression (fn_address, args, nullptr,
+ expr.get_locus ());
}
void
@@ -610,10 +608,8 @@ CompileExpr::visit (HIR::MethodCallExpr &expr)
args.push_back (rvalue);
}
- auto fncontext = ctx->peek_fn ();
- translated
- = ctx->get_backend ()->call_expression (fncontext.fndecl, fn_expr, args,
- nullptr, expr.get_locus ());
+ translated = ctx->get_backend ()->call_expression (fn_expr, args, nullptr,
+ expr.get_locus ());
}
tree
@@ -696,8 +692,8 @@ CompileExpr::compile_dyn_dispatch_call (const TyTy::DynamicObjectType *dyn,
tree fn_expr
= ctx->get_backend ()->var_expression (fn_convert_expr_tmp, expr_locus);
- return ctx->get_backend ()->call_expression (fnctx.fndecl, fn_expr, args,
- nullptr, expr_locus);
+ return ctx->get_backend ()->call_expression (fn_expr, args, nullptr,
+ expr_locus);
}
tree
@@ -866,9 +862,8 @@ CompileExpr::resolve_operator_overload (
if (rhs != nullptr) // can be null for negation_expr (unary ones)
args.push_back (rhs);
- auto fncontext = ctx->peek_fn ();
- return ctx->get_backend ()->call_expression (fncontext.fndecl, fn_expr, args,
- nullptr, expr.get_locus ());
+ return ctx->get_backend ()->call_expression (fn_expr, args, nullptr,
+ expr.get_locus ());
}
tree
@@ -1289,10 +1284,8 @@ HIRCompileBase::resolve_deref_adjustment (Resolver::Adjustment &adjustment,
}
// make the call
- auto fncontext = ctx->peek_fn ();
- return ctx->get_backend ()->call_expression (fncontext.fndecl, fn_address,
- {adjusted_argument}, nullptr,
- locus);
+ return ctx->get_backend ()->call_expression (fn_address, {adjusted_argument},
+ nullptr, locus);
}
tree