Prazek marked 5 inline comments as done.

================
Comment at: clang-tidy/modernize/UseEmplaceCheck.cpp:115
@@ -95,1 +114,3 @@
+  auto CtorCallSourceRange = CharSourceRange::getTokenRange(
+      InnerCtorCall->getExprLoc(), CallParensRange.getBegin());
 
----------------
alexfh wrote:
> Prazek wrote:
> > alexfh wrote:
> > > Prazek wrote:
> > > > alexfh wrote:
> > > > > This doesn't seem to be an issue, since expression 
> > > > > `v.push_back(obj.member())` won't trigger this check: it expects that 
> > > > > the argument of the `push_back` call is a `cxxConstructExpr` or a 
> > > > > `cxxFunctionalCastExpr`.
> > > > what about the implicit conversion? What if obj.member would return 
> > > > object that is different from the one that v stores, but it is 
> > > > convertible to it?
> > > Sounds almost like a recipe for a test case ;) Have you tried to 
> > > construct it this way?
> > Yes, I think I emulated this case in line 190. I tried to hit this problem 
> > but could not find the test case.
> >> if The Call->getArg(0) will be a memberExpr (call to member function)
> > what about the implicit conversion?
> 
> I think, I know what happens in this case. When an implicit conversion 
> happens in `v.push_back(obj.member())`, then `Call->getArg(0)` is an implicit 
> `CXXConstructExpr`, not a `MemberExpr` (`MemberExpr` will be its indirect 
> child). The case should be handled correctly.
That might be it. I remember that in some early version I was biding to 
MemberExpr somewhere, which might cause it.


https://reviews.llvm.org/D22208



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

Reply via email to