forked from qt-creator/qt-creator
By lexing the first token after a macro call (meaning: the token after the closing parenthesis (which was passed to handleFunctionLikeMacro which in turn pushed it back into the token buffer)), a token buffer might be popped, which unblocks the macro that generated the actual param pack. The effect was that if this happens in the expansion of a recursive macro (with parameters!), the preprocessor ended up in an infinite loop. Task-number: QTCREATORBUG-9015 Task-number: QTCREATORBUG-9447 Change-Id: I0d83c59188ec15c4a948970e9fa944a17d765475 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
13 lines
286 B
C++
13 lines
286 B
C++
# 1 "data/recursive.2.cpp"
|
|
|
|
|
|
|
|
|
|
# expansion begin 70,1 ~2 5:2 ~3 5:2 ~3 5:2 ~3 5:2 ~3 5:2 ~3 5:2 ~1
|
|
b(1) c(1) b(1) b(1) a(1) b(1)
|
|
# expansion end
|
|
# expansion begin 75,1 ~2 6:2 ~3 6:2 ~3 6:2 ~3 6:2 ~3 6:2 ~3 6:2 ~1
|
|
a(1) b(1) a(1) a(1) c(1) a(1)
|
|
# expansion end
|
|
# 7 "data/recursive.2.cpp"
|