<div><div dir="auto">Any takers on this?</div></div><div dir="auto"><br></div><div dir="auto">Best,</div><div dir="auto">Ram</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Jul 6, 2020 at 12:18 PM ramshankar r <<a href="mailto:ramshankar543@gmail.com">ramshankar543@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Hi,</div><div><br></div><div>I have a test-case for which I seem to be getting incorrect information from basic-aa alias-analysis. Here it is:</div><div>#include <stdio.h><br>#define ARR_SIZE 4<br>char c[ARR_SIZE];<br>char *pc[ARR_SIZE];<br>char **ppc = pc;<br><br>int main() {<br><br>  pc[0] = &c[0];<br>  pc[1] = &c[1];<br>  pc[2] = &c[2];<br>  pc[3] = &c[3];<br><br>  printf(" ppc: %p\n"<br>      " pc : %p\n"<br>      " c  : %p\n"<br>      " *pc: %p\n",<br>      ppc, pc, c, *pc);<br><br>  return 0;<br>}</div><div><br></div><div>The way I compiled it is as follows:</div><div>clang -m32 -g pointer.c -emit-llvm -S -c</div><div>opt pointer.ll -aa-pipeline=basic-aa -passes=aa-eval -print-all-alias-modref-info -disable-output <br></div><div><br></div><div>The result from the AA-Evaluator prints this:</div><div>  NoAlias:        i8** getelementptr inbounds ([4 x i8*], [4 x i8*]* @pc, i32 0, i32 0), i8*** @ppc</div><div><br></div><div>If we run the program, the result is this:</div><div> ppc: 0x565ee028<br> pc : 0x565ee028<br> c  : 0x565ee024<br> *pc: 0x565ee024</div><div><br></div><div>Basically, I would have liked if basic-aa said ppc and pc are may-aliased to start with for this kind of usage. This is how the globals look like. The second one: "ppc" has "pc" on the right hand side.<br></div><div><br>@pc = common dso_local global [4 x i8*] zeroinitializer, align 4, !dbg !0<br>@ppc = dso_local global i8** getelementptr inbounds ([4 x i8*], [4 x i8*]* @pc, i32 0, i32 0), align 4, !dbg !6</div><div><br></div><div>Best regards,</div><div>Ram<br></div></div>
</blockquote></div></div>