llvm-project
3b05edfc - [clang][deps] Stop lexing if hit a failure while loading a PCH/module in a submodule. (#146976)

Commit
74 days ago
[clang][deps] Stop lexing if hit a failure while loading a PCH/module in a submodule. (#146976) Otherwise we are continuing in an invalid state and can easily crash. It is a follow-up to cde90e68f8123e7abef3f9e18d79980aa19f460a but an important difference is when a failure happens in a submodule. In this case in `Preprocessor::HandleEndOfFile` `tok::eof` is replaced by `tok::annot_module_end`. And after exiting a file with bad `#include/#import` we work with a new buffer, so `BufferPtr < BufferEnd`. As there are no signs to stop lexing we just keep doing it. The fix is the same as in dc9fdaf2171cc480300d5572606a8ede1678d18b in `Lexer::LexTokenInternal` but this time in `Lexer::LexDependencyDirectiveToken` as well. rdar://152499276
Author
Parents
Loading