diff --git a/src/macro/MacroDriver.cc b/src/macro/MacroDriver.cc
index 70d92f1ca41483de9a8f160cd4852e20328b25c6..ed70e556fed297ea4299aabd9ddecd08ffeb0a63 100644
--- a/src/macro/MacroDriver.cc
+++ b/src/macro/MacroDriver.cc
@@ -107,7 +107,7 @@ MacroDriver::replace_vars_in_str(const string &s) const
       regex_search(macro, name, name_regex);
       try
         {
-          const MacroValue *mv;
+          const MacroValue *mv = nullptr;
           bool found_in_func_env = false;
           for (unsigned i = func_env.size(); i-- > 0;)
             {
@@ -162,7 +162,7 @@ MacroDriver::eval_string_function(const string &name, const MacroValue *args)
     throw MacroValue::TypeError("You are using " + name + " as if it were a macro function");
 
   vector<string *> func_args = fmv->get_args();
-  if (func_args.size() != dynamic_cast<const IntMV *>(args->length())->get_int_value())
+  if (func_args.size() != (size_t)dynamic_cast<const IntMV *>(args->length())->get_int_value())
     {
       cerr << "Macroprocessor: The evaluation of: " << name << " could not be completed" << endl
            << "because the number of arguments provided is different than the number of" << endl
diff --git a/src/macro/MacroValue.cc b/src/macro/MacroValue.cc
index 4aef91e29714a700522d24dd552da67ded1dc79d..7817d07ecb1c4a7bfb7ee7730f87022da380a813 100644
--- a/src/macro/MacroValue.cc
+++ b/src/macro/MacroValue.cc
@@ -523,7 +523,7 @@ FuncMV::operator==(const MacroValue &mv) const noexcept(false)
     return new IntMV(driver, 0);
 
   if (args.size() == mv2->args.size())
-    for (int i = 0; i < args.size(); i++)
+    for (size_t i = 0; i < args.size(); i++)
       if (args[i] != mv2->args[i])
         return new IntMV(driver, 0);