<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Exchange Server">
<!-- converted from rtf -->
<style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: #800000 2px solid; } --></style>
</head>
<body>
<font face="Calibri" size="2"><span style="font-size:11pt;">
<div>Looks like missing some basics here.</div>
<div> </div>
<div>Consider following test:</div>
<div> </div>
<div>     1  int escape(int **ptr);</div>
<div>     2  int foo(int * ptr)</div>
<div>     3  {</div>
<div>     4     return escape(&ptr);</div>
<div>     5  }</div>
<div> </div>
<div>At line number 4 address of pointer passed to another routine.</div>
<div> </div>
<div>When I print alias set:</div>
<div> </div>
<div>Alias Set Tracker: 1 alias sets for 1 pointer values.</div>
<div>  AliasSet[0x43be490, 2] may alias, Mod/Ref   Pointers: (i32** %ptr.addr, 8)</div>
<div>    1 Unknown instructions: i32 %call</div>
<div> </div>
<div>Here ptr.addr is only in the set, and set property is may-alias.</div>
<div> </div>
<div>I’m not sure it may-alias with what, if its aliasing with self then why not must-alias ?</div>
<div> </div>
<div>Is may-alias indicating ptr.addr is unsafe to optimize, and it can possibly alias with something.</div>
<div> </div>
<div>Regards,</div>
<div>Ashutosh</div>
<div> </div>
</span></font>
</body>
</html>