tbaeder marked 10 inline comments as done.
tbaeder added inline comments.

================
Comment at: clang/lib/AST/Interp/Descriptor.h:141-145
   unsigned getAllocSize() const { return AllocSize; }
   /// returns the size of an element when the structure is viewed as an array.
   unsigned getElemSize()  const { return ElemSize; }
+  /// Returns the size of the metadata.
+  unsigned getMetadataSize() const { return MDSize; }
----------------
aaron.ballman wrote:
> There's some interface awkwardness here where these values are of type 
> `InterpSize` but the interface returns `unsigned`
Yes. `InterpSize` is also only really used in `Descriptor.h`. No idea why.


================
Comment at: clang/lib/AST/Interp/Descriptor.h:74
+  };
+  static constexpr MetadataSize NoMetadata = MetadataSize{0};
+
----------------
aaron.ballman wrote:
> aaron.ballman wrote:
> > tbaeder wrote:
> > > tbaeder wrote:
> > > > shafik wrote:
> > > > > erichkeane wrote:
> > > > > > add a line: 
> > > > > > `static constexpr MetadataSize InlineDescriptor = 
> > > > > > MetadataSize{sizeof(InlineDescriptor)};` 
> > > > > > and you can use this instead of depending on 'sizeof' all over the 
> > > > > > place.
> > > > > It feels weird to call this `NoMetadata` but we will pass this as an 
> > > > > argument to a function with a parameter of `MetaDataSize`. So I am 
> > > > > expecting a size but I am getting no meta data instead and it looks 
> > > > > like a mistake. 
> > > > > 
> > > > > Maybe a better name would be `ZeroMetaDataSize`?
> > > > I kinda get what your point is, but I don't think this is confusing.
> > > I'm a bit concerned about the naming here; `InlineDescriptor` is already 
> > > a type name, but calling it `MetadataSizeInlineDesc` is pretty long and 
> > > callers already have to prepend a `Descriptor::` to that. :/
> > Rather than using a sentinel value, should we be using `Optional`?
> I'm still wondering if `Optional` is cleaner than `NoMetadata`...
New version uses `Optional<InterpSize>`.


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

https://reviews.llvm.org/D135750

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to