[LLVMbugs] [Bug 9170] New: Bad diagnostic when passing non-rvalue to rvalue-reference

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Tue Feb 8 15:49:01 PST 2011


http://llvm.org/bugs/show_bug.cgi?id=9170

           Summary: Bad diagnostic when passing non-rvalue to
                    rvalue-reference
           Product: clang
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++0x
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: jyasskin at google.com
                CC: llvmbugs at cs.uiuc.edu, dgregor at apple.com


The below diagnostic should say something about how you can't bind an lvalue
(even one declared as T&&, although that's not the problem in this case) to an
rvalue parameter.


$ cat ~/tmp/test.cc
struct vector {
  void swap(vector&& __x);
};

void foo() {
  vector v, u;
  v.swap(u);
}
$  clang++  -std=gnu++0x -c ~/tmp/test.cc
/home/jyasskin/tmp/test.cc:7:10: error: binding of reference to type 'vector'
to a value
      of type 'vector' drops qualifiers
  v.swap(u);
         ^
/home/jyasskin/tmp/test.cc:2:22: note: passing argument to parameter '__x' here
  void swap(vector&& __x);
                     ^
1 error generated.

-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the llvm-bugs mailing list