https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102740
--- Comment #3 from Curdeius Curdeius <curdeius at gmail dot com> --- For other users with this problem, a workaround is to use a named struct. So here, it would look like: ``` typedef struct { const void* content; } put_t; typedef struct { union { put_t put; // named struct }; } op_t; op_t f(const char* alias) { return op_t{ .put = put_t{ // named explicitly .content = alias, }, }; } ```