<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hi Cfe-dev,<div class=""><br class=""></div><div class="">I asked the questions below on cfe-users, to no reply. I was wondering if any clang developers could shed light on this issue.</div><div class=""><br class=""></div><div class="">Sam</div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On 26 Jul 2017, at 4:38 pm, Archibald Samuel Elliott <<a href="mailto:ashe2@cs.washington.edu" class="">ashe2@cs.washington.edu</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">Hi Clang-users!<br class=""><br class="">What are the expectations for the -Wunsequenced warning in Clang with C11?<br class=""><br class="">My understanding was the following expression would be unsequenced according to the spec, but clang doesn't give me a warning:<br class=""><br class="">((*p = 3) + (*q = 4))<br class=""><br class="">Is clang only going to warn if it knows p and q definitely alias each other here?<br class=""><br class="">I also tried the expression:<br class=""><br class="">((*p = 3) + (*p = 4))<br class=""><br class="">Which also gave no warnings, despite p aliasing itself. <br class=""><br class="">Is the warning based on a heuristic of whether the unsequenced behaviour will be observable, or on whether the two assignments ever alias, or will it only warn if it knows two side-effecting expressions are definitely unsequenced?<br class=""><br class="">Maybe this kind of analysis isn't for clang, and instead is for the clang static analyser. <br class=""><br class="">Thank you in advance!<br class=""><br class="">Sam</div></div></blockquote></div><br class=""><div class="">
<div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">--</div><div class="">Archibald Sam Elliott</div><div class=""><a href="mailto:ashe2@cs.washington.edu" class="">ashe2@cs.washington.edu</a></div><div class="">PhD Student, PLSE Group</div></div></div></div></div></div>
</div>
<br class=""></div></body></html>