*        di_u.delta[1] = distance to its corresponding tail cluster
  *                (di_advise could be 0, 1 or 2)
  */
+enum {
+       Z_EROFS_VLE_CLUSTER_TYPE_PLAIN,
+       Z_EROFS_VLE_CLUSTER_TYPE_HEAD,
+       Z_EROFS_VLE_CLUSTER_TYPE_NONHEAD,
+       Z_EROFS_VLE_CLUSTER_TYPE_RESERVED,
+       Z_EROFS_VLE_CLUSTER_TYPE_MAX
+};
+
 #define Z_EROFS_VLE_DI_CLUSTER_TYPE_BITS        2
 #define Z_EROFS_VLE_DI_CLUSTER_TYPE_BIT         0
 
        BUILD_BUG_ON(sizeof(struct erofs_extent_header) != 16);
        BUILD_BUG_ON(sizeof(struct z_erofs_vle_decompressed_index) != 8);
        BUILD_BUG_ON(sizeof(struct erofs_dirent) != 12);
+
+       BUILD_BUG_ON(BIT(Z_EROFS_VLE_DI_CLUSTER_TYPE_BITS) <
+                    Z_EROFS_VLE_CLUSTER_TYPE_MAX - 1);
 }
 
 #endif
 
 #define __vle_cluster_type(advise) __vle_cluster_advise(advise, \
        Z_EROFS_VLE_DI_CLUSTER_TYPE_BIT, Z_EROFS_VLE_DI_CLUSTER_TYPE_BITS)
 
-enum {
-       Z_EROFS_VLE_CLUSTER_TYPE_PLAIN,
-       Z_EROFS_VLE_CLUSTER_TYPE_HEAD,
-       Z_EROFS_VLE_CLUSTER_TYPE_NONHEAD,
-       Z_EROFS_VLE_CLUSTER_TYPE_RESERVED,
-       Z_EROFS_VLE_CLUSTER_TYPE_MAX
-};
-
 #define vle_cluster_type(di)   \
        __vle_cluster_type((di)->di_advise)