https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95559
Bug ID: 95559 Summary: Compiling "{{}}" result is inconsistent in different versions Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: haoxintu at gmail dot com Target Milestone: --- This case test.cc #include<iostream> int main() { return {{}}; } In the version of GCC 6.1 - 8.4, it's compiled ok. But in GCC 6.1 lower and 8.4 higher version, for example, in GCC trunk $g++-trunk test.cc test.cc: In function 'int main()': test.cc:3:15: error: too many braces around scalar initializer for type 'int' 3 | int var = {{}}; | I also compiled test.cc in recent released Clang, and they all accept "{{}}". Should GCC compile "{{}}" fine also? I think this is a supported feature according to https://en.cppreference.com/w/cpp/language/return.