diff --git a/cmd/wuffs-c/internal/cgen/base/core-private.h b/cmd/wuffs-c/internal/cgen/base/core-private.h
index f8eb582..97886a7 100644
--- a/cmd/wuffs-c/internal/cgen/base/core-private.h
+++ b/cmd/wuffs-c/internal/cgen/base/core-private.h
@@ -423,6 +423,13 @@
   return ((wuffs_base__slice_u8){});
 }
 
+// ---------------- Slices and Tables (Utility)
+
+static inline wuffs_base__slice_u8  //
+wuffs_base__utility__null_slice_u8() {
+  return ((wuffs_base__slice_u8){});
+}
+
 // ---------------- Bureaucracy re -Wunused-function
 
 static inline void
@@ -474,4 +481,5 @@
   (void)(wuffs_base__u64__sat_sub_indirect);
   (void)(wuffs_base__u8__sat_add_indirect);
   (void)(wuffs_base__u8__sat_sub_indirect);
+  (void)(wuffs_base__utility__null_slice_u8);
 }
diff --git a/cmd/wuffs-c/internal/cgen/base/core-public.h b/cmd/wuffs-c/internal/cgen/base/core-public.h
index 8cdd704..20f11a5 100644
--- a/cmd/wuffs-c/internal/cgen/base/core-public.h
+++ b/cmd/wuffs-c/internal/cgen/base/core-public.h
@@ -342,13 +342,6 @@
   return ((wuffs_base__slice_u8){});
 }
 
-// ---------------- Slices and Tables (Utility)
-
-static inline wuffs_base__slice_u8  //
-wuffs_base__utility__null_slice_u8() {
-  return ((wuffs_base__slice_u8){});
-}
-
 // ---------------- Bureaucracy re -Wunused-function
 
 static inline void
@@ -381,5 +374,4 @@
   (void)(wuffs_base__u8__min);
   (void)(wuffs_base__u8__sat_add);
   (void)(wuffs_base__u8__sat_sub);
-  (void)(wuffs_base__utility__null_slice_u8);
 }
diff --git a/cmd/wuffs-c/internal/cgen/data.go b/cmd/wuffs-c/internal/cgen/data.go
index b1f45cf..72930b1 100644
--- a/cmd/wuffs-c/internal/cgen/data.go
+++ b/cmd/wuffs-c/internal/cgen/data.go
@@ -54,8 +54,10 @@
 	"" +
 	"// --------\n\nstatic inline wuffs_base__slice_u8  //\nwuffs_base__table_u8__row(wuffs_base__table_u8 t, uint32_t y) {\n  if (y < t.height) {\n    return ((wuffs_base__slice_u8){\n        .ptr = t.ptr + (t.stride * y),\n        .len = t.width,\n    });\n  }\n  return ((wuffs_base__slice_u8){});\n}\n\n" +
 	"" +
+	"// ---------------- Slices and Tables (Utility)\n\nstatic inline wuffs_base__slice_u8  //\nwuffs_base__utility__null_slice_u8() {\n  return ((wuffs_base__slice_u8){});\n}\n\n" +
+	"" +
 	"// ---------------- Bureaucracy re -Wunused-function\n\nstatic inline void\nwuffs_base__acknowledge_potentially_unused_functions__core_private()\n    WUFFS_BASE__POTENTIALLY_UNUSED;\n\nstatic inline void\nwuffs_base__acknowledge_potentially_unused_functions__core_private() {\n  (void)(wuffs_base__load_u16be);\n  (void)(wuffs_base__load_u16le);\n  (void)(wuffs_base__load_u24be);\n  (void)(wuffs_base__load_u24le);\n  (void)(wuffs_base__load_u32be);\n  (void)(wuffs_base__load_u32le);\n  (void)(wuffs_base__load_u40be);\n  (void)(wuffs_base__load_u40le);\n  (void)(wuffs_base__load_u48be);\n  (void)(wuffs_base__load_u48le);\n  (void)(wuffs_base__load_u56be);\n  (void)(wuffs_base__load_u56le);\n  (void)(wuffs_base__load_u64be);\n  (void)(wuffs_base__load_u64le);\n  (void)(wuffs_base__load_u8be);\n  (void)(wuffs_base__return_empty_struct);\n  (void)(wuffs_base__slice_u8__copy_from_slice);\n  (void)(wuffs_base__slice_u8__prefix);\n  (void)(wuffs_base__slice_u8__suffix);\n  (void)(wuffs_base__store_u16be);\n  (void)(wuffs_base__store_u16le);\n  (v" +
-	"oid)(wuffs_base__store_u24be);\n  (void)(wuffs_base__store_u24le);\n  (void)(wuffs_base__store_u32be);\n  (void)(wuffs_base__store_u32le);\n  (void)(wuffs_base__store_u40be);\n  (void)(wuffs_base__store_u40le);\n  (void)(wuffs_base__store_u48be);\n  (void)(wuffs_base__store_u48le);\n  (void)(wuffs_base__store_u56be);\n  (void)(wuffs_base__store_u56le);\n  (void)(wuffs_base__store_u64be);\n  (void)(wuffs_base__store_u64le);\n  (void)(wuffs_base__store_u8be);\n  (void)(wuffs_base__table_u8__row);\n  (void)(wuffs_base__u16__sat_add_indirect);\n  (void)(wuffs_base__u16__sat_sub_indirect);\n  (void)(wuffs_base__u32__sat_add_indirect);\n  (void)(wuffs_base__u32__sat_sub_indirect);\n  (void)(wuffs_base__u64__sat_add_indirect);\n  (void)(wuffs_base__u64__sat_sub_indirect);\n  (void)(wuffs_base__u8__sat_add_indirect);\n  (void)(wuffs_base__u8__sat_sub_indirect);\n}\n" +
+	"oid)(wuffs_base__store_u24be);\n  (void)(wuffs_base__store_u24le);\n  (void)(wuffs_base__store_u32be);\n  (void)(wuffs_base__store_u32le);\n  (void)(wuffs_base__store_u40be);\n  (void)(wuffs_base__store_u40le);\n  (void)(wuffs_base__store_u48be);\n  (void)(wuffs_base__store_u48le);\n  (void)(wuffs_base__store_u56be);\n  (void)(wuffs_base__store_u56le);\n  (void)(wuffs_base__store_u64be);\n  (void)(wuffs_base__store_u64le);\n  (void)(wuffs_base__store_u8be);\n  (void)(wuffs_base__table_u8__row);\n  (void)(wuffs_base__u16__sat_add_indirect);\n  (void)(wuffs_base__u16__sat_sub_indirect);\n  (void)(wuffs_base__u32__sat_add_indirect);\n  (void)(wuffs_base__u32__sat_sub_indirect);\n  (void)(wuffs_base__u64__sat_add_indirect);\n  (void)(wuffs_base__u64__sat_sub_indirect);\n  (void)(wuffs_base__u8__sat_add_indirect);\n  (void)(wuffs_base__u8__sat_sub_indirect);\n  (void)(wuffs_base__utility__null_slice_u8);\n}\n" +
 	""
 
 const baseCorePublicH = "" +
@@ -78,10 +80,8 @@
 	"int8_t) wuffs_base__table_u8;\ntypedef WUFFS_BASE__TABLE(uint16_t) wuffs_base__table_u16;\ntypedef WUFFS_BASE__TABLE(uint32_t) wuffs_base__table_u32;\ntypedef WUFFS_BASE__TABLE(uint64_t) wuffs_base__table_u64;\n\n// wuffs_base__slice_u8__subslice_i returns s[i:].\n//\n// It returns an empty slice if i is out of bounds.\nstatic inline wuffs_base__slice_u8  //\nwuffs_base__slice_u8__subslice_i(wuffs_base__slice_u8 s, uint64_t i) {\n  if ((i <= SIZE_MAX) && (i <= s.len)) {\n    return ((wuffs_base__slice_u8){\n        .ptr = s.ptr + i,\n        .len = s.len - i,\n    });\n  }\n  return ((wuffs_base__slice_u8){});\n}\n\n// wuffs_base__slice_u8__subslice_j returns s[:j].\n//\n// It returns an empty slice if j is out of bounds.\nstatic inline wuffs_base__slice_u8  //\nwuffs_base__slice_u8__subslice_j(wuffs_base__slice_u8 s, uint64_t j) {\n  if ((j <= SIZE_MAX) && (j <= s.len)) {\n    return ((wuffs_base__slice_u8){\n        .ptr = s.ptr,\n        .len = j,\n    });\n  }\n  return ((wuffs_base__slice_u8){});\n}\n\n// wuffs_base__slice_u8__subslice_" +
 	"ij returns s[i:j].\n//\n// It returns an empty slice if i or j is out of bounds.\nstatic inline wuffs_base__slice_u8  //\nwuffs_base__slice_u8__subslice_ij(wuffs_base__slice_u8 s,\n                                  uint64_t i,\n                                  uint64_t j) {\n  if ((i <= j) && (j <= SIZE_MAX) && (j <= s.len)) {\n    return ((wuffs_base__slice_u8){\n        .ptr = s.ptr + i,\n        .len = j - i,\n    });\n  }\n  return ((wuffs_base__slice_u8){});\n}\n\n" +
 	"" +
-	"// ---------------- Slices and Tables (Utility)\n\nstatic inline wuffs_base__slice_u8  //\nwuffs_base__utility__null_slice_u8() {\n  return ((wuffs_base__slice_u8){});\n}\n\n" +
-	"" +
 	"// ---------------- Bureaucracy re -Wunused-function\n\nstatic inline void\nwuffs_base__acknowledge_potentially_unused_functions__core_public()\n    WUFFS_BASE__POTENTIALLY_UNUSED;\n\nstatic inline void\nwuffs_base__acknowledge_potentially_unused_functions__core_public() {\n  (void)(wuffs_base__slice_u8__subslice_i);\n  (void)(wuffs_base__slice_u8__subslice_ij);\n  (void)(wuffs_base__slice_u8__subslice_j);\n  (void)(wuffs_base__status__is_complete);\n  (void)(wuffs_base__status__is_error);\n  (void)(wuffs_base__status__is_ok);\n  (void)(wuffs_base__status__is_suspension);\n  (void)(wuffs_base__status__is_warning);\n  (void)(wuffs_base__u16__max);\n  (void)(wuffs_base__u16__min);\n  (void)(wuffs_base__u16__sat_add);\n  (void)(wuffs_base__u16__sat_sub);\n  (void)(wuffs_base__u32__max);\n  (void)(wuffs_base__u32__min);\n  (void)(wuffs_base__u32__sat_add);\n  (void)(wuffs_base__u32__sat_sub);\n  (void)(wuffs_base__u64__max);\n  (void)(wuffs_base__u64__min);\n  (void)(wuffs_base__u64__sat_add);\n  (void)(wuffs_base__u64__sat_sub);\n  (void)(" +
-	"wuffs_base__u8__max);\n  (void)(wuffs_base__u8__min);\n  (void)(wuffs_base__u8__sat_add);\n  (void)(wuffs_base__u8__sat_sub);\n  (void)(wuffs_base__utility__null_slice_u8);\n}\n" +
+	"wuffs_base__u8__max);\n  (void)(wuffs_base__u8__min);\n  (void)(wuffs_base__u8__sat_add);\n  (void)(wuffs_base__u8__sat_sub);\n}\n" +
 	""
 
 const baseMemoryPrivateH = "" +
diff --git a/release/c/wuffs-unsupported-snapshot.c b/release/c/wuffs-unsupported-snapshot.c
index 6f17b78..7d2c831 100644
--- a/release/c/wuffs-unsupported-snapshot.c
+++ b/release/c/wuffs-unsupported-snapshot.c
@@ -373,13 +373,6 @@
   return ((wuffs_base__slice_u8){});
 }
 
-// ---------------- Slices and Tables (Utility)
-
-static inline wuffs_base__slice_u8  //
-wuffs_base__utility__null_slice_u8() {
-  return ((wuffs_base__slice_u8){});
-}
-
 // ---------------- Bureaucracy re -Wunused-function
 
 static inline void
@@ -412,7 +405,6 @@
   (void)(wuffs_base__u8__min);
   (void)(wuffs_base__u8__sat_add);
   (void)(wuffs_base__u8__sat_sub);
-  (void)(wuffs_base__utility__null_slice_u8);
 }
 
 // ---------------- Ranges and Rects
@@ -4006,6 +3998,13 @@
   return ((wuffs_base__slice_u8){});
 }
 
+// ---------------- Slices and Tables (Utility)
+
+static inline wuffs_base__slice_u8  //
+wuffs_base__utility__null_slice_u8() {
+  return ((wuffs_base__slice_u8){});
+}
+
 // ---------------- Bureaucracy re -Wunused-function
 
 static inline void
@@ -4057,6 +4056,7 @@
   (void)(wuffs_base__u64__sat_sub_indirect);
   (void)(wuffs_base__u8__sat_add_indirect);
   (void)(wuffs_base__u8__sat_sub_indirect);
+  (void)(wuffs_base__utility__null_slice_u8);
 }
 
 // ---------------- Ranges and Rects
