Message <Context> accepting a compound literal as a constant is a language extension. The compound literal will be treated as a cast expression. Description A compound literal appears in a context where a constant expression is required. The C standard does not list compound literals as a form of operand that is allowed in a constant expression, so using a compound literal in this context is not maximally portable. The compiler will treat the compound literal as if it were a cast expression, which is a form of operand that the standard lists as being allowed in constant expressions. User Action For maximum portability, replace the compound literal with a cast expression.