[clang] [clang][AST] Handle dependent representation of call to function with explicit object parameter in CallExpr::getBeginLoc() (PR #126868)

Aaron Ballman via cfe-commits cfe-commits at lists.llvm.org
Wed Feb 12 04:54:21 PST 2025


================
@@ -1648,8 +1648,11 @@ SourceLocation CallExpr::getBeginLoc() const {
   if (const auto *Method =
           dyn_cast_if_present<const CXXMethodDecl>(getCalleeDecl());
       Method && Method->isExplicitObjectMemberFunction()) {
-    assert(getNumArgs() > 0 && getArg(0));
-    return getArg(0)->getBeginLoc();
+    if (!isTypeDependent()) {
+      assert(getNumArgs() > 0 && getArg(0));
+      if (getNumArgs() > 0 && getArg(0))
----------------
AaronBallman wrote:

IMO, the `assert` by itself is sufficient. Otherwise everyone is paying the overhead for the check which should never fail anyway.

https://github.com/llvm/llvm-project/pull/126868


More information about the cfe-commits mailing list