From 90d2aa233533c7db5da04552a6ba157c29a6fcb9 Mon Sep 17 00:00:00 2001 From: Jonas Toth Date: Fri, 24 Aug 2018 17:25:06 +0000 Subject: [clang-format] fix PR38557 - comments between "default" and ':' causes the case label to be treated as an identifier Summary: The Bug was reported and fixed by Owen Pan. See the original bug report here: https://bugs.llvm.org/show_bug.cgi?id=38557 Patch by Owen Pan! Reviewers: krasimir, djasper, klimek Reviewed By: klimek Subscribers: JonasToth, cfe-commits Differential Revision: https://reviews.llvm.org/D50697 llvm-svn: 340624 --- clang/lib/Format/UnwrappedLineParser.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'clang/lib/Format/UnwrappedLineParser.cpp') diff --git a/clang/lib/Format/UnwrappedLineParser.cpp b/clang/lib/Format/UnwrappedLineParser.cpp index e5afa1264ab..07109daf6f9 100644 --- a/clang/lib/Format/UnwrappedLineParser.cpp +++ b/clang/lib/Format/UnwrappedLineParser.cpp @@ -350,7 +350,10 @@ void UnwrappedLineParser::parseLevel(bool HasOpeningBrace) { break; case tok::kw_default: { unsigned StoredPosition = Tokens->getPosition(); - FormatToken *Next = Tokens->getNextToken(); + FormatToken *Next; + do { + Next = Tokens->getNextToken(); + } while (Next && Next->is(tok::comment)); FormatTok = Tokens->setPosition(StoredPosition); if (Next && Next->isNot(tok::colon)) { // default not followed by ':' is not a case label; treat it like -- cgit v1.2.3