https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120025
--- Comment #8 from Stas Sergeev <stsp at users dot sourceforge.net> --- The interesting thing is that this works: ``` #include <iostream> struct A { int a; ~A() { std::cout << "a=" << a << std::endl; } }; int main() { (int&)A().a = 5; return 0; } ``` So I can just cast the rvalue to lvalue, which is more than strange.