https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71182
--- Comment #6 from Markus Trippelsdorf <trippels at gcc dot gnu.org> --- So, perhaps: diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 08f5f9e52ef2..f430af97fdf1 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -765,7 +765,7 @@ cp_lexer_previous_token (cp_lexer *lexer) /* Skip past purged tokens. */ while (tp->purged_p) { - gcc_assert (tp != lexer->buffer->address ()); + gcc_assert (!lexer->buffer || tp != lexer->buffer->address ()); tp--; }