<html aria-label="message body"><head><meta http-equiv="content-type" content="text/html; charset=us-ascii"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;">Synopsis</div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;">=======</div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><br></div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;">This proposal is a follow-up to <span style="font-family: HelveticaNeue; font-size: small; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">Issue 250516.1: Support C++0x Variadic templates </span><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">[1] to support variadic lambda captures and variadic structured binding declarations [2].</span></div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><br></div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;">Motivation </div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;">========</div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal; min-height: 15px;"><br></div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;">DWARFv6 is scheduled to support two new tags to encode parameter packs (motivated by the C++ feature of the same name) [1]: DW_TAG_template_parameter_pack and DW_TAG_formal_parameter_pack. These tags allow producers to represent template parameter packs and function argument packs respectively.</div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><br></div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;">With C++20, parameter packs can be used in lambda variable capture lists:</div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;">```</div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><font face="Monaco">template<typename... Args></font></div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><font face="Monaco">auto f(Args&& args) {</font></div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><font face="Monaco">  return [...args = std::forward<Args>(args)] {</font></div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><font face="Monaco">     // Use args</font></div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><font face="Monaco">  };</font></div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><font face="Monaco">}</font></div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;">```</div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><span style="font-family: Helvetica; font-size: 12px;"><br></span></div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><span style="font-family: Helvetica; font-size: 12px;">Here, `args` is actually a collection of init-capture declarations. In DWARF one might want to represent these as </span></div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><div style="font-family: Helvetica; font-size: 12px;">`DW_TAG_member`s on the anonymous lambda structure. However, neither <span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">DW_TAG_formal_parameter_pack nor </span><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">DW_TAG_template_parameter_pack would allow such a representation.</span></div></div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><br></div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;">With C++26, parameter packs can be used in structured binding declarations:</div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;">```</div><div style="margin: 0px; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><pre class="notranslate" style="box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); tab-size: var(--tab-size-preference); overflow-wrap: normal; padding: var(--base-size-16); overflow: auto; line-height: 1.45; color: rgb(5, 12, 20); border-radius: 6px; caret-color: rgb(5, 12, 20);"><code class="notranslate" style="box-sizing: border-box; tab-size: var(--tab-size-preference); padding: 0px; margin: 0px; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-radius: 6px; word-break: normal; border: 0px; display: inline; overflow: visible; line-height: inherit; overflow-wrap: normal;"><font face="Monaco" size="2">struct C { int x = 1, y = 2, z = 3; };
</font><font face="HelveticaNeue" size="2"><br></font></code></pre><pre class="notranslate" style="box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); tab-size: var(--tab-size-preference); overflow-wrap: normal; padding: var(--base-size-16); overflow: auto; line-height: 1.45; color: rgb(5, 12, 20); border-radius: 6px; caret-color: rgb(5, 12, 20);"><font face="Monaco"><font size="2">template<int N></font><code class="notranslate" style="box-sizing: border-box; tab-size: var(--tab-size-preference); padding: 0px; margin: 0px; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-radius: 6px; word-break: normal; border: 0px; display: inline; overflow: visible; line-height: inherit; overflow-wrap: normal;"><font size="2">
</font><font face="Monaco" size="2">void foo() {
  auto [d, ...e] = C();
}</font></code></font></pre></div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;">```</div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><br></div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><div style="font-family: Helvetica; font-size: 12px;">Here, `e` is a collection of variable declarations. <span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">In DWARF one might want to represent these as `DW_TAG_variable`s local to the function `foo`. But, again, neither of the upcoming parameter pack tags would allow this.</span></div><div style="font-family: Helvetica; font-size: 12px;"><br></div><div style="font-family: Helvetica; font-size: 12px;">More discussion on this is available in LLVM issue #152282 [3]</div></div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal; min-height: 15px;"><br></div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;">We propose a new tag `DW_TAG_variable_pack`, which functions similar to `<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">DW_TAG_template_parameter_pack`</span> and `<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">DW_TAG_formal_parameter_pack`. The tag's purpose is to encode packs of variable declarations.</span></div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal; min-height: 15px;"><br></div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;">Document changes</div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;">================</div><div style="margin: 0px; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><p style="box-sizing: border-box; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><font face="HelveticaNeue" size="2">Add the following new tags to Table 2.1, "Tag names", to Table 7.3, "Tag encodings", and to Table A.1, "Attributes by tag value":</font></p><p style="box-sizing: border-box; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><span style="font-family: HelveticaNeue;"><font size="2">* DW_TAG_variable_pack</font></span></p><p style="box-sizing: border-box; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><font size="2" face="HelveticaNeue">  * Allowable attributes:</font></p><p style="box-sizing: border-box; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><span style="font-family: HelveticaNeue; font-size: small;">    * DECL</span></p><p style="box-sizing: border-box; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><font size="2" face="HelveticaNeue">    * DW_AT_name</font></p><p style="box-sizing: border-box; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><font size="2" face="HelveticaNeue">    * DW_AT_sibling</font></p><p style="box-sizing: border-box; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><font size="2" face="HelveticaNeue"><br></font></p><p style="box-sizing: border-box; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><font size="2" face="HelveticaNeue">Add a new sub-chapter in Chapter 4 Data Objet and Object List Entries:</font></p></div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;">[NEW TEXT]</div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;">==========</div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;">Chapter 4.4 Variable Packs</div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><br></div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;">A pack is a named entity that represents arbitrary many variable declarations. Indexing into the entity to retrieve individual members of the pack is language dependent. Such program entities may be represented in DWARF using `DW_TAG_variable_pack`. The `DW_AT_name` attribute can be used specify the name of the pack entity in the source.</div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><br></div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;">For each variable declaration introduced by the pack in the source, the `DW_TAG_variable_pack` has a `DW_TAG_variable` or `DW_TAG_member` child. The order of the children is the same as the order in which the variable declarations are introduced in the source.</div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><br></div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); margin: 0px; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><non-normative></div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); margin: 0px; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;">DW_TAG_template_parameter_pack and DW_TAG_function_parameter_pack describe template and function parameter packs respectively. In C++, packs can also represent collections of variable declarations. For example, a lambda capture list may capture a pack of variables or a structured binding may decompose to a pack of variables (see examples in Appendix D.17).</div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); margin: 0px; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"></non-normative></div></div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><<<<<<<<<<<<<<<</div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><br></div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;">Add a new example to Appendix D: Examples:</div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><br></div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;">[NEW TEXT]</div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;">==========</div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;">Appendix D.17 Variable Pack Examples</div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><br></div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;">Consider following C++20 lambda:</div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;">```</div><div style="margin: 0px; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><div style="font-size: 13px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); margin: 0px; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><font face="Monaco">1 template<typename... Args></font></div><div style="font-size: 13px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); margin: 0px; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><font face="Monaco">2 auto f(Args&& args) {</font></div><div style="font-size: 13px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); margin: 0px; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><font face="Monaco">3   return [...captured = std::forward<Args>(args)] {</font></div><div style="font-size: 13px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); margin: 0px; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><font face="Monaco">4     return captured...[0] + captured...[1]; // Pack indexing since C++26</font></div><div style="font-size: 13px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); margin: 0px; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><font face="Monaco">5   };</font></div><div style="font-size: 13px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); margin: 0px; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><font face="Monaco">6 }</font></div><div style="font-size: 13px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); margin: 0px; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><font face="Monaco">7</font></div><div style="font-size: 13px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); margin: 0px; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><font face="Monaco">8 int main() { auto x = f(1, 2); }</font></div><div style="font-size: 13px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); margin: 0px; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><span style="font-family: "Helvetica Neue";">```</span></div><div style="font-size: 13px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); margin: 0px; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><span style="font-family: "Helvetica Neue";"><br></span></div><div style="caret-color: rgb(0, 0, 0); margin: 0px; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><div style="font-size: 13px; caret-color: rgb(255, 255, 255); margin: 0px; font-width: normal; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><span style="font-family: Helvetica; font-size: 12px;"><font color="#000000">Here, `captured` is a collection of init-capture declarations. A DWARF producer may choose to represent the pack members as </font></span><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px;">`DW_TAG_member`s on the anonymous lambda structure:</span></div><div style="font-size: 13px; caret-color: rgb(255, 255, 255); margin: 0px; font-width: normal; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px;"><br></span></div><div style="font-size: 13px; caret-color: rgb(255, 255, 255); margin: 0px; font-width: normal; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px;">```</span></div><div style="caret-color: rgb(255, 255, 255); margin: 0px; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><font color="#000000">    DW_TAG_subprogram</font></div><div style="caret-color: rgb(255, 255, 255); margin: 0px; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><font color="#000000">        DW_AT_name("f")</font></div><div style="caret-color: rgb(255, 255, 255); margin: 0px; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><font color="#000000">        ! Anonymous lambda structure</font></div><div style="font-size: 13px; caret-color: rgb(255, 255, 255); margin: 0px; font-width: normal; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px;">        DW_TAG_class_type</span></div><div style="font-size: 13px; caret-color: rgb(255, 255, 255); margin: 0px; font-width: normal; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px;">          DW_TAG_variable_pack</span></div><div style="font-size: 13px; caret-color: rgb(255, 255, 255); margin: 0px; font-width: normal; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px;">            DW_AT_decl_line(3)</span></div><div style="font-size: 13px; caret-color: rgb(255, 255, 255); margin: 0px; font-width: normal; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px;">            DW_AT_name("captured")</span></div><div style="font-size: 13px; caret-color: rgb(255, 255, 255); margin: 0px; font-width: normal; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px;">            DW_TAG_member</span></div><div style="font-size: 13px; caret-color: rgb(255, 255, 255); margin: 0px; font-width: normal; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px;">              ! Optional name a producer may want to give the pack children</span></div><div style="font-size: 13px; caret-color: rgb(255, 255, 255); margin: 0px; font-width: normal; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px;">              DW_AT_name("captured:0")</span></div><div style="font-size: 13px; caret-color: rgb(255, 255, 255); margin: 0px; font-width: normal; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px;">              DW_AT_data_member_location(0x0)</span></div><div style="font-size: 13px; caret-color: rgb(255, 255, 255); margin: 0px; font-width: normal; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><div style="margin: 0px; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px;">            DW_TAG_member</span></div><div style="margin: 0px; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px;">              ! Optional name a producer may want to give the pack children</span></div><div style="margin: 0px; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px;">              DW_AT_name("captured:1")</span></div><div style="margin: 0px; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px;">              DW_AT_data_member_location(0x4)</span></div></div><div style="font-size: 13px; caret-color: rgb(255, 255, 255); margin: 0px; font-width: normal; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px;">```</span></div><div style="font-size: 13px; caret-color: rgb(255, 255, 255); margin: 0px; font-width: normal; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><br></span></div></div><div style="font-size: 13px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); margin: 0px; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;">Consider following C++26 structured binding pack declaration:</div><div style="font-size: 13px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); margin: 0px; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;">```</div><div style="font-size: 13px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); margin: 0px; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><pre class="notranslate" style="font-size: 12px; box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); tab-size: var(--tab-size-preference); overflow-wrap: normal; padding: var(--base-size-16); overflow: auto; line-height: 1.45; color: rgb(5, 12, 20); border-radius: 6px; caret-color: rgb(5, 12, 20);"><code class="notranslate" style="box-sizing: border-box; tab-size: var(--tab-size-preference); padding: 0px; margin: 0px; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-radius: 6px; word-break: normal; border: 0px; display: inline; overflow: visible; line-height: inherit; overflow-wrap: normal;"><font size="2" face="Monaco">1 struct C { int x = 1, y = 2, z = 3; };
</font><font size="2" face="HelveticaNeue">2</font></code></pre><pre class="notranslate" style="font-size: 12px; box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); tab-size: var(--tab-size-preference); overflow-wrap: normal; padding: var(--base-size-16); overflow: auto; line-height: 1.45; color: rgb(5, 12, 20); border-radius: 6px; caret-color: rgb(5, 12, 20);"><font face="Monaco"><font size="2">3 template<int N></font><code class="notranslate" style="box-sizing: border-box; tab-size: var(--tab-size-preference); padding: 0px; margin: 0px; background-image: none; background-position: 0% 0%; background-size: auto; background-repeat: repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; border-radius: 6px; word-break: normal; border: 0px; display: inline; overflow: visible; line-height: inherit; overflow-wrap: normal;"><font size="2">
</font><font size="2" face="Monaco">4 void foo() {
5   auto [d, ...e] = C();
6 }</font></code></font></pre></div><div style="font-size: 13px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); margin: 0px; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;">```</div><div style="font-size: 13px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); margin: 0px; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><br></div><div style="font-size: 13px; caret-color: rgb(0, 0, 0); margin: 0px; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><font color="#000000"><span style="caret-color: rgb(255, 255, 255); font-size: 12px;">Here, `e` is a collection of variable declarations. </span><span style="font-size: 12px;">A DWARF producer may represent the pack members as `DW_TAG_variable`s:</span></font></div><div style="font-size: 13px; caret-color: rgb(0, 0, 0); margin: 0px; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><font color="#000000"><span style="font-size: 12px;">```</span></font></div><div style="font-size: 13px; caret-color: rgb(0, 0, 0); margin: 0px; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><div style="font-size: 12px; caret-color: rgb(255, 255, 255); margin: 0px; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><font color="#000000">    DW_TAG_subprogram</font></div><div style="font-size: 12px; caret-color: rgb(255, 255, 255); margin: 0px; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><font color="#000000">        DW_AT_name("foo")</font></div><div style="caret-color: rgb(255, 255, 255); margin: 0px; font-width: normal; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px;">        DW_TAG_variable_pack</span></div><div style="caret-color: rgb(255, 255, 255); margin: 0px; font-width: normal; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px;">            DW_AT_decl_line(5)</span></div><div style="caret-color: rgb(255, 255, 255); margin: 0px; font-width: normal; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px;">            DW_AT_name("e")</span></div><div style="caret-color: rgb(255, 255, 255); margin: 0px; font-width: normal; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px;">            DW_TAG_variable</span></div><div style="caret-color: rgb(255, 255, 255); margin: 0px; font-width: normal; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px;">              ! Optional name a producer may want to give the pack children</span></div><div style="caret-color: rgb(255, 255, 255); margin: 0px; font-width: normal; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px;">              DW_AT_name("e:0")</span></div><div style="caret-color: rgb(255, 255, 255); margin: 0px; font-width: normal; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px;">              DW_AT_location(...)</span></div><div style="caret-color: rgb(255, 255, 255); margin: 0px; font-width: normal; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><div style="margin: 0px; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px;">            DW_TAG_member</span></div><div style="margin: 0px; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px;">              ! Optional name a producer may want to give the pack children</span></div><div style="margin: 0px; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px;">              DW_AT_name("e:1")</span></div><div style="margin: 0px; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px;">              DW_AT_location(...)</span></div></div></div><div style="font-size: 13px; caret-color: rgb(0, 0, 0); margin: 0px; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><font color="#000000"><span style="font-size: 12px;">```</span></font></div></div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><<<<<<<<<<<<<<<</span></div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><br></div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;">Links</div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;">====</div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><br></div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;">[1]: <a href="https://dwarfstd.org/issues/250516.1.html">https://dwarfstd.org/issues/250516.1.html</a></div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;">[2]: <a href="https://en.cppreference.com/w/cpp/language/parameter_pack.html">https://en.cppreference.com/w/cpp/language/parameter_pack.html</a></div><div style="margin: 0px; font-width: normal; font-size: 13px; line-height: normal; font-family: "Helvetica Neue"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;">[3]: <a href="https://github.com/llvm/llvm-project/issues/152282">https://github.com/llvm/llvm-project/issues/152282</a></div></body></html>