r225623 - clang-format: Fix formatting of inline asm.
Daniel Jasper
djasper at google.com
Mon Jan 12 02:14:57 PST 2015
Author: djasper
Date: Mon Jan 12 04:14:56 2015
New Revision: 225623
URL: http://llvm.org/viewvc/llvm-project?rev=225623&view=rev
Log:
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.
Modified:
cfe/trunk/lib/Format/UnwrappedLineParser.cpp
cfe/trunk/unittests/Format/FormatTest.cpp
Modified: cfe/trunk/lib/Format/UnwrappedLineParser.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Format/UnwrappedLineParser.cpp?rev=225623&r1=225622&r2=225623&view=diff
==============================================================================
--- cfe/trunk/lib/Format/UnwrappedLineParser.cpp (original)
+++ cfe/trunk/lib/Format/UnwrappedLineParser.cpp Mon Jan 12 04:14:56 2015
@@ -660,15 +660,15 @@ void UnwrappedLineParser::parseStructura
}
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();
}
}
Modified: cfe/trunk/unittests/Format/FormatTest.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Format/FormatTest.cpp?rev=225623&r1=225622&r2=225623&view=diff
==============================================================================
--- cfe/trunk/unittests/Format/FormatTest.cpp (original)
+++ cfe/trunk/unittests/Format/FormatTest.cpp Mon Jan 12 04:14:56 2015
@@ -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) {
More information about the cfe-commits
mailing list