<div dir="ltr">Hi all,<div><br></div><div>Recently I am working on developing a checker of Clang Static Analyzer. Because Clang Static Analyzer has a powerful symbolic execution engine, I choose Clang Static Analyzer as the platform for my work. My Checker mainly does some analysis work for C source code files. The checker will make use of the program states during its analysis execution and it will generate a report for each analysis. </div>
<div><br></div><div>In my understanding, symbolic execution(Clang static analyzer) will cover all possible paths. For example, here is an sample source code which will be <span style="color:rgb(0,0,0);font-family:'Microsoft YaHei';font-size:13px;white-space:nowrap">analyzed</span> by static analyzer:</div>
<div><div> 1  void func(int arg) {</div><div> 2    int v;</div><div> 3     if(arg > 0)  </div><div> 4         v = arg + 1;</div><div> 5     else</div><div> 6         v = arg + 999;</div><div> 7     int a, b;</div><div>
 8     a = 99; </div><div> 9     b = a;</div><div>10  }</div><div><div style>The symbolic execution path can be <span style="color:rgb(0,0,0);font-family:'Microsoft YaHei';font-size:13px;white-space:nowrap">roughly</span> represented as follow(based on ExplodedGraph):</div>
<div style><a href="http://ww2.sinaimg.cn/large/a74ecc4cjw1e1fipmgpy5j.jpg">http://ww2.sinaimg.cn/large/a74ecc4cjw1e1fipmgpy5j.jpg</a><br></div><div style><div>And the execution sequence is 1-2-3-(1)-4-5. However, is there any possible means to change the execution sequence to be linear? That is to say, is there any possible means to change the execution sequence to be 1-2-(1)-4-5?</div>
<div style>Thanks for the help.</div></div><br>------<br>Best regards,<br>Arthur Yoo</div></div></div>