GCC's C and C++ extension allowing the use of (usually compound) statements as expressions, such that the value of the last one is considered the expression value
GCC's C and C++ extension allowing expressions which are (blocks of) statements, such that the value of the last one is considered the expression value
In C and C++, a statement does not serve as an expression. One of GCC's supported extensions, however, is allowing statements to be interpreted as expressions - the usually-discarded value of the outermost operator, functional call etc. In the case of a compound statement - a curly-braces block - the expression value is that of the last statement in the block.
This allows doing work within the block such as defining variables and using them in the computation of a value
Statement expressions are described in the GCC documentation: