malcolm.parsons added inline comments.

================
Comment at: clang-tidy/misc/StringCompareCheck.cpp:37
+      hasArgument(0, expr().bind("str2")), argumentCountIs(1),
+      callee(memberExpr(has(implicitCastExpr(anyOf(
+          
has(callExpr(has(implicitCastExpr(has(declRefExpr())))).bind("str1")),
----------------
madsravn wrote:
> malcolm.parsons wrote:
> > Do you really care what the callee expression is? 
> > Use `isArrow()` on the `MemberExpr` to check if it's a pointer.
> How else would I get str1? Using the below snippet, I only get str1.compare 
> and str1->compare instead of str1. 
> Given a MemberExpr (str1.compare) is there an easy way to extract str1? 
> 
> ```
> const auto StrCompare = cxxMemberCallExpr(
>       callee(cxxMethodDecl(hasName("compare"),
>                            ofClass(classTemplateSpecializationDecl(
>                                hasName("::std::basic_string"))))),
>       hasArgument(0, expr().bind("str2")), argumentCountIs(1),
>       callee(memberExpr().bind("str1")))
> ```
`getBase()`


https://reviews.llvm.org/D27210



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

Reply via email to