njames93 added a comment.

In D84831#2181336 <https://reviews.llvm.org/D84831#2181336>, @gribozavr2 wrote:

>> Passed test cases but failed in the real world as std::string has a non 
>> trivial destructor so creates a CXXBindTemporaryExpr.
>
> An idea for a future change: move the std::string mock from this test into a 
> header that is shared across all tests that need a std::string. That will 
> hopefully allow us to combine forces when curating the standard library mocks.

That does sound like a good plan, could also add maybe vector

Also a future change for this specific check would be to replace the call to 
`c_str()` when its being bound to an r value with an explicit copy constructor 
call

   void foo(std::string &&);
   void bar(const std::string& S) {
  -  foo(S.c_str());
  +  foo(std::string(S));
   }

This would be more of a performance change though, basically save a call to 
strlen.
Though arguably it is slightly more readable, as you are explicitly saying you 
want to pass a copy of the string


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D84831/new/

https://reviews.llvm.org/D84831

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

Reply via email to