In the source code of GZIP in GNU, when compiled on TC2, it passes.
#define FLUSH_BLOCK(eof) \
flush_block(block_start >= 0L ? (char*)&window[(unsigned)block_start] : \
(char*)NULL, (long)strstart - block_start, (eof))
With the above macro definition, there is the following statement that feels violating regulations later!
if (flush) FLUSH_BLOCK(0), block_start = strstart;
Attention!!! The above "comma" (not semicolon)!!!
#define FLUSH_BLOCK(eof) \
flush_block(block_start >= 0L ? (char*)&window[(unsigned)block_start] : \
(char*)NULL, (long)strstart - block_start, (eof))
With the above macro definition, there is the following statement that feels violating regulations later!
if (flush) FLUSH_BLOCK(0), block_start = strstart;
Attention!!! The above "comma" (not semicolon)!!!


