<div>I need to find loop at first and then to find all definitions of variables in loop control expression, and definitions of some related variables used in rhs of previous definitions.<br /></div><div><div>For example program: </div><div><br /></div><div>foo2(int start, int end){<!-- --></div><div>  for (int i=start; i<end; i++){<!-- --></div><div>   …//memory copy loop</div><div>  }</div><div>}</div><div><br /></div><div>foo1(int b)</div><div> if(…){<!-- --></div><div>   c = 5;</div><div> }</div><div>else c = 10;</div><div> a = b + c;</div><div> foo2(a, b)</div><div>}</div><div><br /></div><div>I need to find loop at first and then (backward) definitions:</div><div>a) start = foo2 param (a)</div><div>b) a = b + c</div><div>c) b = …</div><div>d1) c = 5</div><div>d2) c = 10</div><div><br /></div><div> I.e. is it exist a pointer to previous node(s) of current node of ExplodedGraph?</div><div>Also is it possible to find with Clang SA checkers' API input data that allow to reach some basic block?</div><div><br /></div><div>I want to find constraints on input data that allow to reach particular definitions of variables. Yes, it is over all paths, but not using simple meet operator. So it seemed for me that ExplodedGraph is the best choice.<br /></div></div><div><br /></div>