Browse Source

Fixed ParamStartLoc to be the correct parameter start location.

Added ParamEndLoc to make things clearer.
pull/303/head
Tom Spilman 12 years ago
parent
commit
9d7385bfbb
  1. 6
      src/CppParser/Parser.cpp

6
src/CppParser/Parser.cpp

@ -2142,6 +2142,7 @@ void Parser::WalkFunction(clang::FunctionDecl* FD, Function* F,
F->Mangled = Mangled; F->Mangled = Mangled;
clang::SourceLocation ParamStartLoc = FD->getLocStart(); clang::SourceLocation ParamStartLoc = FD->getLocStart();
clang::SourceLocation ParamEndLoc = FD->getLocEnd();
clang::SourceLocation ResultLoc; clang::SourceLocation ResultLoc;
auto FTSI = FD->getTypeSourceInfo(); auto FTSI = FD->getTypeSourceInfo();
@ -2156,12 +2157,13 @@ void Parser::WalkFunction(clang::FunctionDecl* FD, Function* F,
auto FTInfo = FTL.castAs<FunctionTypeLoc>(); auto FTInfo = FTL.castAs<FunctionTypeLoc>();
assert (!FTInfo.isNull()); assert (!FTInfo.isNull());
ParamStartLoc = FTInfo.getRParenLoc(); ParamStartLoc = FTInfo.getLParenLoc();
ParamEndLoc = FTInfo.getRParenLoc();
ResultLoc = FTInfo.getReturnLoc().getLocStart(); ResultLoc = FTInfo.getReturnLoc().getLocStart();
} }
} }
clang::SourceRange Range(FD->getLocStart(), ParamStartLoc); clang::SourceRange Range(FD->getLocStart(), ParamEndLoc);
if (ResultLoc.isValid()) if (ResultLoc.isValid())
Range.setBegin(ResultLoc); Range.setBegin(ResultLoc);

Loading…
Cancel
Save