[PATCH] Fix crash when both Parser::ExpectAndConsume and ConsumeAnyToken throw a diagnostic

Alp Toker alp at nuanti.com
Sat Feb 22 10:31:34 PST 2014


On 22/02/2014 14:08, Olivier Goffart wrote:
> Hi,
>
> I believe this is a regression from r198270
>

Indeed the lifetime of the DiagnosticBuilder shouldn't have overlapped 
the call to ConsumeAnyToken().

> --- /dev/null
> +++ b/test/Parser/diag-crash.c
> @@ -0,0 +1,5 @@
> +// RUN: %clang_cc1 -fsyntax-only -verify %s
> +
> +// Don't crash if the preprocessor is throwing a diagnostic from Parser::ExceptAndConsume

Typo in the comment.

> +int foo: // expected-error {{expected ';' after top level declarator}}
> +#endif   // expected-error {{#endif without #if}}
> \ No newline at end of file

Looks good otherwise, do you have commit access?

Alp.


-- 
http://www.nuanti.com
the browser experts




More information about the cfe-commits mailing list