https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103185
Bug ID: 103185 Summary: ind[arr] is rejected when arr is an array prvalue Product: gcc Version: 10.1.0 Status: UNCONFIRMED Keywords: rejects-valid Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: de34 at live dot cn Target Milestone: --- With gcc 10 and later versions, the following program compiles in C++11/14 modes, but fails to compile in C++17 and later modes. #include <type_traits> int main() { using intarr = int[]; static_assert(std::is_same<decltype(0[intarr{0}]), int&&>::value, ""); } It seems that arr[ind]("intarr{0}[0]") doesn't suffer from this bug. Gcc 9 correctly accepted this code. wandbox links: gcc 12.0 (-std=c++17): https://wandbox.org/permlink/AQGr8pUXHQkPrJ9m gcc 12.0 (-std=c++14): https://wandbox.org/permlink/aYpBwLVK8tsDHTl3 gcc 10.1 (-std=c++17): https://wandbox.org/permlink/nnWuZAawBZnrmHvN gcc 10.1 (-std=c++14): https://wandbox.org/permlink/4fNJLiqU5VaMZPfm gcc 9.3 (-std=c++17): https://wandbox.org/permlink/vugrP8zIzBSPiVup Perhaps this bug is related to bug 94264 and bug 103183.