[PATCH] D36458: Fix crash when current lexer is nullptr

Ilya Biryukov via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Aug 18 02:26:05 PDT 2017

ilya-biryukov added a comment.

I've also stumbled upon this crash. Here is an even simpler repro that crashes for me (does not involve includes):

  #ifndef HEADER_GUARD
  #define FOO(X) int fhjdfhsdjkfhjkshfjk;
  struct X {
    int a;
  int test() {
    X v;

Comment at: lib/Parse/Parser.cpp:519
-  PP.replayPreambleConditionalStack();
+  if (!PP.isCurrentLexer(nullptr))
+    PP.replayPreambleConditionalStack();
This certainly fixes the crash, but aren't we breaking other things if we don't run `replayConditionalStack`?
I.e. won't we get spurious errors on `#endif`?


More information about the cfe-commits mailing list