             struct
             {
                 // Smem needed for communicating start/end indices between threads for a given work tile
-                Offset thread_segment_idx[BLOCK_THREADS + 1];
-                Offset thread_value_idx[BLOCK_THREADS + 1];
+                volatile Offset thread_segment_idx[BLOCK_THREADS + 1];
+                volatile Offset thread_value_idx[BLOCK_THREADS + 1];
             };
         };
 

            else if (valid_value)
            {
                // Consume this value index

                // Update the tuple's value with the value at this index.
                partial_reductions[ITEM].value = d_values[thread_value_idx];

                // Increment value index
                thread_value_idx++;

                // Sync the stream if specified
                if (debug_synchronous && (CubDebug(error = SyncStream(stream)))) break;
            }
*/
        }

        while (0);
