Aristotle Pagaltzis wrote:
> Hi Larry (mostly) et al,
> 
> this sounds like something STD could try to steal:
> 
> * <http://blog.llvm.org/2010/04/amazing-feats-of-clang-error-recovery.html>
>> Okay, this may be going a bit far, but how else are you going
>> to fall completely in love with a compiler?
>>
>>   $ cat t.c
>>   void f0() {
>>   <<<<<<< HEAD
>>       int x;
>>   =======
>>       int y;
>>   >>>>>>> whatever
>>   }
>>   $ clang t.c
>>   t.c:2:1: error: version control conflict marker in file
>>   <<<<<<< HEAD
>>   ^
>>   $ gcc t.c
>>   t.c: In function ‘f0’:
>>   t.c:2: error: expected expression before ‘<<’ token
>>   t.c:4: error: expected expression before ‘==’ token
>>   t.c:6: error: expected expression before ‘>>’ token
>>
>> Yep, clang actually detects the merge conflict and parses one
>> side of the conflict. You don't want to get tons of nonsense
>> from your compiler on such a simple error, do you?
> 
> As I understood it from a YAPC keynote a year or two ago, STD
> already has the speculative parse machinery in place. It seems
> like this should be implementable with reasonable effort?

Implented in r30334 after feedback from Larry. Feel free to test it, and
report your findings.

Cheers,
Moritz

Reply via email to