This revision was not accepted when it landed; it landed in state "Needs
Review".
This revision was automatically updated to reflect the committed changes.
Closed by commit rC327284: [clang-format] Don't detect C++11 attribute
specifiers as ObjC (authored by benhamilton, committed by ).
Changed
djasper accepted this revision.
djasper added a comment.
Ok, looks good.
Repository:
rC Clang
https://reviews.llvm.org/D43902
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
benhamilton added a comment.
Great, I refactored it to avoid parsing the matching parens, so there's no more
danger of O(N^2) parsing behavior.
I had to add a new `InCpp11AttributeSpecifier` boolean to `Context` so when
parsing the inner `[]` we didn't treat it as an ObjC message send or an arr
benhamilton updated this revision to Diff 137696.
benhamilton marked 9 inline comments as done.
benhamilton added a comment.
Refactor to avoid matching open and close parens. Fix @djasper comments.
Repository:
rC Clang
https://reviews.llvm.org/D43902
Files:
lib/Format/ContinuationIndenter.
djasper added inline comments.
Comment at: lib/Format/TokenAnnotator.cpp:329
+ return nullptr;
+// C++17 '[[using namespace: foo, bar(baz, blech)]]'
+bool IsUsingNamespace =
Can you make this:
// C++17 '[[using : foo, bar(baz, blech)]]'
To make
benhamilton added a comment.
I made it longer so the two lines (__attribute__((foo)) vs. [[foo]]) had
the same length.
If I shorten it much more, everything goes on one line.
Repository:
rC Clang
https://reviews.llvm.org/D43902
___
cfe-commits m
I made it longer so the two lines (__attribute__((foo)) vs. [[foo]]) had
the same length.
If I shorten it much more, everything goes on one line.
On Wed, Mar 7, 2018, 03:42 Krasimir Georgiev via Phabricator <
revi...@reviews.llvm.org> wrote:
> krasimir added inline comments.
>
>
> ==
krasimir added inline comments.
Comment at: unittests/Format/FormatTest.cpp:6068-6069
+ verifyFormat("void f() [[deprecated(\"so sorry\")]];");
+ verifyFormat("aa\n"
+ "[[unused]] aaa(int i);");
+
benhamilton added inline comments.
Comment at: lib/Format/TokenAnnotator.cpp:323
+ const FormatToken *parseCpp11Attribute(const FormatToken &Tok,
+ bool NamespaceAllowed) {
krasimir wrote:
> Please inline this into the o
benhamilton updated this revision to Diff 137089.
benhamilton marked 5 inline comments as done.
benhamilton added a comment.
- Fix comments from @krasimir and @djasper.
Repository:
rC Clang
https://reviews.llvm.org/D43902
Files:
lib/Format/ContinuationIndenter.cpp
lib/Format/FormatToken.
krasimir added inline comments.
Comment at: lib/Format/TokenAnnotator.cpp:323
+ const FormatToken *parseCpp11Attribute(const FormatToken &Tok,
+ bool NamespaceAllowed) {
Please inline this into the other function: it's u
djasper added inline comments.
Comment at: lib/Format/TokenAnnotator.cpp:352
+ return false;
+if (!Tok.startsSequence(tok::l_square, tok::l_square))
+ return false;
Just join this if with the previous one.
Comment at: lib/Format/T
benhamilton added a comment.
Thanks very much for the code review. I fixed those issues.
Comment at: lib/Format/TokenAnnotator.cpp:323
+ const FormatToken *parseCpp11Attribute(const FormatToken *Tok,
+ bool NamespaceAllowed) {
benhamilton updated this revision to Diff 137015.
benhamilton marked 7 inline comments as done.
benhamilton added a comment.
Fixes from @jolesiak
Repository:
rC Clang
https://reviews.llvm.org/D43902
Files:
lib/Format/FormatToken.h
lib/Format/TokenAnnotator.cpp
unittests/Format/FormatTe
jolesiak requested changes to this revision.
jolesiak added inline comments.
This revision now requires changes to proceed.
Comment at: lib/Format/TokenAnnotator.cpp:323
+ const FormatToken *parseCpp11Attribute(const FormatToken *Tok,
+
benhamilton added inline comments.
Comment at: lib/Format/TokenAnnotator.cpp:346
+ bool parseCpp11AttributeSpecifier(FormatToken *Tok) {
+if (!Style.isCpp()) return false;
+if (!Tok || !Tok->startsSequence(tok::l_square, tok::l_square))
aaron.ballman wro
aaron.ballman added inline comments.
Comment at: lib/Format/TokenAnnotator.cpp:346
+ bool parseCpp11AttributeSpecifier(FormatToken *Tok) {
+if (!Style.isCpp()) return false;
+if (!Tok || !Tok->startsSequence(tok::l_square, tok::l_square))
C can use this
benhamilton created this revision.
benhamilton added reviewers: krasimir, jolesiak.
Herald added a subscriber: cfe-commits.
Previously, clang-format would detect C++11 and C++17 attribute
specifiers like the following as Objective-C method invocations:
[[noreturn]];
[[clang::fallthrough]];
18 matches
Mail list logo