diff options
Diffstat (limited to 'clang/lib/AST/SelectorLocationsKind.cpp')
-rw-r--r-- | clang/lib/AST/SelectorLocationsKind.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/clang/lib/AST/SelectorLocationsKind.cpp b/clang/lib/AST/SelectorLocationsKind.cpp index 9a44b387dd8..671207a7f2d 100644 --- a/clang/lib/AST/SelectorLocationsKind.cpp +++ b/clang/lib/AST/SelectorLocationsKind.cpp @@ -54,8 +54,11 @@ SourceLocation getArgLoc<Expr>(Expr *Arg) { template <> SourceLocation getArgLoc<ParmVarDecl>(ParmVarDecl *Arg) { + SourceLocation Loc = Arg->getLocStart(); + if (Loc.isInvalid()) + return Loc; // -1 to point to left paren of the method parameter's type. - return Arg->getLocStart().getLocWithOffset(-1); + return Loc.getLocWithOffset(-1); } template <typename T> |