LateParsedTemplateMapT;
LateParsedTemplateMapT LateParsedTemplateMap;
- static void LateTemplateParserCallback(void *P, FunctionDecl *FD);
- void LateTemplateParser(FunctionDecl *FD);
+ static void LateTemplateParserCallback(void *P, const FunctionDecl *FD);
+ void LateTemplateParser(const FunctionDecl *FD);
Sema::ParsingClassState
PushParsingClass(Decl *TagOrTemplate, bool TopLevelClass);
llvm::SmallVector<const DeclaratorDecl*, 4> UnusedFileScopedDecls;
/// \brief Callback to the parser to parse templated functions when needed.
- typedef void LateTemplateParserCB(void *P, FunctionDecl *FD);
+ typedef void LateTemplateParserCB(void *P, const FunctionDecl *FD);
LateTemplateParserCB *LateTemplateParser;
void *OpaqueParser;
return R;
}
-void Parser::LateTemplateParserCallback(void *P, FunctionDecl *FD) {
+void Parser::LateTemplateParserCallback(void *P, const FunctionDecl *FD) {
((Parser*)P)->LateTemplateParser(FD);
}
-void Parser::LateTemplateParser(FunctionDecl *FD) {
+void Parser::LateTemplateParser(const FunctionDecl *FD) {
LateParsedTemplatedFunction *LPT = LateParsedTemplateMap[FD];
if (LPT) {
ParseLateTemplatedFuncDef(*LPT);
// a templated function definition.
if (!Pattern && PatternDecl && PatternDecl->isLateTemplateParsed() &&
LateTemplateParser) {
- LateTemplateParser(OpaqueParser, (FunctionDecl*)PatternDecl);
+ LateTemplateParser(OpaqueParser, PatternDecl);
Pattern = PatternDecl->getBody(PatternDecl);
}