rjmccall added a comment.

In D72841#1917459 <https://reviews.llvm.org/D72841#1917459>, @rjmccall wrote:

> In D72841#1917340 <https://reviews.llvm.org/D72841#1917340>, @mibintc wrote:
>
> > @rjmccall Since CompoundAssignmentOperator derives from BinaryOperator, 
> > it's not simple to add Trailing storage here.  I think I will have to fold 
> > CompoundAssignmentOperator into BinaryOperator and then add the 2 extra 
> > fields needed by CompoundAssignmentOperator into Trailing storage.  Can you 
> > think of a better way?  I worked on Trailing storage for UnaryOperator 
> > first and that wasn't too bad, but Binary is a different story.
>
>
> It's something we deal with occasionally, but it's definitely annoying.  You 
> basically have to test for which concrete class you have and then ask that 
> class for its trailing storage.
>
> Collapsing the types might be okay but could get involved.


To be clear, we do this in the Clang AST by doing a lot of hand-rolled trailing 
storage rather than by using llvm::TrailingStorage.  If you're willing to do 
the refactors necessary to use the latter, though, that's great; but as 
mentioned, you'll need to either collapse CompoundAssignmentOperator into 
BinaryOperator or introduce a concrete subclass for the non-compound operators 
and make BinaryOperator an abstract node.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D72841



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

Reply via email to