bugfix: endless recursion in 'semAfterMacroCall'

This commit is contained in:
Araq 2012-01-13 15:17:43 +01:00
commit 69997af8e9
2 changed files with 5 additions and 1 deletions

View file

@ -99,6 +99,10 @@ proc semAndEvalConstExpr(c: PContext, n: PNode): PNode =
include seminst, semcall
proc semAfterMacroCall(c: PContext, n: PNode, s: PSym): PNode =
inc(evalTemplateCounter)
if evalTemplateCounter > 100:
GlobalError(s.info, errTemplateInstantiationTooNested)
result = n
case s.typ.sons[0].kind
of tyExpr:
@ -115,6 +119,7 @@ proc semAfterMacroCall(c: PContext, n: PNode, s: PSym): PNode =
result = semExpr(c, result)
result = fitNode(c, s.typ.sons[0], result)
#GlobalError(s.info, errInvalidParamKindX, typeToString(s.typ.sons[0]))
dec(evalTemplateCounter)
proc semMacroExpr(c: PContext, n: PNode, sym: PSym,
semCheck: bool = true): PNode =