http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53434
Bug #: 53434 Summary: Compiler decides declaration/expression ambiguity too soon. Classification: Unclassified Product: gcc Version: 4.6.3 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: james.ka...@gmail.com Created attachment 27459 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=27459 Source code for very simple program showing the bug. This may be the same as 37213, but the context is somewhat different. When I compile (simply g++ -c <filename>), I get the following error message: bugInGcc.cc: In function 'void f()': bugInGcc.cc:20:39: error: size of array has non-integral type 'const char [2]' bugInGcc.cc:20:39: error: 'parameter' declared as function returning an array Apparently, g++ is deciding in favor of declaration after seeing C()["a"], despite the fact that a declaration cannot be followed by a . operator.