From d6aff018d446f22be4e4e0277080ebfa5b157288 Mon Sep 17 00:00:00 2001 From: Ed Schouten Date: Tue, 23 Jun 2009 14:50:21 +0000 Subject: Import Clang r73954. --- lib/AST/Decl.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'lib/AST/Decl.cpp') diff --git a/lib/AST/Decl.cpp b/lib/AST/Decl.cpp index bf63932011a2..71e88a9efc49 100644 --- a/lib/AST/Decl.cpp +++ b/lib/AST/Decl.cpp @@ -379,7 +379,7 @@ Stmt *FunctionDecl::getBodyIfAvailable() const { void FunctionDecl::setBody(Stmt *B) { Body = B; - if (B && EndRangeLoc < B->getLocEnd()) + if (B) EndRangeLoc = B->getLocEnd(); } @@ -494,8 +494,9 @@ void FunctionDecl::setParams(ASTContext& C, ParmVarDecl **NewParamInfo, ParamInfo = new (Mem) ParmVarDecl*[NumParams]; memcpy(ParamInfo, NewParamInfo, sizeof(ParmVarDecl*)*NumParams); - // Update source range. - if (EndRangeLoc < NewParamInfo[NumParams-1]->getLocEnd()) + // Update source range. The check below allows us to set EndRangeLoc before + // setting the parameters. + if (EndRangeLoc.isInvalid() || EndRangeLoc == getLocation()) EndRangeLoc = NewParamInfo[NumParams-1]->getLocEnd(); } } -- cgit v1.3