<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=""><div class="">As promised, attached are two diffs:</div><div class=""><br class=""></div><div class="">cflaa-asm-bugfix.diff fixes that we crashed given InlineAsm [1], and has a minor style update (remove trailing whitespace from comments)</div><div class="">cflaa-inttoptr-fix.diff fixes how we treat inttoptr/ptrtoint structures. I ended up implementing this with StratifiedAttrs, and will speak with Danny about his concerns with this approach (hopefully) later this week. It seems to meet the goal of not unifying everything, so I don’t see it being problematic. [2]</div><div class=""><br class=""></div><div class="">Patches should be applied in the order noted above.</div><div class=""><br class=""></div><div class="">[1] - The bug was, more generally, when we’re given two Value*s that weren’t in any way related to a single function (e.g. two globals, a global + InlineAsm, …), we’d crash. Early in implementing CFLAA, I wanted crashes because those are easy to detect/trace, and I had minimal knowledge of what was getting passed in. Now that we have an impl that’s hopefully mostly working, a debug print will suffice in these cases.</div><div class=""><br class=""></div><div class="">[2] - This implies that given %A and %B, where %A = inttoptr %Arg (or %Arg = ptrtoint %A), CFLAA <i class="">*may* </i>report NoAlias iff %B’s set has no StratifiedAttrs. </div><div class=""><br class=""></div><div class="">Thanks again to Yogesh for the bug report,</div><div class="">George</div><div class=""><br class=""></div><div class=""></div></body></html>