diff options
author | Jason Rice <ricejasonf@gmail.com> | 2025-01-29 12:43:52 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-01-29 21:43:52 +0100 |
commit | abc8812df02599fc413d9ed77b992f8236ed2af9 (patch) | |
tree | d5fc8a01c03d5700aed337d8b8516fa3d461a326 /clang/lib/CodeGen/CodeGenModule.cpp | |
parent | 608012ace43b42d97884204016c6a8f4883b4359 (diff) | |
download | llvm-abc8812df02599fc413d9ed77b992f8236ed2af9.zip llvm-abc8812df02599fc413d9ed77b992f8236ed2af9.tar.gz llvm-abc8812df02599fc413d9ed77b992f8236ed2af9.tar.bz2 |
[Clang][P1061] Add stuctured binding packs (#121417)
This is an implementation of P1061 Structure Bindings Introduce a Pack
without the ability to use packs outside of templates. There is a couple
of ways the AST could have been sliced so let me know what you think.
The only part of this change that I am unsure of is the
serialization/deserialization stuff. I followed the implementation of
other Exprs, but I do not really know how it is tested. Thank you for
your time considering this.
---------
Co-authored-by: Yanzuo Liu <zwuis@outlook.com>
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
-rw-r--r-- | clang/lib/CodeGen/CodeGenModule.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp index eb8d3ce..a015d64 100644 --- a/clang/lib/CodeGen/CodeGenModule.cpp +++ b/clang/lib/CodeGen/CodeGenModule.cpp @@ -7014,9 +7014,10 @@ void CodeGenModule::EmitTopLevelDecl(Decl *D) { case Decl::VarTemplateSpecialization: EmitGlobal(cast<VarDecl>(D)); if (auto *DD = dyn_cast<DecompositionDecl>(D)) - for (auto *B : DD->bindings()) + for (auto *B : DD->flat_bindings()) if (auto *HD = B->getHoldingVar()) EmitGlobal(HD); + break; // Indirect fields from global anonymous structs and unions can be |