https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81420

Marc Glisse <glisse at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|2018-01-08 00:00:00         |2018-5-1

--- Comment #2 from Marc Glisse <glisse at gcc dot gnu.org> ---
Yes, this lifetime extension mechanism seems super fragile in gcc. Binding to a
base fails, binding to an array element fails

int d;

struct A
{
  int i[2];
  ~A() { ++d; };
};

int main()
{
  // int&&r = A().i[0];
  const int &r = A().i[0];
  if (d != 0)
    __builtin_abort();
}

even a regular member fails if referenced with a slightly different syntax (bug
53288).

Reply via email to