summaryrefslogtreecommitdiff
path: root/src/buildtool/build_engine/expression/evaluator.cpp
diff options
context:
space:
mode:
authorOliver Reiche <oliver.reiche@huawei.com>2023-07-06 13:59:57 +0200
committerOliver Reiche <oliver.reiche@huawei.com>2023-08-24 18:22:28 +0200
commitc58649e50879c513b0e26e04de9f9fcf176d70bd (patch)
tree956e051025d6ac3d27195245e70db9205212ca84 /src/buildtool/build_engine/expression/evaluator.cpp
parentce1a62febe998df25852f01045833fd5d578f812 (diff)
downloadjustbuild-c58649e50879c513b0e26e04de9f9fcf176d70bd.tar.gz
LinkedMap: Simplify ::Find() methods
... to silence false-positive 'possible dangling reference' warning produced by gcc 13.2.0.
Diffstat (limited to 'src/buildtool/build_engine/expression/evaluator.cpp')
-rw-r--r--src/buildtool/build_engine/expression/evaluator.cpp16
1 files changed, 7 insertions, 9 deletions
diff --git a/src/buildtool/build_engine/expression/evaluator.cpp b/src/buildtool/build_engine/expression/evaluator.cpp
index 1d207b3b..d2cee809 100644
--- a/src/buildtool/build_engine/expression/evaluator.cpp
+++ b/src/buildtool/build_engine/expression/evaluator.cpp
@@ -661,11 +661,10 @@ auto ToSubdirExpr(SubExprEvaluator&& eval,
}
std::string msg;
try {
- auto msg_val = eval(msg_expr->get(), env);
+ auto msg_val = eval(**msg_expr, env);
msg = msg_val->ToString();
} catch (std::exception const&) {
- msg =
- "[non evaluating term] " + msg_expr->get()->ToString();
+ msg = "[non evaluating term] " + (**msg_expr)->ToString();
}
std::stringstream ss{};
ss << msg << std::endl;
@@ -693,11 +692,10 @@ auto ToSubdirExpr(SubExprEvaluator&& eval,
}
std::string msg;
try {
- auto msg_val = eval(msg_expr->get(), env);
+ auto msg_val = eval(**msg_expr, env);
msg = msg_val->ToString();
} catch (std::exception const&) {
- msg =
- "[non evaluating term] " + msg_expr->get()->ToString();
+ msg = "[non evaluating term] " + (**msg_expr)->ToString();
}
std::stringstream ss{};
ss << msg << std::endl;
@@ -899,10 +897,10 @@ auto DisjointUnionExpr(SubExprEvaluator&& eval,
}
std::string msg;
try {
- auto msg_val = eval(msg_expr->get(), env);
+ auto msg_val = eval(**msg_expr, env);
msg = msg_val->ToString();
} catch (std::exception const&) {
- msg = "[non evaluating term] " + msg_expr->get()->ToString();
+ msg = "[non evaluating term] " + (**msg_expr)->ToString();
}
std::stringstream ss{};
ss << msg << std::endl;
@@ -1098,7 +1096,7 @@ auto Evaluator::Evaluate(ExpressionPtr const& expr,
auto const& type = expr["type"]->String();
auto func = functions->Find(type);
if (func) {
- return func->get()(
+ return (**func)(
[&functions](auto const& subexpr, auto const& subenv) {
return Evaluator::Evaluate(subexpr, subenv, functions);
},