diff --git a/av1/encoder/bitstream.c b/av1/encoder/bitstream.c
index 61216ab..bdc2617 100644
--- a/av1/encoder/bitstream.c
+++ b/av1/encoder/bitstream.c
@@ -4087,9 +4087,7 @@
 
   for (tile_row = 0; tile_row < tile_rows; tile_row++) {
     TileInfo tile_info;
-#if !CONFIG_TILE_GROUPS
     const int is_last_row = (tile_row == tile_rows - 1);
-#endif
     av1_tile_set_row(&tile_info, cm, tile_row);
 
     for (tile_col = 0; tile_col < tile_cols; tile_col++) {
@@ -4100,13 +4098,11 @@
 #endif
       const TOKENEXTRA *tok = tok_buffers[tile_row][tile_col];
       const TOKENEXTRA *tok_end = tok + cpi->tok_count[tile_row][tile_col];
-#if !CONFIG_TILE_GROUPS
       const int is_last_col = (tile_col == tile_cols - 1);
       const int is_last_tile = is_last_col && is_last_row;
+#if !CONFIG_TILE_GROUPS
       (void)tile_idx;
 #else
-      // All tiles in a tile group have a length
-      const int is_last_tile = 0;
 
       if ((!mtu_size && tile_count > tg_size) ||
           (mtu_size && tile_count && curr_tg_data_size >= mtu_size)) {
@@ -5004,12 +5000,7 @@
     for (n = 0; n < n_tiles; n++) {
       int tile_size;
 
-#if CONFIG_TILE_GROUPS
-      if (0)
-#else
-      if (n == n_tiles - 1)
-#endif
-      {
+      if (n == n_tiles - 1) {
         tile_size = data_size - rpos;
       } else {
         tile_size = mem_get_le32(dst + rpos);
