forked from OSchip/llvm-project
[clang-format] Parse nullability attributes as a pointer qualifier
Before: void f() { MACRO(A * _Nonnull a); } void f() { MACRO(A * _Nullable a); } void f() { MACRO(A * _Null_unspecified a); } After: void f() { MACRO(A *_Nonnull a); } void f() { MACRO(A *_Nullable a); } void f() { MACRO(A *_Null_unspecified a); } Reviewed By: JakeMerdichAMD Differential Revision: https://reviews.llvm.org/D86713
This commit is contained in:
parent
37cdabdb82
commit
d304360dec
|
@ -1890,9 +1890,10 @@ private:
|
|||
|
||||
const FormatToken *NextToken = Tok.getNextNonComment();
|
||||
if (!NextToken ||
|
||||
NextToken->isOneOf(tok::arrow, tok::equal, tok::kw_const,
|
||||
tok::kw_restrict, tok::kw_volatile,
|
||||
tok::kw___attribute, tok::kw_noexcept) ||
|
||||
NextToken->isOneOf(
|
||||
tok::arrow, tok::equal, tok::kw_const, tok::kw_restrict,
|
||||
tok::kw_volatile, tok::kw___attribute, tok::kw__Nonnull,
|
||||
tok::kw__Nullable, tok::kw__Null_unspecified, tok::kw_noexcept) ||
|
||||
(NextToken->is(tok::l_brace) && !NextToken->getNextNonComment()))
|
||||
return TT_PointerOrReference;
|
||||
|
||||
|
|
|
@ -8025,6 +8025,10 @@ TEST_F(FormatTest, UnderstandsUsesOfStarAndAmp) {
|
|||
verifyFormat("vector<int *const> v;");
|
||||
verifyFormat("vector<int *const **const *> v;");
|
||||
verifyFormat("vector<int *volatile> v;");
|
||||
verifyFormat("vector<a *_Nonnull> v;");
|
||||
verifyFormat("vector<a *_Nullable> v;");
|
||||
verifyFormat("vector<a *_Null_unspecified> v;");
|
||||
verifyFormat("vector<a * _NotAQualifier> v;");
|
||||
verifyFormat("vector<a * b> v;");
|
||||
verifyFormat("foo<b && false>();");
|
||||
verifyFormat("foo<b & 1>();");
|
||||
|
@ -8059,6 +8063,9 @@ TEST_F(FormatTest, UnderstandsUsesOfStarAndAmp) {
|
|||
verifyIndependentOfContext("MACRO(A *volatile a);");
|
||||
verifyIndependentOfContext("MACRO(A *__volatile a);");
|
||||
verifyIndependentOfContext("MACRO(A *__volatile__ a);");
|
||||
verifyIndependentOfContext("MACRO(A *_Nonnull a);");
|
||||
verifyIndependentOfContext("MACRO(A *_Nullable a);");
|
||||
verifyIndependentOfContext("MACRO(A *_Null_unspecified a);");
|
||||
verifyIndependentOfContext("MACRO(A *__attribute__((foo)) a);");
|
||||
verifyIndependentOfContext("MACRO(A *__attribute((foo)) a);");
|
||||
verifyIndependentOfContext("MACRO('0' <= c && c <= '9');");
|
||||
|
|
Loading…
Reference in New Issue