[llvm-bugs] [Bug 42214] non-const lvalue reference to type is actually allowed?

via llvm-bugs llvm-bugs at lists.llvm.org
Sun Jun 9 21:28:03 PDT 2019


https://bugs.llvm.org/show_bug.cgi?id=42214

Richard Smith <richard-llvm at metafoo.co.uk> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |INVALID

--- Comment #1 from Richard Smith <richard-llvm at metafoo.co.uk> ---
> However, icc, gcc, and msvc all accept the code. non-const lvalue reference to
> type is actually allowed?

No, a non-const reference cannot be bound to a temporary -- clang is correct to
diagnose this. But the other implementations are correct too: because this
error occurs in a template, no diagnostic is required until the template is
actually instantiated.

If you add an instantiation:

void f() {
    VariableList<int, float>().ConnectAllToAll();
}

then GCC and ICC also reject, and MSVC also rejects under /permissive-
(standard-conforming mode).

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20190610/1547a257/attachment.html>


More information about the llvm-bugs mailing list