template simplifier: fix missing instantiation (#1627)
This commit is contained in:
parent
8078890b1b
commit
68bbe15116
|
@ -1369,8 +1369,12 @@ void TemplateSimplifier::expandTemplate(
|
|||
continue;
|
||||
}
|
||||
if (inTemplateDefinition) {
|
||||
if (!endOfTemplateDefinition && tok3->str() == "{")
|
||||
endOfTemplateDefinition = tok3->link();
|
||||
if (!endOfTemplateDefinition) {
|
||||
if (isVariable)
|
||||
endOfTemplateDefinition = Token::findsimplematch(tok3, ";");
|
||||
else if (tok3->str() == "{")
|
||||
endOfTemplateDefinition = tok3->link();
|
||||
}
|
||||
if (tok3 == endOfTemplateDefinition) {
|
||||
inTemplateDefinition = false;
|
||||
startOfTemplateDeclaration = nullptr;
|
||||
|
@ -1532,7 +1536,7 @@ void TemplateSimplifier::expandTemplate(
|
|||
addNamespace(templateDeclaration, tok3);
|
||||
}
|
||||
mTokenList.addtoken(newName, tok3->linenr(), tok3->fileIndex());
|
||||
} else if (!Token::Match(tok3->next(), ":|{"))
|
||||
} else if (!Token::Match(tok3->next(), ":|{|="))
|
||||
tok3->str(newName);
|
||||
continue;
|
||||
}
|
||||
|
|
|
@ -1934,14 +1934,15 @@ private:
|
|||
"long f2 = fib<2>;\n"
|
||||
"long f3 = fib<3>;";
|
||||
const char act[] = "const long fib<2> = fib < 1 > + fib < 0 > ; "
|
||||
"const long fib<3> = fib < 2 > + fib < 1 > ; "
|
||||
"const long fib<0> = 0 ; "
|
||||
"const long fib<1> = 1 ; "
|
||||
"long f0 ; f0 = fib<0> ; "
|
||||
"long f1 ; f1 = fib<1> ; "
|
||||
"long f2 ; f2 = fib<2> ; "
|
||||
"long f3 ; f3 = fib < 3 > ;";
|
||||
const char exp[] = "const long fib<3> = fib<2> + fib<1> ; "
|
||||
"const long fib<2> = fib<1> + fib<0> ; "
|
||||
"long f3 ; f3 = fib<3> ;";
|
||||
const char exp[] = "const long fib<2> = fib<1> + fib<0> ; "
|
||||
"const long fib<3> = fib<2> + fib<1> ; "
|
||||
"const long fib<0> = 0 ; "
|
||||
"const long fib<1> = 1 ; "
|
||||
"long f0 ; f0 = fib<0> ; "
|
||||
|
|
Loading…
Reference in New Issue