Consider: int && f(); void g() { &(f()); } GCC accepts, but shouldn't, because by 5.3.1p2 (in n2461) the operand of unary & must be an lvalue, and by 5p6 (f()) is an rvalue. I'm using g++ (GCC) 4.3.0 20080106 (experimental).
After discussing this with Howard Hinnant, we agree that it is a bug. I'll handle it.
Patch at http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00584.html
Fixed in 4.6.x.