[PATCH] D88859: APINotes: add APINotesYAMLCompiler
Saleem Abdulrasool via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Oct 28 09:48:35 PDT 2020
compnerd marked an inline comment as done.
compnerd added a comment.
> I'd like to have maximum flexibility from the submitter by willing to change the details of the implementation
I don't think that is a fair expectation - there are plenty of times where this is technical disagreement on functionality, and it doesn't get immediately resolved. A high quality implementation doesn't require that everything be changed immediately, nor does it mean that everything must be completely flexible. There are trade-offs, and the goal is to strike a balance between simplicity and the needs of the project.
================
Comment at: clang/include/clang/APINotes/Types.h:25
+/// auditing.
+enum class EnumExtensibilityKind {
+ None,
----------------
martong wrote:
> compnerd wrote:
> > martong wrote:
> > > This seems a bit redundant to `Attrs.td`. I'd prefer to have the structure of an attribute defined only in one place. Why can't we directly reuse the types in the generated `Attrs.inc`? In this case
> > > ```
> > > class EnumExtensibilityAttr : public InheritableAttr {
> > > public:
> > > enum Kind {
> > > Closed,
> > > Open
> > > };
> > > ```
> > > could perfectly fit, wouldn't it?
> > The none-case here is not the same as missing - it tracks the explicitly audited case. I suppose we can change the internal enum case from `None` to `Audited` if you like.
> I am not sure I can follow. Could you please elaborate what is an "explicit y audited" case?
> https://clang.llvm.org/docs/AttributeReference.html#enum-extensibility mentions only open/closed ...
There are three states consider:
```
enum Unaudited {
};
enum __attribute__((__enum_extensibility__(open))) Open {
};
enum __attribute__((__enum_extensibility__(closed))) Closed {
};
```
The optionality of the value indicates whether the value is present or not in the APINotes, not the tri-state nature of the attribute.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D88859/new/
https://reviews.llvm.org/D88859
More information about the cfe-commits
mailing list