https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111421
--- Comment #3 from Abdulmalek Almkainzi <malekwryyy at gmail dot com> --- (In reply to jos...@codesourcery.com from comment #1) > See the definitions of "named constant" and "compound literal constant". > Array element accesses aren't allowed, and the example you have with "->" > shouldn't be accepted either (although the standard rules for > implementation-defined constant expressions probably allow implementations > to accept such an example if they so choose). Alright, I see how this is not a GCC bug and instead part of the standard. But may I ask how this is even the case? the expression is constant and can be evaluated at compile time.