diff --git a/zircon/system/host/fidl/lib/ordinals.cpp b/zircon/system/host/fidl/lib/ordinals.cpp
index 3716459..08ebbc3 100644
--- a/zircon/system/host/fidl/lib/ordinals.cpp
+++ b/zircon/system/host/fidl/lib/ordinals.cpp
@@ -16,7 +16,7 @@
                         SourceLocation name) {
     if (attributes != nullptr) {
         const size_t size = attributes->attributes.size();
-        for (int i = 0; i < size; i++) {
+        for (size_t i = 0; i < size; i++) {
             if (attributes->attributes[i]->name == "Selector") {
                 return attributes->attributes[i]->value;
             }
diff --git a/zircon/system/host/fidl/lib/source_file.cpp b/zircon/system/host/fidl/lib/source_file.cpp
index b727dc9..90628d1 100644
--- a/zircon/system/host/fidl/lib/source_file.cpp
+++ b/zircon/system/host/fidl/lib/source_file.cpp
@@ -50,9 +50,9 @@
     if (position_out != nullptr) {
         // Humans number lines from 1. Calculating this from the end
         // accounts for this.
-        int line_number = lines_.crend() - line;
+        int line_number = static_cast<int>(lines_.crend() - line);
         // But columns from 0!
-        int column_number = view.data() - line->data();
+        int column_number = static_cast<int>(view.data() - line->data());
         *position_out = {line_number, column_number};
     }
     return *line;
diff --git a/zircon/system/host/fidl/lib/virtual_source_file.cpp b/zircon/system/host/fidl/lib/virtual_source_file.cpp
index 0bd6a8e..1bacb4f 100644
--- a/zircon/system/host/fidl/lib/virtual_source_file.cpp
+++ b/zircon/system/host/fidl/lib/virtual_source_file.cpp
@@ -11,7 +11,7 @@
 }
 
 StringView VirtualSourceFile::LineContaining(StringView view, Position* position_out) const {
-    for (int i = 0; i < virtual_lines_.size(); i++) {
+    for (int i = 0; i < static_cast<int>(virtual_lines_.size()); i++) {
         const std::string& line = *virtual_lines_[i];
         const char* line_begin = &*line.cbegin();
         const char* line_end = &*line.cend();
@@ -20,7 +20,7 @@
         if (position_out != nullptr) {
             auto column = view.data() - line_begin;
             assert(column < std::numeric_limits<int>::max());
-            *position_out = {i + 1, (int)column};
+            *position_out = {i + 1, static_cast<int>(column)};
         }
         return StringView(line);
     }
