[PATCH] D86713: [clang-format] Parse nullability attributes as a pointer qualifier

Alexander Richardson via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Sep 1 11:26:40 PDT 2020


arichardson added a comment.

In D86713#2242381 <https://reviews.llvm.org/D86713#2242381>, @arichardson wrote:

> In D86713#2242354 <https://reviews.llvm.org/D86713#2242354>, @JakeMerdichAMD wrote:
>
>> In D86713#2242300 <https://reviews.llvm.org/D86713#2242300>, @arichardson wrote:
>>
>>> In D86713#2242253 <https://reviews.llvm.org/D86713#2242253>, @JakeMerdichAMD wrote:
>>>
>>>> LGTM, again assuming tests pass locally (patch did not resolve).
>>>>
>>>> Out of curiosity, is _Atomic on your radar? I found some code in clang proper that handled restrict and _Atomic together. C/C++ have way too many qualifiers...
>>>
>>> I have not looked at _Atomic yet and it's probably low priority for me unless it's a trivial change.
>>> My main motivation with these changes is to format a `__capability` pointer qualifier correctly (an extension that we add for our out-of-tree CHERI C/C++ dialect).
>>
>> I don't know of anyone who uses it yet, so just adding it for posterity, definitely not a blocker. Were you planning on handling `__capability` directly or in a user-configurable option? I can imagine other ad-hoc pointer qualifiers specific to static analysis tools or as properly-ifdef'd aliases of `__attribute__(...)`, so an option might be useful.
>
> I'm not sure yet what the best solution is. I was thinking of either
>
>   a) option to treat double-underscore prefixed strings after `*/&` as qualifiers (probably on by default, but not sure about that).
>   b) adding a config option with a list of strings that should be treated as qualifiers
>   c) Adding a new __capability keyword to clang-format since it already includes things such as Qt-specific keywords.
>   d) Option b) but with __capability included in the default list of qualifiers.

Implemented option d) in D86782 <https://reviews.llvm.org/D86782> and fixed parsing of _Atomic in D86959 <https://reviews.llvm.org/D86959>


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D86713/new/

https://reviews.llvm.org/D86713



More information about the cfe-commits mailing list