<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">My commit might have uncovered an old bug in eraseUsesOfInstruction by changing which large-types are expanded in the optimizer, but it did not cause this underlying problem:<div class=""><br class=""></div><div class="">There’s a bug in the recursive eraser’s logic that, in rare occasions, deletes a ‘user’ that’s yet to be iterated over in the Instruction’s users loop. This caused the compiler to crash.</div><div class=""><br class=""></div><div class="">Last week I upstream a commit that worked around this issue by adding the following check:</div><div class=""> if (!User) {<br class=""> continue;<br class=""> }</div><div class=""><br class=""></div><div class="">I am assuming ASAN is hitting this issue now.</div><div class=""><br class=""></div><div class=""><div class="">
<div style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;"><br class="Apple-interchange-newline">Regards,<br class="">—Joe | | 📧 <a href="mailto:shajrawi@apple.com" class="">shajrawi@apple.com</a> | 📱(+1) 408-930-5203</div><div style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;"><br class=""></div><br class="Apple-interchange-newline">
</div>
<br class=""><div><blockquote type="cite" class=""><div class="">On Aug 29, 2017, at 4:17 PM, Michael Ilseman <<a href="mailto:milseman@apple.com" class="">milseman@apple.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=us-ascii" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Asan is detecting a use after free. Michael G or Joe, is this likely either of you?</div><div class=""><br class=""></div><div class=""><pre class="console-output" style="box-sizing: border-box; white-space: pre-wrap; word-wrap: break-word; margin-top: 0px; margin-bottom: 0px; font-size: 13px; background-color: rgb(43, 48, 59); color: rgb(192, 197, 206); padding: 20px; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;">SUMMARY: AddressSanitizer: heap-use-after-free (/Users/buildnode/jenkins/workspace/oss-swift-incremental-ASAN-RA-osx/buildbot_incremental_asan/swift-macosx-x86_64/bin/swift:x86_64+0x101bc796c) in swift::eraseUsesOfInstruction(swift::SILInstruction*, std::__1::function<void (swift::SILInstruction*)>)
</pre></div><div class=""><br class=""></div><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Aug 29, 2017, at 4:15 PM, <a href="mailto:no-reply@swift.org" class="">no-reply@swift.org</a> wrote:</div><br class="Apple-interchange-newline"><div class=""><h2 style="font-family: 'Helvetica Neue', sans-serif; font-style: normal; font-variant-caps: normal; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; width: 1453px; background-color: red; color: white; text-align: center;" class=""></h2><h1 style="color: rgb(57, 57, 57); font-family: 'Helvetica Neue', sans-serif; font-style: normal; font-variant-caps: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">[<font class="FAILURE" style="color: red;">FAILURE</font>] oss-swift-incremental-ASAN-RA-osx [#114]</h1><table style="color: rgb(57, 57, 57); font-family: 'Helvetica Neue', sans-serif; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 300; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class=""><tbody class=""><tr style="text-align: left;" class=""><th class="">Build URL:</th><td class=""><a href="https://ci.swift.org/job/oss-swift-incremental-ASAN-RA-osx/114/" style="color: rgb(0, 122, 255); text-decoration: none;" class="">https://ci.swift.org/job/oss-swift-incremental-ASAN-RA-osx/114/</a></td></tr><tr style="text-align: left;" class=""><th class="">Project:</th><td class="">oss-swift-incremental-ASAN-RA-osx</td></tr><tr style="text-align: left;" class=""><th class="">Date of build:</th><td class="">Tue, 29 Aug 2017 16:26:15 -0500</td></tr><tr style="text-align: left;" class=""><th class="">Build duration:</th><td class="">1 hr 50 min</td></tr></tbody></table><br style="color: rgb(57, 57, 57); font-family: 'Helvetica Neue', sans-serif; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 300; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class=""><h2 style="color: rgb(57, 57, 57); font-family: 'Helvetica Neue', sans-serif; font-style: normal; font-variant-caps: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">Changes</h2><ul style="color: rgb(57, 57, 57); font-family: 'Helvetica Neue', sans-serif; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 300; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class=""><li class="">Commit<span class="Apple-converted-space"> </span><b class="">58fefc174cb6fade894c9c9349dbf34bab7f34a6</b><span class="Apple-converted-space"> </span>by<span class="Apple-converted-space"> </span><b class="">mgottesman:</b><p class="commit-message" style="font-family: Menlo, fixed; white-space: pre-wrap;">[sil-ownership] is_nonnull does not take trivial values, it takes</p><ul class=""><li class="change-edit"><b class="">edit</b>: test/SIL/ownership-verifier/use_verifier.sil</li><li class="change-edit"><b class="">edit</b>: lib/SIL/SILOwnershipVerifier.cpp</li></ul></li><br class=""><li class="">Commit<span class="Apple-converted-space"> </span><b class="">fb1b2a8d9d2277a53c7b1bc76f983ccd38b9f925</b><span class="Apple-converted-space"> </span>by<span class="Apple-converted-space"> </span><b class="">shajrawi:</b><p class="commit-message" style="font-family: Menlo, fixed; white-space: pre-wrap;">Use emitCopy/Destroy value instead of LoweredCopy/Destroy for large</p><ul class=""><li class="change-edit"><b class="">edit</b>: lib/SILOptimizer/Transforms/SILLowerAggregateInstrs.cpp</li><li class="change-edit"><b class="">edit</b>: lib/SILOptimizer/Transforms/SILMem2Reg.cpp</li><li class="change-edit"><b class="">edit</b>: lib/SIL/TypeLowering.cpp</li></ul></li><br class=""><li class="">Commit<span class="Apple-converted-space"> </span><b class="">5c65887fd00e99237eb1032634249634e8a7a236</b><span class="Apple-converted-space"> </span>by<span class="Apple-converted-space"> </span><b class="">xi_ge:</b><p class="commit-message" style="font-family: Menlo, fixed; white-space: pre-wrap;">[SourceKit] Add function argument when optional chaining is used</p><ul class=""><li class="change-edit"><b class="">edit</b>: lib/IDE/SyntaxModel.cpp</li><li class="change-edit"><b class="">edit</b>: test/IDE/structure.swift</li><li class="change-edit"><b class="">edit</b>: test/SourceKit/DocumentStructure/structure.swift.response</li><li class="change-edit"><b class="">edit</b>: test/SourceKit/DocumentStructure/Inputs/main.swift</li></ul></li></ul></div></blockquote></div><br class=""></div></div></blockquote></div><br class=""></div></body></html>