vsapsai added a comment.

Thanks for the reviews! I'm going to address the comments, `check-lldb`, check 
tests failing on Debian.



================
Comment at: clang/lib/AST/ASTStructuralEquivalence.cpp:1971
+    return false;
+  unsigned SlotsToCheck = NumArgs > 0 ? NumArgs : 1;
+  for (unsigned I = 0; I < SlotsToCheck; ++I) {
----------------
shafik wrote:
> I am curious what case are we catching here? Does `NumArgs` ever have the 
> value `1`?
Here I'm trying to handle the case with argument-less methods. For example, 
`-(void)test;` has 0 arguments but we still want to compare the first slot. At 
the moment I don't know how to clarify the code to make the intention clearer. 
Can add a comment explaining the intention (though there is a test that should 
catch breaking code accidentally).

And to answer your question, `NumArgs` can have value `1`.


================
Comment at: clang/lib/AST/ASTStructuralEquivalence.cpp:1989
+       ++ParamT1, ++ParamT2) {
+    if (!IsStructurallyEquivalent(Context, *ParamT1, *ParamT2))
+      return false;
----------------
a_sidorin wrote:
> Should we check if the parameter count is different?
Mismatch in the number of parameters should be caught by `NumArgs != 
Selector2.getNumArgs()` earlier. But I think it makes sense to add an assertion 
verifying `param_size` is equal at this point.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D121176

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

Reply via email to