https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119043
Bug ID: 119043 Summary: GCC 14.2 Fails to Parse Empty Attribute [[ ]] in Array new Expression Product: gcc Version: 14.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: qurong at ios dot ac.cn Target Milestone: --- GCC 14.2 incorrectly rejects array new expressions containing empty attribute specifiers ([[ ]]), while MSVC and Clang accept them as valid C++ code. This violates the C++ standard syntax rules. For the following code test.cpp: ``` int main() { auto p = new int[5][[]]; // Empty attribute [[ ]] delete[] p; return 0; } ``` Compile with GCC 14.2: g++ -std=c++17 test.cpp Expected Result: Compilation succeeds, as empty attributes [[ ]] are explicitly allowed by the C++ standard. Actual Result: GCC 14.2 reports: test.cpp: In function ‘int main()’: test.cpp:2:28: error: expected primary-expression before ‘]’ token 2 | auto p = new int[5][[]]; | ^ Environment: Compiler: GCC 14.2 Flags: -std=c++17 Proposal: Fix the parser to recognize empty attribute specifiers ([[ ]]) in array new expressions. Additional Notes: Standard Compliance: C++17 §10.6.1 allows empty attribute lists. Clang and MSVC demonstrate correct behavior. Compiler Explorer link: https://godbolt.org/z/azWxGdGn6