Quuxplusone added a comment.

@rsmith and/or @rtrieu, please take another look?  All my TODOs are done now: 
there are fixits, and the wording of the diagnostic changes if it's a "throw" 
instead of a "return", and the wording has been updated per Richard Smith's 
suggestions.

I have one very minor nit that I don't know how to fix:

  warn-return-std-move.cpp:220:12: warning: local variable 'd' will be copied
        despite being returned by name [-Wreturn-std-move]
      return (d);  // e17
             ^
  warn-return-std-move.cpp:220:12: note: call 'std::move' explicitly to avoid 
copying
      return (d);  // e17
             ^~~
             std::move(d)

The warning places a caret directly under the `(`, when I wish it would place 
`^~~` under the entire expression, the way the fixit does.

I also spent a little time looking into whether I could/should diagnose

  auto [x, y] = std::make_pair(Derived(), Derived());
  return x;  // 'x' will be copied despite being returned by name

but I have decided that this is probably too far afield to be rolled into this 
patch, even if I could figure out how to detect it, which to a first 
approximation I cannot. So I am deliberately punting on that one.


Repository:
  rC Clang

https://reviews.llvm.org/D43322



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to