diff --git a/compiler2/Setting.cc b/compiler2/Setting.cc
index d5da4a47fc0dff1d475e3e7a9d89a7c66b5177bc..9bad5193c0dced6945c2d05e81488b8d527d1218 100644
--- a/compiler2/Setting.cc
+++ b/compiler2/Setting.cc
@@ -1001,8 +1001,8 @@ namespace Common {
     if (errors.size() < *err_stack.top())
       FATAL_ERROR("Common::ReferenceChain::prev_error_state()");
 
-    size_t state = *err_stack.top();
-    for (size_t i = errors.size() - 1; i >= state; --i) {
+    int state =  static_cast<int>(*err_stack.top());
+    for (int i =  static_cast<int>(errors.size()) - 1; i >= state; --i) {
       errors.remove(i);
     }
     delete err_stack.pop();