Hello,
When inline assembly has only clobber constraints it's common to write all
three colons without spaces, for example:
asm volatile("nop" ::: "memory");
Currently clang-format splits ::: into coloncolon and colon, and inserts a
space before the colon, which looks strange:
asm volatile("nop" :: : "memory");
I suggest to allow having ::: without spaces in this case. Attached is a
simple patch to that effect.
Thanks,
Eugene
diff --git a/llvm/tools/clang/lib/Format/TokenAnnotator.cpp b/llvm/tools/clang/lib/Format/TokenAnnotator.cpp
index 4f3ec0b..94cb99c 100644
--- a/llvm/tools/clang/lib/Format/TokenAnnotator.cpp
+++ b/llvm/tools/clang/lib/Format/TokenAnnotator.cpp
@@ -1653,6 +1653,8 @@ bool TokenAnnotator::spaceRequiredBefore(const AnnotatedLine &Line,
return !Line.First->isOneOf(tok::kw_case, tok::kw_default) &&
Tok.getNextNonComment() && Tok.Type != TT_ObjCMethodExpr &&
!Tok.Previous->is(tok::question) &&
+ !(Tok.Type == TT_InlineASMColon &&
+ Tok.Previous->is(tok::coloncolon)) &&
(Tok.Type != TT_DictLiteral || Style.SpacesInContainerLiterals);
if (Tok.Previous->Type == TT_UnaryOperator)
return Tok.Type == TT_BinaryOperator;
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits