On Wed, Oct 5, 2011 at 4:26 PM, Richard Smith <[email protected]> wrote: > Based on a true story... > > Clang currently gives unhelpful diagnostics for cases such as this: > > static const char *const Triples[] = { > "powerpc-linux-gnu", > "powerpc-unknown-linux-gnu" > }, > CandidateLibDirs.append(LibDirs, LibDirs + > llvm::array_lengthof(LibDirs)); > > Viz: > > lib/Driver/ToolChains.cpp:1582:7: error: default initialization of an object > of const type 'const char' > CandidateLibDirs.append(LibDirs, LibDirs + llvm::array_lengthof(LibDirs)); > ^ > lib/Driver/ToolChains.cpp:1582:23: error: expected ';' at end of declaration > CandidateLibDirs.append(LibDirs, LibDirs + llvm::array_lengthof(LibDirs)); > ^ > ; > > The attached patch is a conservative fix for this issue. In cases where a > declarator group contains a comma followed by a newline followed by something > which obviously is neither a declarator nor a typo for a declarator, we give a > fixit suggesting that a ; was intended: > > lib/Driver/ToolChains.cpp:1581:8: error: expected ';' at end of declaration > }, > ^ ; > > OK to commit?
I don't really like Parser::MightBeDeclarator... I can see at least two cases where it rejects valid code. Can you use Parser::TryParseDeclarator or something? -Eli _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
