From: Daniel Jasper Date: Mon, 12 Jan 2015 10:14:56 +0000 (+0000) Subject: clang-format: Fix formatting of inline asm. X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2337f28063b0adf2309ebc07d3f72c5d459cf9bf;p=platform%2Fupstream%2Fllvm.git clang-format: Fix formatting of inline asm. Specifically, adjust the leading "__asm {" and trailing "}" while still leaving the assembly inside it alone. This fixes llvm.org/PR22190. llvm-svn: 225623 --- diff --git a/clang/lib/Format/UnwrappedLineParser.cpp b/clang/lib/Format/UnwrappedLineParser.cpp index 02d49a0..01c8acf 100644 --- a/clang/lib/Format/UnwrappedLineParser.cpp +++ b/clang/lib/Format/UnwrappedLineParser.cpp @@ -660,15 +660,15 @@ void UnwrappedLineParser::parseStructuralElement() { } break; case tok::kw_asm: - FormatTok->Finalized = true; nextToken(); if (FormatTok->is(tok::l_brace)) { + nextToken(); while (FormatTok && FormatTok->isNot(tok::eof)) { - FormatTok->Finalized = true; if (FormatTok->is(tok::r_brace)) { nextToken(); break; } + FormatTok->Finalized = true; nextToken(); } } diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp index 3b3f5fb..a49a35c1 100644 --- a/clang/unittests/Format/FormatTest.cpp +++ b/clang/unittests/Format/FormatTest.cpp @@ -2191,11 +2191,11 @@ TEST_F(FormatTest, FormatsInlineASM) { " : \"a\"(value));"); EXPECT_EQ( "void NS_InvokeByIndex(void *that, unsigned int methodIndex) {\n" - " __asm {\n" + " __asm {\n" " mov edx,[that] // vtable in edx\n" " mov eax,methodIndex\n" " call [edx][eax*4] // stdcall\n" - " }\n" + " }\n" "}", format("void NS_InvokeByIndex(void *that, unsigned int methodIndex) {\n" " __asm {\n" @@ -2204,6 +2204,10 @@ TEST_F(FormatTest, FormatsInlineASM) { " call [edx][eax*4] // stdcall\n" " }\n" "}")); + verifyFormat("void function() {\n" + " // comment\n" + " asm(\"\");\n" + "}"); } TEST_F(FormatTest, FormatTryCatch) {