/*
* Tests for the GCC extension 'statement expressions', which allows a block of
* statements to occur as part of an expression.
*/
// Ensure that the inner types are accessible from outside the block.
// Depending on the memory management strategy, the inner types might be freed
// too early.
static inline int
use_inner_type_from_outside(void)
{
int x = ({
struct outer {
struct inner {
int member;
} inner;
} outer = { { 3 } };
outer;
}).inner.member;