SyntaxParser: avoid evaluating pound conditions in the new in-process parser.

This commit is contained in:
Xi Ge
2019-03-18 12:09:17 -07:00
parent d01e80d499
commit a970d13d9f

View File

@@ -284,6 +284,8 @@ swiftparse_client_node_t SynParser::parse(const char *source) {
ParserUnit PU(SM, SourceFileKind::Main, bufID, langOpts,
"syntax_parse_module", std::move(parseActions),
/*SyntaxCache=*/nullptr);
// Evaluating pound conditions may lead to unknown syntax.
PU.getParser().State->PerformConditionEvaluation = false;
std::unique_ptr<SynParserDiagConsumer> pConsumer;
if (DiagHandler) {
pConsumer = llvm::make_unique<SynParserDiagConsumer>(*this, bufID);