diff options
author | Oliver Reiche <oliver.reiche@huawei.com> | 2023-07-06 13:59:57 +0200 |
---|---|---|
committer | Oliver Reiche <oliver.reiche@huawei.com> | 2023-08-24 18:22:28 +0200 |
commit | c58649e50879c513b0e26e04de9f9fcf176d70bd (patch) | |
tree | 956e051025d6ac3d27195245e70db9205212ca84 /src/buildtool/build_engine/expression/evaluator.cpp | |
parent | ce1a62febe998df25852f01045833fd5d578f812 (diff) | |
download | justbuild-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.cpp | 16 |
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); }, |