<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Hi all,</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
"runCheckersForEndFunction()" is called after "removeDeadOnEndOfFunction()" call, see <span><a href="https://github.com/llvm-mirror/clang/blob/master/lib/StaticAnalyzer/Core/ExprEngine.cpp#L1948" id="LPlnk904341">https://github.com/llvm-mirror/clang/blob/master/lib/StaticAnalyzer/Core/ExprEngine.cpp#L1948</a>.
"r<span>emoveDeadOnEndOfFunction()" calls "getNode()", and "getNode()"supports node </span></span><span style="font-family: Calibri, sans-serif; font-size: 11pt;">deduplication</span><span style="color: rgb(0, 0, 0); font-family: Calibri, sans-serif; font-size: 11pt;">,
so the "Dst" is may be empty after "removeDeadOnEndOfFunction(NodeBuilder, Pre, Dst)" has been executed. And "<span><span style="color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal;">runCheckersForEndFunction()"
will not be called if "Dst" set is empty.</span></span></span></div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<span style="color: rgb(0, 0, 0); font-family: Calibri, sans-serif; font-size: 11pt;"><br>
</span></div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<span style="color: rgb(0, 0, 0); font-family: Calibri, sans-serif; font-size: 11pt;">=======================================code snippets======================================</span></div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<span style="color: rgb(0, 0, 0); font-family: Calibri, sans-serif; font-size: 11pt;"><span>
<div>int foo(int a, int b)</div>
<div>{</div>
<div><span style="white-space:pre"></span>if (a && b)</div>
<div><span style="white-space:pre"></span>return a + b;</div>
<div><span style="white-space:pre"></span>if(b)</div>
<div><span style="white-space:pre"></span>return b;</div>
<div><span style="white-space:pre"></span>return 0;</div>
<div>}</div>
</span></span></div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<span style="color: rgb(0, 0, 0); font-family: Calibri, sans-serif; font-size: 11pt;">========================================================================================</span></div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=""><span style="color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif; font-size: 12pt;">For the above code, "runCheckersForEndFunction()" will only be executed twice. <span>In view of the fact that</span> the comments of "<span><span style="color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal;">runCheckersForEndFunction()</span></span>"
is "Run Checkers for end of path", <span>is it reasonable that <span><span style="color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal;">"</span><span style="color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal;">runCheckersForEndFunction()"</span></span>
is not called at the end of all paths?</span></span></div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Thanks,</div>
<div id="signature">
<div style="font-family:Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
Henry Wong</div>
</div>
</body>
</html>