================
@@ -7869,9 +7869,10 @@ void Sema::AddFunctionCandidates(const UnresolvedSetImpl 
&Fns,
       // Slice the first argument (which is the base) when we access
       // static method as non-static.
       if (Args.size() > 0 &&
-          (!Args[0] || (FirstArgumentIsBase && isa<CXXMethodDecl>(FD) &&
-                        !isa<CXXConstructorDecl>(FD)))) {
-        assert(cast<CXXMethodDecl>(FD)->isStatic());
+          (!Args[0] ||
+           (isa<CXXMethodDecl>(FD) && !isa<CXXConstructorDecl>(FD) &&
+            (FirstArgumentIsBase || cast<CXXMethodDecl>(FD)->isStatic())))) {
+        assert(FirstArgumentIsBase || cast<CXXMethodDecl>(FD)->isStatic());
----------------
timon-ul wrote:

This assert is pretty pointless, you can only enter this branch if either 
`FirstArgumentIsBase || cast<CXXMethodDecl>(FD)->isStatic()` so of course this 
will hold. As far as I can tell the old assert logic was that if 
`FirstArgumentIsBase == true` it had to be a static function, but without 
explicitly testing for it this assert made sure that it is the case. Now with 
your new assert this could not be true and slip by this assert now.

https://github.com/llvm/llvm-project/pull/199192
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to