<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Jun 30, 2011, at 12:46 AM, Chandler Carruth wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div class="gmail_quote">On Wed, Jun 29, 2011 at 8:19 PM, Richard Trieu <span dir="ltr"><<a href="mailto:rtrieu@google.com">rtrieu@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
The recovery consumes the right parenthesis too early leading to Clang thinking there is a parenthesis imbalance when there isn't one.  This patch should fix this issue.</blockquote></div><br><div class="vimiumHUD" style="right: 150px; zoom: 100%; opacity: 0; display: none; ">
</div><div>I'm not sure this is the correct fix.</div><div><br></div><div>Above you change, when ParseExpressionList fails, we 'SkipUntil(tok::r_paren)', and then mark LHS as an error. Then fall through, and because LHS is now invalid, we 'SkipUntil(tok::r_paren)' a second time. I think the repeated calls are the problem here.</div>
<div><br></div><div>Because we skip to the r_paren on an invalid LHS, I think we can change the code to not skip any tokens when ParseExpressionList fails, and just mark LHS as an error. Falling through, we'll skip to r_paren in the common location.</div>
</blockquote><br></div>This seems reasonable.<div><br></div><div><span class="Apple-tab-span" style="white-space:pre">      </span>- Doug</div></body></html>