[PATCH] D148702: [clang] Add Parse and Sema support for RegularKeyword attributes
Richard Sandiford via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue May 30 07:26:37 PDT 2023
rsandifo-arm marked an inline comment as done.
rsandifo-arm added inline comments.
================
Comment at: clang/lib/Sema/SemaDeclAttr.cpp:2902
S.Diag(AL.getRange().getBegin(), diag::err_attribute_wrong_decl_type)
- << AL << ExpectedTypeOrNamespace;
+ << AL << 0 << ExpectedTypeOrNamespace;
return;
----------------
erichkeane wrote:
> Every where you are doing just a '0' in a diagnostic here it makes it incredibly unreadable. I'd prefer 1 of 2 solutions:
>
> 1- Create an enum somewhere that encodes the meaning here, and use those instead.
> 2- use a `/*Whatever*/` comment every place you're passing a raw literal.
Yeah, that's fair. Sorry about that. I got some of my own medicine reading the patch back after a while away from it.
Most of those `<< 0` come from looking at individual uses to see whether a regular keyword spelling is ever possible. If it wasn't possible, `<< 0` was supposed to be a justification for not covering that line of code in the new test cases.
But I now think that was a mistake. Using `isRegularKeywordAttribute()` is useful for readability even if we “know” what its value ahead of time. And using it is more future-proof as well.
So this update converts most uses of `<< 0` to `<< Something.isRegulardKeywordAttribute` in cases where the appropriate `Something` is readily available. There are a handful of cases where an immediate is still needed, so I went for option (2) and added a comment to those.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D148702/new/
https://reviews.llvm.org/D148702
More information about the cfe-commits
mailing list