<div dir="ltr"><div><div><div><div><div><div><div><div>Dear list,<br><br></div>Can someone help me understand how <span style="font-family:arial,helvetica,sans-serif">dfsan's combine labels on store </span><span style="font-family:arial,helvetica,sans-serif"><span style="font-family:arial,helvetica,sans-serif">semantics </span>(</span><span style="font-family:arial,helvetica,sans-serif"><span style="font-family:arial,helvetica,sans-serif">ClCombinePointerLabelsOnStore option</span>) work? <br>

<br></span></div><span style="font-family:arial,helvetica,sans-serif">For discussion, here's an example (p is a pointer):<br><br></span></div><div style="margin-left:40px"><span style="font-family:arial,helvetica,sans-serif">p = v1;</span><br>

</div><div style="margin-left:40px"><span style="font-family:arial,helvetica,sans-serif"></span></div></div><div style="margin-left:40px"><span style="font-family:arial,helvetica,sans-serif">p = v2;</span><br></div><br><span style="font-family:arial,helvetica,sans-serif">Assume label(p)=LP, label(v1)=L1, and label(v2)=L2. Then, if my understanding is correct, this is how labels </span>propagate:<br>

<br></div>Default semantics:<br><br><div style="margin-left:40px"><span style="font-family:arial,helvetica,sans-serif">p = v1;</span> // p* is labeled with L1<br></div><div style="margin-left:40px"><span style="font-family:arial,helvetica,sans-serif"></span></div>

<div style="margin-left:40px"><span style="font-family:arial,helvetica,sans-serif">p = v2;</span> // p* is labeled with L2<br><br></div>Combine semantics (<span style="font-family:arial,helvetica,sans-serif"></span><span style="font-family:arial,helvetica,sans-serif"><span style="font-family:arial,helvetica,sans-serif">ClCombinePointerLabelsOnStore is set</span></span>):<br>

<br><div style="margin-left:40px"><span style="font-family:arial,helvetica,sans-serif">p = v1;</span> // p* is labeled with L1 + LP<br></div><div style="margin-left:40px"><span style="font-family:arial,helvetica,sans-serif"></span></div>

<div style="margin-left:40px"><span style="font-family:arial,helvetica,sans-serif">p = v2;</span> // p* is labeled with L2 + LP<br></div><br></div>Is this the correct behavior?<br><br></div>Thanks a lot!<br></div>Fred<br>

<div><div><div><div><div><div><div style="margin-left:40px"><span style="font-family:arial,helvetica,sans-serif"></span></div></div></div></div></div></div></div></div>