• Erik Verbruggen's avatar
    C++: Fix preprocessor blocked macro bug. · 271c3f45
    Erik Verbruggen authored
    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: default avatarNikolai Kosjar <nikolai.kosjar@digia.com>
    271c3f45
pp-engine.cpp 68.4 KB