<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p>Filed <a class="moz-txt-link-freetext" href="https://bugs.llvm.org/show_bug.cgi?id=41349">https://bugs.llvm.org/show_bug.cgi?id=41349</a> so that this
does not get lost in the mail traffic.<br>
</p>
<div class="moz-cite-prefix">On 2019-03-25 13:49, Oleg Smolsky
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:cb583bd7-9c54-6a0a-95c3-5248573676e3@cohesity.com">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<p>And even further reduced case:</p>
<p>void F() {<br>
Call({(Cast)[] { f(); }});<br>
}<br>
<br>
</p>
<div class="moz-cite-prefix">On 2019-03-25 13:46, Oleg Smolsky
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:684c4621-e6cb-2867-e9a5-eeaffc87fd35@cohesity.com">
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8">
<p>This looks like a bug (or bugs) in LibFormat. Here is one
reduced case:</p>
<p>Works: <br>
</p>
<p>Call({a, [=]() { something1(o); }, b});</p>
<p>Broken:</p>
<p>namespace ns{<br>
void F() {<br>
Call({a, (Cast)[=]() { something1(o); }, b});<br>
}<br>
}<br>
</p>
<p>The second case counts braces incorrectly.<br>
</p>
<div class="moz-cite-prefix">On 2019-03-21 09:55, Turing Eret
via cfe-dev wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CAAJSaQA0OENwd07RKeCeEmK=3xQG=nkwAicbxG54uHHQ00DPRw@mail.gmail.com">
<meta http-equiv="content-type" content="text/html;
charset=UTF-8">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div>I have the following bit of code (or something
very similar):</div>
<div><br>
</div>
<div>int main() {<br>
add_thingie({{Thingie1::ID(),
(ThingieHandler)[=](const Object& o) {
do_something1(o); }}, {Thingie2::ID(),
(ThingieHandler)[=](const Object& o) {
do_something2(o); }}});<br>
return 0;<br>
}</div>
<div><br>
</div>
<div>If I run it through clang-format (6.0.0), I get
the following output.</div>
<br>
C:\clang-format_example>clang-format
example_bad.cpp<br>
int main() {<br>
add_thingie({{Thingie1::ID(),
(ThingieHandler)[=](const Object& o) {
do_something1(o);<br>
}<br>
}<br>
, {<br>
Thingie2::ID(), (ThingieHandler)[=](const Object
&o) { do_something2(o); }<br>
}<br>
});<br>
return 0;<br>
}</div>
<div dir="ltr"><br>
</div>
<div>Interestingly, if I remove the C-style cast, it
produces something sensible.</div>
<div><br>
</div>
<div> C:\clang-format_example>clang-format
example_good.cpp<br>
int main() {<br>
add_thingie({{Thingie1::ID(), [=](const Object
&o) { do_something1(o); }},<br>
{Thingie2::ID(), [=](const Object
&o) { do_something2(o); }}});<br>
return 0;<br>
}</div>
<div><br>
</div>
<div>I could not find any set of options that does
something remotely sensible to the original example.
Am I missing something?</div>
<div><br>
</div>
<div>Turing<br>
</div>
</div>
</div>
</div>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<pre class="moz-quote-pre" wrap="">_______________________________________________
cfe-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:cfe-dev@lists.llvm.org" moz-do-not-send="true">cfe-dev@lists.llvm.org</a>
<a class="moz-txt-link-freetext" href="https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" moz-do-not-send="true">https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a>
</pre>
</blockquote>
</blockquote>
</blockquote>
</body>
</html>