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