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

Differences between 1.1 and version 1.2
Log of other versions for file ai22s/ai22-0009-1.html

--- ai22s/ai22-0009-1.html	2022/09/03 05:35:45	1.1
+++ ai22s/ai22-0009-1.html	2022/10/25 00:06:54	1.2
@@ -1,7 +1,7 @@
-<html><head><meta content="text/html; charset=UTF-8" http-equiv="content-type"><title>AI22-0009-1/03</title>
+<html><head><meta content="text/html; charset=UTF-8" http-equiv="content-type"><title>AI22-0009-1/04</title>
 <style type="text/css">
 table td,table th{padding:0}
-.c14{background-color:#ffffff;max-width:468pt;padding:72pt 72pt 72pt 72pt}
+.c16{background-color:#ffffff;max-width:468pt;padding:72pt 72pt 72pt 72pt}
 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}
@@ -13,12 +13,13 @@
 P.time{margin-bottom:0; margin-top:0; margin-left:0; margin-right:0; padding-top:0pt; color:#000000; font-size:9pt; padding-bottom:9pt; font-family:"Arial","Liberation Sans",sans-serif; line-height:1.15; orphans:2; widows:2; text-align:left; font-weight:4
00; text-decoration:none; vertical-align:baseline; font-style:italic}
 SPAN.name{font-family:"Lucida Calligraphy",cursive; font-style:normal}
 SPAN.ins{color:#005500}
+SPAN.ntrm{font-family:"Arial","Liberation Sans",sans-serif}
 P.a1{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; font-weight:400; text-decoration:none; vertical-align:baseline; font-style:normal}
 </style>
-</head><body class="c14 doc-content"><p class="a1">AI22-0009-1</p>
+</head><body class="c16 doc-content"><p class="a1">AI22-0009-1</p>
 <p class="head">!standard C.6(12/5) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
-&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;22-08-19
-&nbsp;AI22-0009-1/03</p>
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;22-10-19
+&nbsp;AI22-0009-1/04</p>
 <p class="head">!standard C.6(12.1/5)</p>
 <p class="head">!class binding interpretation 21-11-11</p>
 <p class="head">!status work item 21-11-11</p>
@@ -28,8 +29,8 @@
 <p class="head">!qualifier Omission</p>
 <p class="head">!subject Nonvolatile views of volatile objects</p>
 <h2 class="head">!summary</h2>
-<p class="text">Nonvolatile views of volatile objects (and some related constructs) are
-illegal.</p>
+<p class="text">Nonvolatile views of volatile objects (and some related constructs) are illegal or
+are prevented by making a copy.</p>
 <h2 class="head">!issue</h2>
 <p class="txts">Two issues pertaining to avoiding non-volatile views of volatile objects (and vice
 versa):</p>
@@ -39,7 +40,7 @@
 the &quot;Otherwise, it is unspecified whether a new object is created&rdquo; clause currently
 applies, should a volatile-to-nonvolatile conversion be required to generate a copy? (Yes, and also
 in the reverse case.)</li>
-<li>Should a volatile extension of nonvolatile tagged type be illegal? (Yes.)</li>
+<li>Should a volatile extension of a nonvolatile tagged type be illegal? (Yes.)</li>
 </ul>
 
 <p class="text">Are the answers the same if we ask about atomicity instead of volatility?
@@ -47,32 +48,22 @@
 <h2 class="head">!recommendation</h2>
 <p class="text">(See Summary.)</p>
 <h2 class="head">!wording</h2>
-<p class="inst">Modify C.6(12/5): [this part is unchanged from the previous version of this AI]</p>
-<p class="word">&nbsp; If an atomic object is passed as a parameter, then the formal parameter </p>
-<p class="word">&nbsp; shall either have an atomic type or allow pass by copy. If an atomic object
-</p>
-<p class="word">&nbsp; is used as an actual for a generic formal object of mode in out, then the
-</p>
-<p class="word">&nbsp; type of the generic formal object shall be atomic. If the prefix of an </p>
-<p class="word">&nbsp; attribute_reference for an Access attribute denotes an atomic object</p>
-<p class="word">&nbsp; [Redundant: (including a component)], then the designated type of the
-resulting </p>
-<p class="word">&nbsp; access type shall be atomic. <span class="ins">{An extension of a nonatomic
-tagged type </span></p>
-<p class="word"><span class="ins">&nbsp; shall not be atomic.}</span> Corresponding rules apply to
-volatile objects and </p>
-<p class="word"><span class="ins">&nbsp; to full access objects.</span></p>
+<p class="inst">Modify C.6(12/5):</p>
+<p class="word">If an atomic object is passed as a parameter, then the formal parameter shall
+either have an atomic type or allow pass by copy. If an atomic object is used as an actual for a
+generic formal object of mode in out, then the type of the generic formal object shall be atomic.
+If the prefix of an <span class="ntrm">attribute_reference</span> for an Access attribute denotes
+an atomic object [Redundant: (including a component)], then the designated type of the resulting
+access type shall be atomic. <span class="ins">{An extension of a nonatomic tagged type shall not
+be atomic.}</span> Corresponding rules apply to volatile objects and to full access objects.</p>
 <p class="inst">Add new paragraph after C.6(12.1/5):</p>
-<p class="word">&nbsp; &nbsp;In the case of a type conversion where the rules given in section
-4.6</p>
-<p class="word">&nbsp; &nbsp;state that it is &quot;unspecified whether a new object is
-created&quot;, a</p>
-<p class="word">&nbsp; &nbsp;new object is created if the atomicity of the target type does not
-match</p>
-<p class="word">&nbsp; &nbsp;that of the operand object (that is, if either the target type is
-atomic</p>
-<p class="word">&nbsp; &nbsp;and the operand object is not or vice versa). A corresponding rule</p>
-<p class="word">&nbsp; &nbsp;for volatility also applies.</p>
+<p class="word">In evaluating a type conversion, a new object is created [redundant: (as opposed to
+a new view of the operand object)] if the atomicity of the target type (that is, whether or not it
+is an atomic type) does not match the atomicity of the operand object (that is, whether or not it
+is an atomic object). An analogous rule applies with respect to volatility (&quot;volatility&quot;
+is defined analogously to &quot;atomicity&quot;). In the case of an array conversion, an analogous
+rule applies if the Atomic_Components or Volatile_Components aspects of the array types do not
+match.</p>
 <p class="text">&nbsp; &nbsp;</p>
 <p class="head">!discussion</p>
 <p class="txts">We cannot have volatile (and atomic) objects that are operated on in a nonvolatile

Questions? Ask the ACAA Technical Agent