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.

Reply via email to