https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90546
--- Comment #2 from Nick Krempel ---
However it's also worth noting that if you take the original snippet and change
the declaration of "test" to accept a const rvalue reference instead: "void
test(const Foo&&);", then gcc 9.1 (and all other gcc
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90546
--- Comment #1 from Nick Krempel ---
My interpretation of the standard didn't take into account the reference to
http://eel.is/c++draft/over.match.ref when determining the type A.
It says that A will be "lvalue reference to cv2 T2 ... where cv1