Browse Source

Delete an unused parameter in the parser

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
pull/1362/head
Dimitar Dobrev 6 years ago
parent
commit
e3237780bf
  1. 19
      src/CppParser/Parser.cpp
  2. 6
      src/CppParser/Parser.h

19
src/CppParser/Parser.cpp

@ -1571,8 +1571,7 @@ FunctionTemplate* Parser::WalkFunctionTemplate(const clang::FunctionTemplateDecl
if (auto MD = dyn_cast<CXXMethodDecl>(TemplatedDecl)) if (auto MD = dyn_cast<CXXMethodDecl>(TemplatedDecl))
Function = WalkMethodCXX(MD); Function = WalkMethodCXX(MD);
else else
Function = WalkFunction(TemplatedDecl, /*IsDependent=*/true, Function = WalkFunction(TemplatedDecl, /*AddToNamespace=*/false);
/*AddToNamespace=*/false);
FT = new FunctionTemplate(); FT = new FunctionTemplate();
HandleDeclaration(TD, FT); HandleDeclaration(TD, FT);
@ -3157,12 +3156,11 @@ void Parser::MarkValidity(Function* F)
c->getSema().getDiagnostics().setClient(existingClient, false); c->getSema().getDiagnostics().setClient(existingClient, false);
} }
void Parser::WalkFunction(const clang::FunctionDecl* FD, Function* F, void Parser::WalkFunction(const clang::FunctionDecl* FD, Function* F)
bool IsDependent)
{ {
using namespace clang; using namespace clang;
assert (FD->getBuiltinID() == 0); assert(FD->getBuiltinID() == 0);
auto FT = FD->getType()->getAs<clang::FunctionType>(); auto FT = FD->getType()->getAs<clang::FunctionType>();
auto NS = GetNamespace(FD); auto NS = GetNamespace(FD);
@ -3206,7 +3204,7 @@ void Parser::WalkFunction(const clang::FunctionDecl* FD, Function* F,
HandlePreprocessedEntities(F, FTL.getParensRange(), MacroLocation::FunctionParameters); HandlePreprocessedEntities(F, FTL.getParensRange(), MacroLocation::FunctionParameters);
} }
} }
auto ReturnType = FD->getReturnType(); auto ReturnType = FD->getReturnType();
if (FD->isExternallyVisible()) if (FD->isExternallyVisible())
CompleteIfSpecializationType(ReturnType); CompleteIfSpecializationType(ReturnType);
@ -3232,7 +3230,7 @@ void Parser::WalkFunction(const clang::FunctionDecl* FD, Function* F,
if (FTL) if (FTL)
{ {
auto FTInfo = FTL.castAs<FunctionTypeLoc>(); auto FTInfo = FTL.castAs<FunctionTypeLoc>();
assert (!FTInfo.isNull()); assert(!FTInfo.isNull());
ParamStartLoc = FTInfo.getLParenLoc(); ParamStartLoc = FTInfo.getLParenLoc();
ResultLoc = FTInfo.getReturnLoc().getBeginLoc(); ResultLoc = FTInfo.getReturnLoc().getBeginLoc();
@ -3283,7 +3281,7 @@ void Parser::WalkFunction(const clang::FunctionDecl* FD, Function* F,
const CXXMethodDecl* MD; const CXXMethodDecl* MD;
if (FD->isDependentContext() || if (FD->isDependentContext() ||
((MD = dyn_cast<CXXMethodDecl>(FD)) && !MD->isStatic() && ((MD = dyn_cast<CXXMethodDecl>(FD)) && !MD->isStatic() &&
!HasLayout(cast<CXXRecordDecl>(MD->getDeclContext()))) || !HasLayout(cast<CXXRecordDecl>(MD->getDeclContext()))) ||
!CanCheckCodeGenInfo(c->getSema(), FD->getReturnType().getTypePtr()) || !CanCheckCodeGenInfo(c->getSema(), FD->getReturnType().getTypePtr()) ||
std::any_of(FD->parameters().begin(), FD->parameters().end(), std::any_of(FD->parameters().begin(), FD->parameters().end(),
[this](auto* P) { return !CanCheckCodeGenInfo(c->getSema(), P->getType().getTypePtr()); })) [this](auto* P) { return !CanCheckCodeGenInfo(c->getSema(), P->getType().getTypePtr()); }))
@ -3307,8 +3305,7 @@ void Parser::WalkFunction(const clang::FunctionDecl* FD, Function* F,
F->qualifiedType = GetQualifiedType(FD->getType(), &FTL); F->qualifiedType = GetQualifiedType(FD->getType(), &FTL);
} }
Function* Parser::WalkFunction(const clang::FunctionDecl* FD, bool IsDependent, Function* Parser::WalkFunction(const clang::FunctionDecl* FD, bool AddToNamespace)
bool AddToNamespace)
{ {
using namespace clang; using namespace clang;
@ -3328,7 +3325,7 @@ Function* Parser::WalkFunction(const clang::FunctionDecl* FD, bool IsDependent,
if (AddToNamespace) if (AddToNamespace)
NS->Functions.push_back(F); NS->Functions.push_back(F);
WalkFunction(FD, F, IsDependent); WalkFunction(FD, F);
return F; return F;
} }

6
src/CppParser/Parser.h

@ -73,8 +73,7 @@ private:
Declaration* WalkDeclarationDef(clang::Decl* D); Declaration* WalkDeclarationDef(clang::Decl* D);
Enumeration* WalkEnum(const clang::EnumDecl* ED); Enumeration* WalkEnum(const clang::EnumDecl* ED);
Enumeration::Item* WalkEnumItem(clang::EnumConstantDecl* ECD); Enumeration::Item* WalkEnumItem(clang::EnumConstantDecl* ECD);
Function* WalkFunction(const clang::FunctionDecl* FD, bool IsDependent = false, Function* WalkFunction(const clang::FunctionDecl* FD, bool AddToNamespace = true);
bool AddToNamespace = true);
void EnsureCompleteRecord(const clang::RecordDecl* Record, DeclarationContext* NS, Class* RC); void EnsureCompleteRecord(const clang::RecordDecl* Record, DeclarationContext* NS, Class* RC);
Class* GetRecord(const clang::RecordDecl* Record, bool& IsComplete); Class* GetRecord(const clang::RecordDecl* Record, bool& IsComplete);
Class* WalkRecord(const clang::RecordDecl* Record); Class* WalkRecord(const clang::RecordDecl* Record);
@ -137,8 +136,7 @@ private:
void SetBody(const clang::FunctionDecl* FD, Function* F); void SetBody(const clang::FunctionDecl* FD, Function* F);
std::stack<clang::Scope> GetScopesFor(clang::FunctionDecl* FD); std::stack<clang::Scope> GetScopesFor(clang::FunctionDecl* FD);
void MarkValidity(Function* F); void MarkValidity(Function* F);
void WalkFunction(const clang::FunctionDecl* FD, Function* F, void WalkFunction(const clang::FunctionDecl* FD, Function* F);
bool IsDependent = false);
void HandlePreprocessedEntities(Declaration* Decl); void HandlePreprocessedEntities(Declaration* Decl);
void HandlePreprocessedEntities(Declaration* Decl, clang::SourceRange sourceRange, void HandlePreprocessedEntities(Declaration* Decl, clang::SourceRange sourceRange,
MacroLocation macroLocation = MacroLocation::Unknown); MacroLocation macroLocation = MacroLocation::Unknown);

Loading…
Cancel
Save