https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119661
Bug ID: 119661 Summary: Possible "accepts invalid": member access into incomplete type 'struct s' Product: gcc Version: 14.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: pavel.morozkin at gmail dot com Target Milestone: --- Note: this may be a duplicate. This C++ code: struct s { int x; int y[sizeof((struct s*)0)->x]; }; compiled with g++ -std=c++26 -pedantic -Wall -Wextra produces: <nothing> while compiled with clang -std=c++26 -pedantic -Wall -Wextra produces: <source>:4:31: error: member access into incomplete type 'struct s' 4 | int y[sizeof((struct s*)0)->x]; | ^ <source>:1:8: note: definition of 's' is not complete until the closing '}' 1 | struct s | ^ Online demo: https://gcc.godbolt.org/z/nvrrM7zez. Who is correct? (Please elaborate by quoting the C++ standard.) Originates from: https://stackoverflow.com/q/79538353/1778275.