yonghong-song added inline comments.

================
Comment at: clang/include/clang/AST/TypeLoc.h:923
+  void initializeLocal(ASTContext &Context, SourceLocation loc) {}
+
+  QualType getInnerType() const { return getTypePtr()->getWrappedType(); }
----------------
yonghong-song wrote:
> aaron.ballman wrote:
> > yonghong-song wrote:
> > > aaron.ballman wrote:
> > > > Do we also need something like this? 
> > > > https://github.com/llvm/llvm-project/blob/main/clang/include/clang/AST/TypeLoc.h#L1187
> > > I didn't see getLocalDataSize() in AttributedTypeLoc so it is not needed 
> > > for AttributedTypeLoc. BTFTagAttributedTypeLoc usage is very similar to 
> > > AttributedTypeLoc, so I think we are fine here.
> > The main difference is that `AttributedLocInfo` has a member and 
> > `BTFTagAttributedLocInfo` is empty. This is why I think it's closer to an 
> > `AdjustedLocInfo` object which also is an empty struct.
> I think adding getLocalDataSize() return 0 should be OK. But it looks like we 
> don't need to do it, at least for BTFTagAttributedTypeLoc. The following are 
> some details.
> 
> The parent class of BTFTagAttributedTypeLoc is ConcreteTypeLoc, which 
> contains:
> 
>   unsigned getLocalDataSize() const {
>     unsigned size = sizeof(LocalData);
>     unsigned extraAlign = asDerived()->getExtraLocalDataAlignment();
>     size = llvm::alignTo(size, extraAlign);
>     size += asDerived()->getExtraLocalDataSize();
>     return size;
>   }
> 
>   unsigned getExtraLocalDataSize() const {
>     return 0;
>   }
> 
>   unsigned getExtraLocalDataAlignment() const {
>     return 1;
>   } 
> 
> Manually calculating getLocalDataSize() can get the same return value 0. So I 
> think it is okay not to define  getLocalDataSize in BTFTagAttributedTypeLoc. 
> 
> The AdjustedLocInfo seems having some inconsistency, at least based on 
> comments:
> 
> struct AdjustedLocInfo {}; // Nothing.
>   unsigned getLocalDataSize() const {
>     // sizeof(AdjustedLocInfo) is 1, but we don't need its address to be 
> unique
>     // anyway.  TypeLocBuilder can't handle data sizes of 1.
>     return 0;  // No data.
>   }
> Maybe previously AdjustedLocInfo size is 1 and the implementation of 
> getLocalDataSize() to set size to 0 explicitly in which case, the function is 
> needed inside AdjustedTypeLoc. It might be needed now since AdjustedLocInfo 
> size is 0.
> 
For
> Maybe previously AdjustedLocInfo size is 1 and the implementation of 
> getLocalDataSize() to set size to 0 explicitly in which case, the function is 
> needed inside AdjustedTypeLoc. It might be needed now since AdjustedLocInfo 
> size is 0.
I mean "it might not be needed now since AdjustedLocInfo size is 0".


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

https://reviews.llvm.org/D120296

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

Reply via email to