rsmith added a comment.

This isn't quite the right way to fix this issue.


================
Comment at: lib/Parse/ParseDeclCXX.cpp:3206-3209
@@ -3205,6 +3205,6 @@
     // we're just missing a comma.
     else if (Tok.isOneOf(tok::identifier, tok::coloncolon)) {
       SourceLocation Loc = PP.getLocForEndOfToken(PrevTokLocation);
       Diag(Loc, diag::err_ctor_init_missing_comma)
         << FixItHint::CreateInsertion(Loc, ", ");
     } else {
----------------
This is the right place to fix the bug. We should not enter this codepath if 
the previous initializer was not valid, and should instead fall into the `else` 
below to skip the rest of the initializers. (Delete the `else {` so that 
`MemInit` is still in scope here, and don't enter this block if 
`MemInit.isInvalid()`. Please also suppress the `err_expected_either` 
diagnostic below in that case.)


http://reviews.llvm.org/D16216



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to