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

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

--- ai22s/ai22-0009-1.html	2022/11/17 06:22:54	1.3
+++ ai22s/ai22-0009-1.html	2022/11/17 06:38:54	1.4
@@ -1,8 +1,8 @@
-<html><head><meta content="text/html; charset=UTF-8" http-equiv="content-type"><title>AI22-0009-1/05</title>
+<html><head><meta content="text/html; charset=UTF-8" http-equiv="content-type"><title>AI22-0009-1/06</title>
 <style type="text/css">
 table td,table th{padding:0}
-.c16{max-width:468pt;padding:72pt 72pt 72pt 72pt}
-.c15{background-color:#ffffff}
+.c15{max-width:468pt;padding:72pt 72pt 72pt 72pt}
+.c12{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}
@@ -15,14 +15,16 @@
 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}
+P.a2{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="c15 c16 doc-content"><p class="a1">AI22-0009-1</p>
+</head><body class="c12 c15 doc-content"><p class="a2">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-11-10
-&nbsp;AI22-0009-1/05</p>
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;22-11-16
+&nbsp;AI22-0009-1/06</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 Corrigendum 1-2022 22-11-10</p>
+<p class="head">!status ARG Approved 14-0-0 &nbsp;22-11-10</p>
 <p class="head">!status work item 21-11-11</p>
 <p class="head">!status received 21-08-26</p>
 <p class="head">!priority Low</p>
@@ -52,11 +54,12 @@
 <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>
+generic formal object of mode <b>in out</b>, then the type of the generic formal object shall be
+atomic. If the <span class="ntrm">prefix</span> 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">In evaluating a type conversion, a new object is created [redundant: (as opposed to
 a new view of the operand object)] if one but not both of the target type and the operand object is
@@ -81,11 +84,43 @@
 
 <hr><p class="txts">&nbsp;</p>
 
-<p class="text">Note that a nonvolatile-to-volatile conversion (and especially a
-nonatomic-to-atomic conversion) may also require a copy. A volatile or atomic object may have
-representation requirements beyond those of a normal object (for instance, for alignment). An
-implementation can use the &quot;unspecified&quot; case to make a copy if this is a problem, but it
-is not required if in fact the nonatomic object happens to be aligned correctly.</p>
+<p class="txts">Note that a nonvolatile-to-volatile conversion (and especially a
+nonatomic-to-atomic conversion) also requires a copy. A volatile or atomic object may have
+representation requirements beyond those of a normal object (for instance, for alignment), and the
+access code is likely different. It might be possible in some implementations to avoid this copy
+(if the representation is the same and the access code is similar enough), but we opt for
+simplicity in the rules and certainty for the programmer.</p>
+
+<h2 class="head">!corrigendum C.6(12/5)</h2>
+<p class="text">@drepl</p>
+<p class="text">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 @b{in out}, then the type of the generic formal object shall be
+atomic. If the @fa{prefix} of an @fa{attribute_reference} for an Access attribute denotes an atomic
+object (including a component), then the designated type of the resulting access type shall be
+atomic. Corresponding rules apply to volatile objects and to full access objects.</p>
+<p class="text">@dby</p>
+<p class="text">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 @b{in out}, then the type of the generic formal object shall be
+atomic. If the @fa{prefix} of an @fa{attribute_reference} for an Access attribute denotes an atomic
+object (including a component), then the designated type of the resulting access type shall be
+atomic. An extension of a nonatomic tagged type shall not be atomic. Corresponding rules apply to
+volatile objects and to full access objects.</p>
+<h2 class="head">!corrigendum C.6(12.1/5)</h2>
+<p class="text">@dinsa</p>
+<p class="text">If a nonatomic subcomponent of a full access object is passed as an actual
+parameter in a call then the formal parameter shall allow pass by copy (and, at run time, the
+parameter shall be passed by copy). A nonatomic subcomponent of a full access object shall not be
+used as an actual for a generic formal of mode @b{in out}. The @fa{prefix} of an
+@fa{attribute_reference} for an Access attribute shall not denote a nonatomic subcomponent of a
+full access object.</p>
+<p class="text">@dinst</p>
+<p class="text">In evaluating a type conversion, a new object is created (as opposed to a new view
+of the operand object) if one but not both of the target type and the operand object is atomic. A
+corresponding rule applies in the case of volatile. In the case of an array conversion,
+corresponding rules apply if the Atomic_Components or Volatile_Components aspects of the array
+types do not match.</p>
 <h2 class="head">!ACATS test</h2>
 <p class="text">An ACATS B-Test is needed for the type extension rule. The type conversion rule
 would be difficult to test, given the usage-oriented requirement for ACATS C-Tests. In particular,

Questions? Ask the ACAA Technical Agent