From a2e85ada1dfef36201a31f6646bc4ea3bd76a89a Mon Sep 17 00:00:00 2001 From: Argyrios Kyrtzidis Date: Sat, 18 Jul 2009 00:33:33 +0000 Subject: [PATCH] Set ObjCMethodDecl's EndLoc to the '}' when it's a definition. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76269 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/AST/DeclObjC.h | 2 +- lib/Sema/SemaDecl.cpp | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/include/clang/AST/DeclObjC.h b/include/clang/AST/DeclObjC.h index ded2fc9772..1411c37cad 100644 --- a/include/clang/AST/DeclObjC.h +++ b/include/clang/AST/DeclObjC.h @@ -125,7 +125,7 @@ private: ObjCList ParamInfo; /// List of attributes for this method declaration. - SourceLocation EndLoc; // the location of the ';' or '{'. + SourceLocation EndLoc; // the location of the ';' or '}'. // The following are only used for method definitions, null otherwise. // FIXME: space savings opportunity, consider a sub-class. diff --git a/lib/Sema/SemaDecl.cpp b/lib/Sema/SemaDecl.cpp index 92afc343f3..bc497aa142 100644 --- a/lib/Sema/SemaDecl.cpp +++ b/lib/Sema/SemaDecl.cpp @@ -3208,6 +3208,7 @@ Sema::DeclPtrTy Sema::ActOnFinishFunctionBody(DeclPtrTy D, StmtArg BodyArg, } else if (ObjCMethodDecl *MD = dyn_cast_or_null(dcl)) { assert(MD == getCurMethodDecl() && "Method parsing confused"); MD->setBody(Body); + MD->setEndLoc(Body->getLocEnd()); if (!MD->isInvalidDecl()) DiagnoseUnusedParameters(MD->param_begin(), MD->param_end()); -- 2.50.1