diff --git a/src/hb-open-file-private.hh b/src/hb-open-file-private.hh
index 5cb09da..e66b08a 100644
--- a/src/hb-open-file-private.hh
+++ b/src/hb-open-file-private.hh
@@ -82,6 +82,7 @@
     for (unsigned int i = 0; i < count; i++)
       if (!SANITIZE_BASE (tableDir[i], base))
         return false;
+    return true;
   }
 
   private:
diff --git a/src/hb-open-types-private.hh b/src/hb-open-types-private.hh
index 1af7c08..05619df 100644
--- a/src/hb-open-types-private.hh
+++ b/src/hb-open-types-private.hh
@@ -484,6 +484,7 @@
       if (!SANITIZE (array[i]))
         return false;
     */
+    return true;
   }
   inline bool sanitize (SANITIZE_ARG_DEF, const void *base) {
     if (!SANITIZE_GET_SIZE()) return false;
@@ -491,6 +492,7 @@
     for (unsigned int i = 0; i < count; i++)
       if (!array[i].sanitize (SANITIZE_ARG, base))
         return false;
+    return true;
   }
   inline bool sanitize (SANITIZE_ARG_DEF, const void *base, const void *base2) {
     if (!SANITIZE_GET_SIZE()) return false;
@@ -498,6 +500,7 @@
     for (unsigned int i = 0; i < count; i++)
       if (!array[i].sanitize (SANITIZE_ARG, base, base2))
         return false;
+    return true;
   }
   inline bool sanitize (SANITIZE_ARG_DEF, const void *base, unsigned int user_data) {
     if (!SANITIZE_GET_SIZE()) return false;
@@ -505,6 +508,7 @@
     for (unsigned int i = 0; i < count; i++)
       if (!array[i].sanitize (SANITIZE_ARG, base, user_data))
         return false;
+    return true;
   }
 
   LenType len;
@@ -552,6 +556,7 @@
       if (!SANITIZE (array[i]))
         return false;
     */
+    return true;
   }
 
   USHORT len;
diff --git a/src/hb-ot-layout-gsub-private.hh b/src/hb-ot-layout-gsub-private.hh
index 9d35e99..4d21f65 100644
--- a/src/hb-ot-layout-gsub-private.hh
+++ b/src/hb-ot-layout-gsub-private.hh
@@ -592,8 +592,7 @@
     if (!SANITIZE_THIS (lookahead))
       return false;
     ArrayOf<GlyphID> &substitute = CAST (ArrayOf<GlyphID>, lookahead, lookahead.get_size ());
-    if (!SANITIZE (substitute))
-      return false;
+    return SANITIZE (substitute);
   }
 
   private:
