diff --git a/src/Bytecode.hh b/src/Bytecode.hh
index 9527870ebe2e57576cc379a129da07dce8a0b702..6bb2f78de0daac00e9d4f27031c19357891dac66 100644
--- a/src/Bytecode.hh
+++ b/src/Bytecode.hh
@@ -844,7 +844,7 @@ public:
   void
   set_arg_func_name(string arg_arg_func_name)
   {
-    arg_func_name = arg_arg_func_name;
+    arg_func_name = move(arg_arg_func_name);
   };
   string
   get_arg_func_name()
diff --git a/src/ModelTree.cc b/src/ModelTree.cc
index 65671fe9a1e42474a9e7529a4ebd1439e9dbca49..6d8ae9a9baec9210bb4b4d62de5a1d92805e92ff 100644
--- a/src/ModelTree.cc
+++ b/src/ModelTree.cc
@@ -109,7 +109,7 @@ ModelTree::copyHelper(const ModelTree& m)
       blocks_derivatives.push_back(v);
     }
 
-  auto convert_vector_tt = [f](vector<temporary_terms_t> vtt) {
+  auto convert_vector_tt = [f](const vector<temporary_terms_t>& vtt) {
     vector<temporary_terms_t> vtt2;
     for (const auto& tt : vtt)
       {
@@ -1927,7 +1927,7 @@ ModelTree::initializeMEXCompilationWorkers(int numworkers, const filesystem::pat
   cout << "Spawning " << numworkers << " threads for compiling MEX files." << endl;
 
   for (int i {0}; i < numworkers; i++)
-    mex_compilation_workers.emplace_back([](stop_token stoken) {
+    mex_compilation_workers.emplace_back([](const stop_token& stoken) {
       unique_lock<mutex> lk {mex_compilation_mut};
       filesystem::path output;
       string cmd;
diff --git a/src/SymbolTable.cc b/src/SymbolTable.cc
index 43e22c880c2e6b6a944aa9fec937a145fb155c52..6b78152f55ba2c096a73291d4dcad3b8f8ce3921 100644
--- a/src/SymbolTable.cc
+++ b/src/SymbolTable.cc
@@ -626,7 +626,7 @@ SymbolTable::addUnaryOpAuxiliaryVar(int index, expr_t expr_arg, string unary_op,
     }
 
   aux_vars.emplace_back(symb_id, AuxVarType::unaryOp, move(orig_symb_id), move(orig_lag), 0, 0,
-                        expr_arg, unary_op);
+                        expr_arg, move(unary_op));
 
   return symb_id;
 }
diff --git a/src/macro/Environment.cc b/src/macro/Environment.cc
index 8ee8bdd9736cfa90a37b01f3d952cc3754de64b4..041011d27e65fa1a3bc0b367021a754c1f6d02ce 100644
--- a/src/macro/Environment.cc
+++ b/src/macro/Environment.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright © 2019-2022 Dynare Team
+ * Copyright © 2019-2023 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -25,7 +25,7 @@
 using namespace macro;
 
 void
-Environment::define(VariablePtr var, ExpressionPtr value)
+Environment::define(const VariablePtr& var, const ExpressionPtr& value)
 {
   string name = var->getName();
   if (functions.contains(name))
diff --git a/src/macro/Environment.hh b/src/macro/Environment.hh
index a3f2cdfc181b266704850605e82b9ecbea0b8862..f55dd16323baca1b71ad04e59a61ff15086b633e 100644
--- a/src/macro/Environment.hh
+++ b/src/macro/Environment.hh
@@ -40,7 +40,7 @@ public:
   Environment(const Environment* parent_arg) : parent {parent_arg}
   {
   }
-  void define(VariablePtr var, ExpressionPtr value);
+  void define(const VariablePtr& var, const ExpressionPtr& value);
   void define(FunctionPtr func, ExpressionPtr value);
   /* The following two functions are not marked [[nodiscard]], because they are used without output
      to check whether they return an exception or not. */