[PATCH] D99455: [AST] Store regular ValueDecl* in BindingDecl
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rGa5c2ec96e5f9: [AST] Store regular ValueDecl* in BindingDecl (NFC) (authored by aaronpuchert). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D99455/new/ https://reviews.llvm.org/D99455 Files: clang/include/clang/AST/DeclCXX.h clang/lib/AST/DeclCXX.cpp Index: clang/lib/AST/DeclCXX.cpp === --- clang/lib/AST/DeclCXX.cpp +++ clang/lib/AST/DeclCXX.cpp @@ -3179,12 +3179,6 @@ return new (C, ID) BindingDecl(nullptr, SourceLocation(), nullptr); } -ValueDecl *BindingDecl::getDecomposedDecl() const { - ExternalASTSource *Source = - Decomp.isOffset() ? getASTContext().getExternalSource() : nullptr; - return cast_or_null(Decomp.get(Source)); -} - VarDecl *BindingDecl::getHoldingVar() const { Expr *B = getBinding(); if (!B) Index: clang/include/clang/AST/DeclCXX.h === --- clang/include/clang/AST/DeclCXX.h +++ clang/include/clang/AST/DeclCXX.h @@ -3827,7 +3827,7 @@ /// DecompositionDecl of type 'int (&)[3]'. class BindingDecl : public ValueDecl { /// The declaration that this binding binds to part of. - LazyDeclPtr Decomp; + ValueDecl *Decomp; /// The binding represented by this declaration. References to this /// declaration are effectively equivalent to this expression (except /// that it is only evaluated once at the point of declaration of the @@ -3853,7 +3853,7 @@ /// Get the decomposition declaration that this binding represents a /// decomposition of. - ValueDecl *getDecomposedDecl() const; + ValueDecl *getDecomposedDecl() const { return Decomp; } /// Get the variable (if any) that holds the value of evaluating the binding. /// Only present for user-defined bindings for tuple-like types. Index: clang/lib/AST/DeclCXX.cpp === --- clang/lib/AST/DeclCXX.cpp +++ clang/lib/AST/DeclCXX.cpp @@ -3179,12 +3179,6 @@ return new (C, ID) BindingDecl(nullptr, SourceLocation(), nullptr); } -ValueDecl *BindingDecl::getDecomposedDecl() const { - ExternalASTSource *Source = - Decomp.isOffset() ? getASTContext().getExternalSource() : nullptr; - return cast_or_null(Decomp.get(Source)); -} - VarDecl *BindingDecl::getHoldingVar() const { Expr *B = getBinding(); if (!B) Index: clang/include/clang/AST/DeclCXX.h === --- clang/include/clang/AST/DeclCXX.h +++ clang/include/clang/AST/DeclCXX.h @@ -3827,7 +3827,7 @@ /// DecompositionDecl of type 'int (&)[3]'. class BindingDecl : public ValueDecl { /// The declaration that this binding binds to part of. - LazyDeclPtr Decomp; + ValueDecl *Decomp; /// The binding represented by this declaration. References to this /// declaration are effectively equivalent to this expression (except /// that it is only evaluated once at the point of declaration of the @@ -3853,7 +3853,7 @@ /// Get the decomposition declaration that this binding represents a /// decomposition of. - ValueDecl *getDecomposedDecl() const; + ValueDecl *getDecomposedDecl() const { return Decomp; } /// Get the variable (if any) that holds the value of evaluating the binding. /// Only present for user-defined bindings for tuple-like types. ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D99455: [AST] Store regular ValueDecl* in BindingDecl
aaron.ballman accepted this revision. aaron.ballman added a comment. This revision is now accepted and ready to land. LGTM, please add `NFC` to the commit message though. Thanks! Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D99455/new/ https://reviews.llvm.org/D99455 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D99455: [AST] Store regular ValueDecl* in BindingDecl
aaronpuchert added a comment. Ping @rsmith. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D99455/new/ https://reviews.llvm.org/D99455 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D99455: [AST] Store regular ValueDecl* in BindingDecl
aaronpuchert added a comment. Ping @rsmith. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D99455/new/ https://reviews.llvm.org/D99455 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D99455: [AST] Store regular ValueDecl* in BindingDecl
aaronpuchert created this revision. aaronpuchert added reviewers: riccibruno, rsmith. aaronpuchert requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. We were always storing a regular ValueDecl* as decomposition declaration and haven't been using the opportunity to initialize it lazily. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D99455 Files: clang/include/clang/AST/DeclCXX.h clang/lib/AST/DeclCXX.cpp Index: clang/lib/AST/DeclCXX.cpp === --- clang/lib/AST/DeclCXX.cpp +++ clang/lib/AST/DeclCXX.cpp @@ -3177,12 +3177,6 @@ return new (C, ID) BindingDecl(nullptr, SourceLocation(), nullptr); } -ValueDecl *BindingDecl::getDecomposedDecl() const { - ExternalASTSource *Source = - Decomp.isOffset() ? getASTContext().getExternalSource() : nullptr; - return cast_or_null(Decomp.get(Source)); -} - VarDecl *BindingDecl::getHoldingVar() const { Expr *B = getBinding(); if (!B) Index: clang/include/clang/AST/DeclCXX.h === --- clang/include/clang/AST/DeclCXX.h +++ clang/include/clang/AST/DeclCXX.h @@ -3817,7 +3817,7 @@ /// DecompositionDecl of type 'int (&)[3]'. class BindingDecl : public ValueDecl { /// The declaration that this binding binds to part of. - LazyDeclPtr Decomp; + ValueDecl *Decomp; /// The binding represented by this declaration. References to this /// declaration are effectively equivalent to this expression (except /// that it is only evaluated once at the point of declaration of the @@ -3843,7 +3843,7 @@ /// Get the decomposition declaration that this binding represents a /// decomposition of. - ValueDecl *getDecomposedDecl() const; + ValueDecl *getDecomposedDecl() const { return Decomp; } /// Get the variable (if any) that holds the value of evaluating the binding. /// Only present for user-defined bindings for tuple-like types. Index: clang/lib/AST/DeclCXX.cpp === --- clang/lib/AST/DeclCXX.cpp +++ clang/lib/AST/DeclCXX.cpp @@ -3177,12 +3177,6 @@ return new (C, ID) BindingDecl(nullptr, SourceLocation(), nullptr); } -ValueDecl *BindingDecl::getDecomposedDecl() const { - ExternalASTSource *Source = - Decomp.isOffset() ? getASTContext().getExternalSource() : nullptr; - return cast_or_null(Decomp.get(Source)); -} - VarDecl *BindingDecl::getHoldingVar() const { Expr *B = getBinding(); if (!B) Index: clang/include/clang/AST/DeclCXX.h === --- clang/include/clang/AST/DeclCXX.h +++ clang/include/clang/AST/DeclCXX.h @@ -3817,7 +3817,7 @@ /// DecompositionDecl of type 'int (&)[3]'. class BindingDecl : public ValueDecl { /// The declaration that this binding binds to part of. - LazyDeclPtr Decomp; + ValueDecl *Decomp; /// The binding represented by this declaration. References to this /// declaration are effectively equivalent to this expression (except /// that it is only evaluated once at the point of declaration of the @@ -3843,7 +3843,7 @@ /// Get the decomposition declaration that this binding represents a /// decomposition of. - ValueDecl *getDecomposedDecl() const; + ValueDecl *getDecomposedDecl() const { return Decomp; } /// Get the variable (if any) that holds the value of evaluating the binding. /// Only present for user-defined bindings for tuple-like types. ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits