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

Aaron Ballman aaron at aaronballman.com
Sat Feb 22 10:39:31 PST 2014


On Sat, Feb 22, 2014 at 1:31 PM, Alp Toker <alp at nuanti.com> wrote:
>
> 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

I'd like for there to be a newline at the end of the file, but that's
a very minor nit indeed.

~Aaron



More information about the cfe-commits mailing list