Change in r337953 violated the contract for CXTranslationUnit_KeepGoing:
Do not stop processing when fatal errors are encountered.
Use different approach to fix long processing times with multiple
inclusion cycles. Instead of stopping preprocessing for fatal errors, do
this after heuristically detecting an inclusion cycle.
rdar://problem/46108547
Why not just always set HasIncludeCycle = true; if we've reached the max allowed include stack depth? Seems like that would always be due to recursive includes. But even if it wasn't caused by recursive includes, we still probably shouldn't descend into more included files anyway, right?