CVS difference for ai22s/ai22-0040-1.html

Differences between 1.4 and version 1.5
Log of other versions for file ai22s/ai22-0040-1.html

--- ai22s/ai22-0040-1.html	2022/09/10 09:05:14	1.4
+++ ai22s/ai22-0040-1.html	2022/10/22 07:29:03	1.5
@@ -1,13 +1,14 @@
-<html><head><meta content="text/html; charset=UTF-8" http-equiv="content-type"><title>AI22-0040-1/03</title>
+<html><head><meta content="text/html; charset=UTF-8" http-equiv="content-type"><title>AI22-0040-1/04</title>
 <style type="text/css">
 table td,table th{padding:0}
-.c40{border-right-style:solid;padding:5pt 5pt 5pt 5pt;border-bottom-color:#000000;border-top-width:0pt;border-right-width:0pt;border-left-color:#000000;vertical-align:top;border-right-color:#000000;border-left-width:0pt;border-top-style:solid;background-c
olor:#f0f0f0;border-left-style:solid;border-bottom-width:0pt;width:468pt;border-top-color:#000000;border-bottom-style:solid}
-.c24{text-decoration-skip-ink:none;-webkit-text-decoration-skip:none;color:#1155cc;text-decoration:underline}
-.c44{border-spacing:0;border-collapse:collapse;margin-right:auto}
-.c28{background-color:#ffffff;max-width:468pt;padding:72pt 72pt 72pt 72pt}
-.c17{color:inherit;text-decoration:inherit}
-.c21{border:1px solid black;margin:5px}
-.c36{height:0pt}
+.c10{border-right-style:solid;padding:5pt 5pt 5pt 5pt;border-bottom-color:#000000;border-top-width:0pt;border-right-width:0pt;border-left-color:#000000;vertical-align:top;border-right-color:#000000;border-left-width:0pt;border-top-style:solid;background-c
olor:#f0f0f0;border-left-style:solid;border-bottom-width:0pt;width:468pt;border-top-color:#000000;border-bottom-style:solid}
+.c16{border-spacing:0;border-collapse:collapse;margin-right:auto}
+.c41{text-decoration-skip-ink:none;-webkit-text-decoration-skip:none;color:#1155cc;text-decoration:underline}
+.c48{max-width:468pt;padding:72pt 72pt 72pt 72pt}
+.c19{border:1px solid black;margin:5px}
+.c22{color:inherit;text-decoration:inherit}
+.c39{height:0pt}
+.c37{background-color:#ffffff}
 P.head{margin-bottom:0; margin-top:0; margin-left:0; margin-right:0; padding-top:0pt; color:#000000; font-size:14pt; padding-bottom:0pt; font-family:"Arial","Liberation Sans",sans-serif; line-height:1.15; orphans:2; widows:2; text-align:left; font-weight:
400; text-decoration:none; vertical-align:baseline; font-style:normal}
 H2.head{margin-bottom:0; margin-top:0; margin-left:0; margin-right:0; padding-top:12pt; color:#000000; font-size:14pt; padding-bottom:6pt; font-family:"Arial","Liberation Sans",sans-serif; line-height:1.15; page-break-after:avoid; orphans:2; widows:2; tex
t-align:left; font-weight:400; text-decoration:none; vertical-align:baseline; font-style:normal}
 P.inst{margin-bottom:0; margin-top:0; margin-left:18pt; margin-right:0; padding-top:9pt; color:#000000; font-size:12pt; padding-bottom:6pt; font-family:"Arial","Liberation Sans",sans-serif;line-height:1.15; orphans:2; widows:2; text-align:left; font-weigh
t:400; text-decoration:none; vertical-align:baseline; font-style:normal}
@@ -30,42 +31,42 @@
 SPAN.ins{color:#005500}
 SPAN.del{color:#880000}
 SPAN.ntrm{font-family:"Arial","Liberation Sans",sans-serif}
-P.a5{margin-bottom:0; margin-top:0; margin-left:0; margin-right:0;color:#000000;font-size:26pt;font-family:"Arial","Liberation Sans",sans-serif; padding-top:0pt; padding-bottom:3pt; line-height:1.15; page-break-after:avoid; orphans:2; widows:2; text-align
:left}
+P.a6{margin-bottom:0; margin-top:0; margin-left:0; margin-right:0;color:#000000;font-size:26pt;font-family:"Arial","Liberation Sans",sans-serif; page-break-after:avoid; padding-top:0pt; padding-bottom:3pt; line-height:1.15; orphans:2; widows:2; text-align
:left}
 P.a33{margin-bottom:0; margin-top:0; margin-left:0; margin-right:0;color:#500050;font-size:11pt;font-family:"Arial","Liberation Sans",sans-serif; padding-top:0pt; padding-bottom:0pt; line-height:1.15; orphans:2; widows:2; text-align:left; height:11pt; tex
t-decoration:none; vertical-align:baseline; font-style:normal; font-weight:400}
-P.a35{margin-bottom:0; margin-top:0; margin-left:0; margin-right:0;color:#000000;font-size:7.5pt;font-family:"Arial","Liberation Sans",sans-serif; padding-top:2pt; padding-bottom:0pt; line-height:1.15; orphans:2; widows:2; text-align:left; font-weight:400
; text-decoration:none; vertical-align:baseline; font-style:normal}
-P.a43{margin-bottom:0; margin-top:0; margin-left:36pt; margin-right:0;color:#000000;font-size:11pt;font-family:"Times New Roman","Times",serif; padding-top:0pt; padding-bottom:0pt; line-height:1.15; orphans:2; widows:2; text-align:left; font-weight:400; t
ext-decoration:none; vertical-align:baseline; font-style:normal}
-P.a45{margin-bottom:0; margin-top:0; margin-left:0; margin-right:0;color:#1155cc;font-size:10pt;font-family:"Arial","Liberation Sans",sans-serif; padding-top:0pt; padding-bottom:0pt; line-height:1.15; orphans:2; widows:2; text-align:left; font-weight:400;
 vertical-align:baseline; font-style:normal; text-decoration:none}
-P.a47{margin-bottom:0; margin-top:0; margin-left:0; margin-right:0;color:#1155cc;font-size:11pt;font-family:"Arial","Liberation Sans",sans-serif; padding-top:0pt; padding-bottom:0pt; line-height:1.15; orphans:2; widows:2; text-align:left; text-decoration:
none; vertical-align:baseline; font-style:normal; font-weight:400}
+P.a35{margin-bottom:0; margin-top:0; margin-left:0; margin-right:0;color:#000000;font-size:7.5pt;font-family:"Arial","Liberation Sans",sans-serif; padding-top:2pt; padding-bottom:0pt; line-height:1.15; orphans:2; widows:2; text-align:left; text-decoration
:none; vertical-align:baseline; font-style:normal; font-weight:400}
+P.a43{margin-bottom:0; margin-top:0; margin-left:36pt; margin-right:0;color:#000000;font-size:11pt;font-family:"Times New Roman","Times",serif; padding-top:0pt; padding-bottom:0pt; line-height:1.15; orphans:2; widows:2; text-align:left; text-decoration:no
ne; vertical-align:baseline; font-style:normal; font-weight:400}
+P.a45{margin-bottom:0; margin-top:0; margin-left:0; margin-right:0;color:#1155cc;font-size:10pt;font-family:"Arial","Liberation Sans",sans-serif; padding-top:0pt; padding-bottom:0pt; line-height:1.15; orphans:2; widows:2; text-align:left; vertical-align:b
aseline; font-style:normal; font-weight:400; text-decoration:none}
+P.a47{margin-bottom:0; margin-top:0; margin-left:0; margin-right:0;color:#1155cc;font-size:11pt;font-family:"Arial","Liberation Sans",sans-serif; padding-top:0pt; padding-bottom:0pt; line-height:1.15; orphans:2; widows:2; text-align:left; vertical-align:b
aseline; font-style:normal; font-weight:400; text-decoration:none}
 SPAN.a52{background-color:#ffffff}
-P.a63{margin-bottom:0; margin-top:0; margin-left:20pt; margin-right:0;color:#006600;font-size:12pt;font-family:"Times New Roman","Times",serif; padding-top:0pt; padding-bottom:4pt; line-height:1.2954545454545454; orphans:2; widows:2; text-align:left; font
-weight:400}
-SPAN.a64{color:#000000}
-SPAN.a65{text-decoration-skip-ink:none; -webkit-text-decoration-skip:none; color:#1155cc; text-decoration:underline;font-style:italic}
-SPAN.a66{-webkit-text-decoration-skip:none;text-decoration:underline; text-decoration-skip-ink:none;vertical-align:baseline; font-style:normal}
-P.a69{margin-bottom:0; margin-top:0; margin-left:42pt; margin-right:22pt;color:#006600;font-size:12pt;font-family:"Times New Roman","Times",serif; padding-top:0pt; padding-bottom:6pt; line-height:1.2954545454545454; orphans:2; widows:2; text-align:left}
-SPAN.a70{font-weight:400; color:#000000}
-SPAN.a71{text-decoration-skip-ink:none; -webkit-text-decoration-skip:none; color:#1155cc; text-decoration:underline;font-weight:400; font-style:italic}
-SPAN.a72{-webkit-text-decoration-skip:none;text-decoration:underline; text-decoration-skip-ink:none;font-weight:400}
-SPAN.a73{text-decoration-skip-ink:none; -webkit-text-decoration-skip:none; color:#1155cc; text-decoration:underline; font-size:10.5pt; font-family:"Arial","Liberation Sans",sans-serif}
-SPAN.a74{-webkit-text-decoration-skip:none;text-decoration:underline; text-decoration-skip-ink:none;font-weight:400; vertical-align:baseline; font-style:normal}
-P.a77{margin-bottom:0; margin-top:0; margin-left:42pt; margin-right:22pt;color:#000000;font-size:12pt;font-family:"Times New Roman","Times",serif; padding-top:0pt; padding-bottom:3pt; line-height:1.2954545454545454; orphans:2; widows:2; text-align:left; f
ont-weight:400}
-SPAN.a78{text-decoration:none; vertical-align:baseline; font-style:normal}
-P.a79{margin-bottom:0; margin-top:0; margin-left:64pt; margin-right:22pt;color:#000000;font-size:12pt;font-family:"Times New Roman","Times",serif; padding-top:0pt; padding-bottom:6pt; line-height:1.2954545454545454; orphans:2; widows:2; text-align:left; f
ont-weight:400}
-SPAN.a80{-webkit-text-decoration-skip:none; color:#006600; text-decoration:underline; text-decoration-skip-ink:none}
-SPAN.a82{text-decoration:none; vertical-align:baseline;font-family:"Arial","Liberation Sans",sans-serif; font-style:normal}
-SPAN.a84{color:#0000ff;font-size:10pt}
-SPAN.a85{background-color:#f0f0f0; font-family:"Courier New",monospace}
-SPAN.a86{background-color:#f0f0f0; font-family:"Courier New",monospace; color:#880000}
-SPAN.a87{font-family:"Courier New",monospace}
-P.a88{margin-bottom:0; margin-top:0; margin-left:42pt; margin-right:22pt; color:#006600; font-size:12pt; font-family:"Times New Roman","Times",serif; padding-top:0pt; padding-bottom:19pt; line-height:1.2954545454545454; orphans:2; widows:2; text-align:lef
t}
-P.a89{margin-bottom:0; margin-top:0; margin-left:0; margin-right:0; color:#500050; font-size:11pt; font-family:"Arial","Liberation Sans",sans-serif; padding-top:0pt; padding-bottom:13pt; line-height:1.15; orphans:2; widows:2; text-align:left; font-weight:
400; text-decoration:none; vertical-align:baseline; font-style:normal}
-P.a90{margin-bottom:0; margin-top:0; margin-left:120pt; margin-right:0; color:#500050; font-size:11pt; font-family:"Arial","Liberation Sans",sans-serif; padding-top:0pt; padding-bottom:13pt; line-height:1.15; orphans:2; widows:2; text-align:left; text-dec
oration:none; vertical-align:baseline; font-style:normal; font-weight:400}
-P.a91{margin-bottom:0; margin-top:0; margin-left:36pt; margin-right:0; color:#000000; font-size:11pt; font-family:"Times New Roman","Times",serif; padding-top:0pt; padding-bottom:13pt; line-height:1.15; orphans:2; widows:2; text-align:left; font-weight:40
0}
-P.a92{margin-bottom:0; margin-top:0; margin-left:0; margin-right:0; color:#1155cc; font-size:10pt; font-family:"Arial","Liberation Sans",sans-serif; padding-top:0pt; padding-bottom:13pt; line-height:1.15; orphans:2; widows:2; text-align:left}
+P.a62{margin-bottom:0; margin-top:0; margin-left:20pt; margin-right:0;color:#006600;font-size:12pt;font-family:"Times New Roman","Times",serif; padding-top:0pt; padding-bottom:4pt; line-height:1.2954545454545454; orphans:2; widows:2; text-align:left; font
-weight:400}
+SPAN.a63{color:#000000}
+SPAN.a64{-webkit-text-decoration-skip:none; color:#1155cc;text-decoration:underline; text-decoration-skip-ink:none;font-style:italic}
+SPAN.a65{-webkit-text-decoration-skip:none;text-decoration:underline; text-decoration-skip-ink:none;vertical-align:baseline; font-style:normal}
+P.a67{margin-bottom:0; margin-top:0; margin-left:42pt; margin-right:22pt;color:#006600;font-size:12pt;font-family:"Times New Roman","Times",serif; padding-top:0pt; padding-bottom:6pt; line-height:1.2954545454545454; orphans:2; widows:2; text-align:left}
+SPAN.a68{font-weight:400; color:#000000}
+SPAN.a69{-webkit-text-decoration-skip:none; color:#1155cc; font-weight:400; text-decoration:underline; text-decoration-skip-ink:none;font-style:italic}
+SPAN.a70{-webkit-text-decoration-skip:none;text-decoration:underline; text-decoration-skip-ink:none;font-weight:400}
+SPAN.a71{text-decoration-skip-ink:none; font-size:10.5pt; -webkit-text-decoration-skip:none; color:#1155cc; text-decoration:underline; font-family:"Arial","Liberation Sans",sans-serif}
+SPAN.a72{-webkit-text-decoration-skip:none;text-decoration:underline; text-decoration-skip-ink:none;font-weight:400; vertical-align:baseline; font-style:normal}
+P.a75{margin-bottom:0; margin-top:0; margin-left:42pt; margin-right:22pt;color:#000000;font-size:12pt;font-family:"Times New Roman","Times",serif; padding-top:0pt; padding-bottom:3pt; line-height:1.2954545454545454; orphans:2; widows:2; text-align:left; f
ont-weight:400}
+SPAN.a76{vertical-align:baseline; font-style:normal;text-decoration:none}
+P.a77{margin-bottom:0; margin-top:0; margin-left:64pt; margin-right:22pt;color:#000000;font-size:12pt;font-family:"Times New Roman","Times",serif; padding-top:0pt; padding-bottom:6pt; line-height:1.2954545454545454; orphans:2; widows:2; text-align:left; f
ont-weight:400}
+SPAN.a78{-webkit-text-decoration-skip:none; color:#006600; text-decoration:underline; text-decoration-skip-ink:none}
+SPAN.a80{text-decoration:none; vertical-align:baseline;font-family:"Arial","Liberation Sans",sans-serif; font-style:normal}
+SPAN.a82{color:#0000ff;font-size:10pt}
+SPAN.a83{background-color:#f0f0f0; font-family:"Courier New",monospace}
+SPAN.a84{background-color:#f0f0f0; font-family:"Courier New",monospace; color:#880000}
+SPAN.a85{font-family:"Courier New",monospace}
+P.a86{margin-bottom:0; margin-top:0; margin-left:42pt; margin-right:22pt; color:#006600; font-size:12pt; font-family:"Times New Roman","Times",serif; padding-top:0pt; padding-bottom:19pt; line-height:1.2954545454545454; orphans:2; widows:2; text-align:lef
t}
+P.a87{margin-bottom:0; margin-top:0; margin-left:0; margin-right:0; color:#500050; font-size:11pt; font-family:"Arial","Liberation Sans",sans-serif; padding-top:0pt; padding-bottom:13pt; line-height:1.15; orphans:2; widows:2; text-align:left; text-decorat
ion:none; vertical-align:baseline; font-style:normal; font-weight:400}
+P.a88{margin-bottom:0; margin-top:0; margin-left:120pt; margin-right:0; color:#500050; font-size:11pt; font-family:"Arial","Liberation Sans",sans-serif; padding-top:0pt; padding-bottom:13pt; line-height:1.15; orphans:2; widows:2; text-align:left; text-dec
oration:none; vertical-align:baseline; font-style:normal; font-weight:400}
+P.a89{margin-bottom:0; margin-top:0; margin-left:36pt; margin-right:0; color:#000000; font-size:11pt; font-family:"Times New Roman","Times",serif; padding-top:0pt; padding-bottom:13pt; line-height:1.15; orphans:2; widows:2; text-align:left; font-weight:40
0}
+P.a90{margin-bottom:0; margin-top:0; margin-left:0; margin-right:0; color:#1155cc; font-size:10pt; font-family:"Arial","Liberation Sans",sans-serif; padding-top:0pt; padding-bottom:13pt; line-height:1.15; orphans:2; widows:2; text-align:left}
 </style>
-</head><body class="c28 doc-content"><p class="a5">AI22-0040-1</p>
+</head><body class="c37 c48 doc-content"><p class="a6">AI22-0040-1</p>
 <sup><a href="#cmnt1" id="cmnt_ref1">[a]</a></sup><sup><a href="#cmnt2" id="cmnt_ref2">[b]</a></sup><p class="text">&nbsp;</p>
 <p class="head">!standard 7.6.1(3) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
-&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;22-09-09 &nbsp;AI22-0040-1/03</p>
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;22-10-18 &nbsp;AI22-0040-1/04</p>
 <p class="head">!standard 4.4(9.7)</p>
 <p class="head">!standard 6.6.1(22.12)</p>
 <p class="head">!standard 7.6(18)</p>
@@ -92,7 +93,7 @@
 classic case -- a quantified expression where the expression creates one or more controlled
 temporaries upon each iteration:</p>
 
-<a id="t.d3821403bc86108120370f1e0af3bfa0b700c2f5"></a><a id="t.0"></a><table class="c44"><tr class="c36"><td class="c40">
+<a id="t.d3821403bc86108120370f1e0af3bfa0b700c2f5"></a><a id="t.0"></a><table class="c16"><tr class="c39"><td class="c10">
 <p class="codt">&nbsp;All_Positive : <b>constant</b> Boolean := (<b>for</b> <b>all</b> E <b>of</b>
 C =&gt; F (E).B &gt; 0);</p>
 </td></tr></table><p class="text">&nbsp;</p>
@@ -116,11 +117,11 @@
 
 <p class="word">The following subexpressions are repeatedly evaluated:</p>
 <ul class="wbls"><li>A subexpression of a predicate of a
-<span class="ntrm"><a class="c17" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-5-8.html#S0153">quantified_expression</a></span>;</li>
+<span class="ntrm"><a class="c22" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-5-8.html#S0153">quantified_expression</a></span>;</li>
 <li>A subexpression of the expression of an
-<span class="ntrm"><a class="c17" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-3-3.html#S0118">array_component_association</a></span>;</li>
+<span class="ntrm"><a class="c22" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-3-3.html#S0118">array_component_association</a></span>;</li>
 <li>A subexpression of the expression of a
-<span class="ntrm"><a class="c17" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-3-5.html#S0128">container_element_association</a></span>.</li>
+<span class="ntrm"><a class="c22" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-3-5.html#S0128">container_element_association</a></span>.</li>
 </ul>
 
 <p class="txts">This seems to be missing the case of the key_expression and the expression of an
@@ -193,10 +194,10 @@
 
 
 <p class="inst">Add the following permission before 7.6(18/3): </p>
-<p class="word">If the result of a function call is used to initialize an object, but the result is
-not built in place, the anonymous object representing the result of the function call may be
-finalized and become nonexistent immediately after the initialization of the newly-created object
-is complete.</p>
+<p class="word">If the result of a function call is used (in its entirety) to directly initialize
+an object, but the result is not built in place, the anonymous object representing the result of
+the function call may be finalized and become nonexistent immediately after the initialization of
+the newly-created object is complete.</p>
 <p class="inst">Modify 7.6.1(3/5) (which defines the constructs that are master constructs):</p>
 <p class="word">...; <span class="del">[or ]</span>an expression,
 <span class="ntrm">function_call</span>, or <span class="ntrm">range</span> that is not part of an
@@ -223,7 +224,7 @@
 <p class="txts">It should be noted that this issue occurs even in Ada 95 constructs, such as array
 aggregates:</p>
 
-<a id="t.ce0b75da1a336240417d5578e4ebd2b9e594b9c0"></a><a id="t.1"></a><table class="c44"><tr class="c36"><td class="c40">
+<a id="t.ce0b75da1a336240417d5578e4ebd2b9e594b9c0"></a><a id="t.1"></a><table class="c16"><tr class="c39"><td class="c10">
 <p class="codt">&nbsp; &nbsp; <b>return</b> (1 .. Computed_Length =&gt; Func.C);</p>
 </td></tr></table><p class="text">&nbsp;</p>
 <p class="txts">where Func returns a controlled object.</p>
@@ -231,7 +232,7 @@
 <p class="txts">It also should be noted that the proposed solution is (slightly) incompatible, as a
 construct like:</p>
 
-<a id="t.d6b03f567caee4099daa0b9f34192c93428c2377"></a><a id="t.2"></a><table class="c44"><tr class="c36"><td class="c40">
+<a id="t.d6b03f567caee4099daa0b9f34192c93428c2377"></a><a id="t.2"></a><table class="c16"><tr class="c39"><td class="c10">
 <p class="codt">&nbsp; &nbsp;<b>return</b> Some_Array&#39;(<b>others</b> =&gt; Cont_Func(2));</p>
 </td></tr></table><p class="text">&nbsp;</p>
 <p class="txts">where Cont_Func is a function returning a container, would become illegal as the
@@ -251,22 +252,22 @@
 
 <p class="txts">Here is the example given in the !issue section:</p>
 
-<a id="t.d3821403bc86108120370f1e0af3bfa0b700c2f5"></a><a id="t.3"></a><table class="c44"><tr class="c36"><td class="c40">
+<a id="t.d3821403bc86108120370f1e0af3bfa0b700c2f5"></a><a id="t.3"></a><table class="c16"><tr class="c39"><td class="c10">
 <p class="codt">&nbsp;All_Positive : <b>constant</b> Boolean := (<b>for</b> <b>all</b> E <b>of</b>
 C =&gt; F (E).B &gt; 0);</p>
 </td></tr></table><p class="text">&nbsp;</p>
-<p class="txts">With this change, the expression <span class="a85">F(E).B &gt;
-</span><span class="a86">0</span> appears in an iterative context, and as such can act as a master
+<p class="txts">With this change, the expression <span class="a83">F(E).B &gt;
+</span><span class="a84">0</span> appears in an iterative context, and as such can act as a master
 for any temporaries not needed by subsequent iterations.</p>
 
 <p class="txts">In addition, in a case where such an expression is being used to initialize a newly
 created object, such as in:</p>
 
-<a id="t.2007e6bb869143d669a272531a7f87d542e60f2d"></a><a id="t.4"></a><table class="c44"><tr class="c36"><td class="c40">
+<a id="t.2007e6bb869143d669a272531a7f87d542e60f2d"></a><a id="t.4"></a><table class="c16"><tr class="c39"><td class="c10">
 <p class="codt">&nbsp;Aggr : <b>constant</b> Array_Of_Controlled := [<b>for</b> I <b>in</b> 1 ..
 100 =&gt; F(I)];</p>
 </td></tr></table><p class="text">&nbsp;</p>
-<p class="txts">where <span class="a87">F(I)</span> returns a controlled object which the compiler
+<p class="txts">where <span class="a85">F(I)</span> returns a controlled object which the compiler
 does <i>not</i> build in place, after the object returned by F is copied into the aggregate (and
 adjusted), the temporary can be immediately finalized (and cease to exist), thanks to the added
 permission.</p>
@@ -274,7 +275,7 @@
 <p class="txts">The need for this extra permission does not only come up in iterative contexts.
 &nbsp;It can also be as simple as:</p>
 
-<a id="t.d14724bd4238c5459e427529e95837135cdb0d22"></a><a id="t.5"></a><table class="c44"><tr class="c36"><td class="c40">
+<a id="t.d14724bd4238c5459e427529e95837135cdb0d22"></a><a id="t.5"></a><table class="c16"><tr class="c39"><td class="c10">
 <p class="codt">&nbsp;X : <b>constant</b> Has_Controlled_Part := F(Y);</p>
 </td></tr></table><p class="text">&nbsp;</p>
 <p class="text">presuming that the compiler does not build the result of F(Y) directly in X.
@@ -318,21 +319,21 @@
 6.1.1, Preconditions and Postconditions, paragraphs 22.12/5 to 22.15/5:</p>
 
 <p class="a35">22.12/5</p>
-<p class="a63"><span class="a64">&nbsp;
-&nbsp;{</span><span class="a65"><a class="c17" href="http://www.ada-auth.org/cgi-bin/cvsweb.cgi/AI12s/AI12-0280-2.TXT">AI12-0280-2</a></span><span class="a64">}
-</span><span class="a66">The following subexpressions are repeatedly evaluated:</span></p>
+<p class="a62"><span class="a63">&nbsp;
+&nbsp;{</span><span class="a64"><a class="c22" href="http://www.ada-auth.org/cgi-bin/cvsweb.cgi/AI12s/AI12-0280-2.TXT">AI12-0280-2</a></span><span class="a63">}
+</span><span class="a65">The following subexpressions are repeatedly evaluated:</span></p>
 <p class="a35">22.13/5</p>
-<p class="a69"><span class="a70">{</span><span class="a71"><a class="c17" href="http://www.ada-auth.org/cgi-bin/cvsweb.cgi/AI12s/AI12-0280-2.TXT">AI12-0280-2</a></span><span class="a70">}
-</span><span class="a72">A subexpression of a predicate of a
-</span><span class="a73"><a class="c17" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-5-8.html#S0153">quantified_expression</a></span><span class="a74">;</span></p>
+<p class="a67"><span class="a68">{</span><span class="a69"><a class="c22" href="http://www.ada-auth.org/cgi-bin/cvsweb.cgi/AI12s/AI12-0280-2.TXT">AI12-0280-2</a></span><span class="a68">}
+</span><span class="a70">A subexpression of a predicate of a
+</span><span class="a71"><a class="c22" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-5-8.html#S0153">quantified_expression</a></span><span class="a72">;</span></p>
 <p class="a35">22.14/5</p>
-<p class="a69"><span class="a70">{</span><span class="a71"><a class="c17" href="http://www.ada-auth.org/cgi-bin/cvsweb.cgi/AI12s/AI12-0280-2.TXT">AI12-0280-2</a></span><span class="a70">}
-</span><span class="a72">A subexpression of the expression of an
-</span><span class="a73"><a class="c17" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-3-3.html#S0118">array_component_association</a></span><span class="a74">;</span></p>
+<p class="a67"><span class="a68">{</span><span class="a69"><a class="c22" href="http://www.ada-auth.org/cgi-bin/cvsweb.cgi/AI12s/AI12-0280-2.TXT">AI12-0280-2</a></span><span class="a68">}
+</span><span class="a70">A subexpression of the expression of an
+</span><span class="a71"><a class="c22" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-3-3.html#S0118">array_component_association</a></span><span class="a72">;</span></p>
 <p class="a35">22.15/5</p>
-<p class="a88"><span class="a70">{</span><span class="a71"><a class="c17" href="http://www.ada-auth.org/cgi-bin/cvsweb.cgi/AI12s/AI12-0280-2.TXT">AI12-0280-2</a></span><span class="a70">}
-</span><span class="a72">A subexpression of the expression of a
-</span><span class="a73"><a class="c17" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-3-5.html#S0128">container_element_association</a></span><span class="a74">.</span></p>
+<p class="a86"><span class="a68">{</span><span class="a69"><a class="c22" href="http://www.ada-auth.org/cgi-bin/cvsweb.cgi/AI12s/AI12-0280-2.TXT">AI12-0280-2</a></span><span class="a68">}
+</span><span class="a70">A subexpression of the expression of a
+</span><span class="a71"><a class="c22" href="http://www.ada-auth.org/standards/2xaarm/html/AA-4-3-5.html#S0128">container_element_association</a></span><span class="a72">.</span></p>
 
 
 <p class="txts">This seems to be missing the case of the key_expression and the expression of an
@@ -373,14 +374,14 @@
 (composite) result is used to initialize an object:</p>
 
 <p class="a35">10.1/3</p>
-<p class="a77">{<span class="a65"><a class="c17" href="http://www.ada-auth.org/cgi-bin/cvsweb.cgi/AI05s/AI05-0234-1.TXT">AI05-0234-1</a></span>}
+<p class="a75">{<span class="a64"><a class="c22" href="http://www.ada-auth.org/cgi-bin/cvsweb.cgi/AI05s/AI05-0234-1.TXT">AI05-0234-1</a></span>}
 The accessibility level of the result of a function call is that of the <i>master of the function
-call</i><span class="a78">, which is determined by the point of call as follows:</span></p>
+call</i><span class="a76">, which is determined by the point of call as follows:</span></p>
 <p class="a35">10.2/5</p>
-<p class="a79">{<span class="a65"><a class="c17" href="http://www.ada-auth.org/cgi-bin/cvsweb.cgi/AI05s/AI05-0234-1.TXT">AI05-0234-1</a></span>}
-{<span class="a65"><a class="c17" href="http://www.ada-auth.org/cgi-bin/cvsweb.cgi/AI12s/AI12-0402-1.TXT">AI12-0402-1</a></span>}
-If <span class="a80">the result type at the point of the function (or access-to-function type)
-declaration is a composite type, and </span><span class="a78">the result is used (in its entirety)
+<p class="a77">{<span class="a64"><a class="c22" href="http://www.ada-auth.org/cgi-bin/cvsweb.cgi/AI05s/AI05-0234-1.TXT">AI05-0234-1</a></span>}
+{<span class="a64"><a class="c22" href="http://www.ada-auth.org/cgi-bin/cvsweb.cgi/AI12s/AI12-0402-1.TXT">AI12-0402-1</a></span>}
+If <span class="a78">the result type at the point of the function (or access-to-function type)
+declaration is a composite type, and </span><span class="a76">the result is used (in its entirety)
 to directly initialize part of an object, the master is that of the object being initialized. In
 the case where the initialized object is a coextension (see below) that becomes a coextension of
 another object, the master is that of the eventual object to which the coextension will be
@@ -475,13 +476,13 @@
 <p class="txts">Steve reminds me that he would like to see an AARM note to clarify what can be
 finalized when an expression master is finalized, particularly one in an iterative context.</p>
 
-<p class="a89">Here is a slight adjustment to 7.6.1(13.1/3) plus the addition of an AARM note:</p>
+<p class="a87">Here is a slight adjustment to 7.6.1(13.1/3) plus the addition of an AARM note:</p>
 
 <p class="in2s">In the case of an expression {or &lt;&gt;} &nbsp;that is a master, finalization of
 any (anonymous) objects occurs after completing evaluation of the expression {or &lt;&gt;} and all
 use of the objects, prior to starting the execution of any subsequent construct {or iteration}.</p>
 
-<p class="a90">{AARM Discussion: Within a reduction expression, this includes any such anonymous
+<p class="a88">{AARM Discussion: Within a reduction expression, this includes any such anonymous
 objects associated with a call on the reducer subprogram for each value of the value_sequence.}</p>
 
 <p class="txts">****************************************************************</p>
@@ -551,7 +552,7 @@
 &quot;active AIs&quot; folder:</p>
 
 <p class="txts">&nbsp;
-&nbsp;<span class="c24"><a class="c17" href="https://docs.google.com/document/d/1f1GIa7gP2yx_W76tE2lcVEnYFoY3VDC06QKhXlmEfwc/edit?usp=sharing">AI22-0040-1
+&nbsp;<span class="c41"><a class="c22" href="https://docs.google.com/document/d/1f1GIa7gP2yx_W76tE2lcVEnYFoY3VDC06QKhXlmEfwc/edit?usp=sharing">AI22-0040-1
 Finalization and Implicit Loops</a></span></p>
 
 <p class="txts">Please use Google docs to record any specific comments or suggestions.</p>
@@ -642,8 +643,8 @@
 <p class="a43">not built in place, the anonymous object representing the result of the function
 </p>
 <p class="a43">call may be finalized and become nonexistent immediately after the </p>
-<p class="a91">initialization of the newly-created object is
-complete.<span class="a82">&nbsp;</span></p>
+<p class="a89">initialization of the newly-created object is
+complete.<span class="a80">&nbsp;</span></p>
 
 <p class="txts">I don&#39;t see how that applies to your P(F(G(X)) example. &nbsp;If possible,
 please follow up by adding comments directly into the google-docs version of the AI, rather than
@@ -677,7 +678,7 @@
 <p class="text">&gt;cases.</p>
 <p class="text">&gt;</p>
 <p class="text">&gt;And if so, then why do we need to mention the loop-y
-expressions?<span class="a84"> </span></p>
+expressions?<span class="a82"> </span></p>
 <p class="text">&nbsp;</p>
 <p class="a45">My understanding was that the permission only applied to calls that could be
 build-in-place, since those are the only ones that have a possibly extended lifetime (such that the
@@ -690,7 +691,7 @@
 <p class="a45">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P := new
 Some_Type&#39;(F(G(X));</p>
 <p class="a47">&nbsp;</p>
-<p class="a92">I&#39;d be against allowing willy-nilly finalization of return objects; I only
+<p class="a90">I&#39;d be against allowing willy-nilly finalization of return objects; I only
 agreed to the permission because it&#39;s fairly clearly that iterative contexts have an
 implementation problem which needs some sort of solution. I don&#39;t want to see such permissions
 in contexts that don&#39;t have an implementation need (it would make the implementation more
@@ -930,9 +931,28 @@
 
 <p class="txts">****************************************************************</p>
 
+<p class="from">From:<span class="name"> Randy Brukardt</span></p>
+<p class="time">Sent: Friday, October 21, 2022 &nbsp;11:41 PM</p>
+
+<p class="txts">The intent is that the added permission applies in cases where the implementation
+already has the freedom to use build-in-place (or not), so the permission does not add any
+additional non-determinism. In particular, the permission is justified by the 3.10.2(10.2/5) rule.
+However, it was noted that that rule only applies when the function result is used &nbsp;&ldquo;in
+its entirety&rdquo;. Therefore, the permission also should only apply in such cases.</p>
+
+<p class="txts">We believe that most cases where only a part of the result is used are illegal (as
+the lifetime of the result would be too short) or the object is already required to be immediately
+reclaimed. But the risk of introducing additional non-determinism in cases where that wasn&rsquo;t
+intended is too great. So the phrase &ldquo;(in its entirety)&rdquo; is added to the new permission
+in order that it aligns with the other, similar rules.</p>
+
+<p class="txts">This was considered an Editorial Review change.</p>
+
+<p class="txts">****************************************************************</p>
+
 
 
-<div class="c21"><p class="txts"><a href="#cmnt_ref1">[a]</a>If we have something like:</p>
+<div class="c19"><p class="txts"><a href="#cmnt_ref1">[a]</a>If we have something like:</p>
 
 <p class="txts">X := (for all Y of blah =&gt; F(...) = G(...));</p>
 
@@ -976,7 +996,7 @@
 <p class="txts">A returns.</p>
 
 <p class="text">@taft@adacore.com @baird@adacore.com @dismukes@adacore.com @squirek@adacore.com</p>
-</div><div class="c21"><p class="text"><a href="#cmnt_ref2">[b]</a>We looked at all of those ideas
+</div><div class="c19"><p class="text"><a href="#cmnt_ref2">[b]</a>We looked at all of those ideas
 in the 76 private messages before this was proposed. But a proper discussion of philosophy cannot
 done here; I&#39;ll answer on the ARG list.</p>
 </div></body></html> 

Questions? Ask the ACAA Technical Agent