svf-tools 1.0.751 → 1.0.752

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -114,381 +114,383 @@ $(function() {
114
114
  <div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; {GenericBug::PARTIALLEAK, <span class="stringliteral">&quot;Partial Leak&quot;</span>},</div>
115
115
  <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; {GenericBug::FILENEVERCLOSE, <span class="stringliteral">&quot;File Never Close&quot;</span>},</div>
116
116
  <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; {GenericBug::FILEPARTIALCLOSE, <span class="stringliteral">&quot;File Partial Close&quot;</span>},</div>
117
- <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; {GenericBug::DOUBLEFREE, <span class="stringliteral">&quot;Double Free&quot;</span>}</div>
118
- <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;};</div>
119
- <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; </div>
120
- <div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classSVF_1_1GenericBug.html#abbc86875488c27e53e5c36e95c472b20"> 49</a></span>&#160;<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> GenericBug::getLoc()<span class="keyword"> const</span></div>
121
- <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword"></span>{</div>
122
- <div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBugEvent.html">SVFBugEvent</a>&amp;sourceInstEvent = bugEventStack.at(bugEventStack.size() -1);</div>
123
- <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; assert(sourceInstEvent.<a class="code" href="classSVF_1_1SVFBugEvent.html#a7ded0022f3852a08a05c67aeae77162f">getEventType</a>() == SVFBugEvent::SourceInst &amp;&amp; <span class="stringliteral">&quot;bugEventStack top should be a SourceInst event&quot;</span>);</div>
124
- <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">return</span> sourceInstEvent.<a class="code" href="classSVF_1_1SVFBugEvent.html#a5b3fcd366e5275927eb66a02dc6040f8">getEventLoc</a>();</div>
125
- <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;}</div>
126
- <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; </div>
127
- <div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classSVF_1_1GenericBug.html#afad49e3f62083345138932ffadf567dd"> 56</a></span>&#160;<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> GenericBug::getFuncName()<span class="keyword"> const</span></div>
128
- <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keyword"></span>{</div>
129
- <div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBugEvent.html">SVFBugEvent</a>&amp;sourceInstEvent = bugEventStack.at(bugEventStack.size() -1);</div>
130
- <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; assert(sourceInstEvent.<a class="code" href="classSVF_1_1SVFBugEvent.html#a7ded0022f3852a08a05c67aeae77162f">getEventType</a>() == SVFBugEvent::SourceInst &amp;&amp; <span class="stringliteral">&quot;bugEventStack top should be a SourceInst event&quot;</span>);</div>
131
- <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">return</span> sourceInstEvent.<a class="code" href="classSVF_1_1SVFBugEvent.html#ad3bcb02563f952edd43ab5a7276bd57d">getFuncName</a>();</div>
132
- <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;}</div>
133
- <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; </div>
134
- <div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classSVF_1_1BufferOverflowBug.html#a192bb246ed947f33cf7b02493c8fded8"> 63</a></span>&#160;<a class="code" href="structcJSON.html">cJSON</a> *BufferOverflowBug::getBugDescription()<span class="keyword"> const</span></div>
135
- <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="keyword"></span>{</div>
136
- <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugDescription = cJSON_CreateObject();</div>
137
- <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *allocLB = cJSON_CreateNumber(allocLowerBound);</div>
138
- <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *allocUB = cJSON_CreateNumber(allocUpperBound);</div>
139
- <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *accessLB = cJSON_CreateNumber(accessLowerBound);</div>
140
- <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *accessUB = cJSON_CreateNumber(accessUpperBound);</div>
141
- <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; </div>
142
- <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; cJSON_AddItemToObject(bugDescription, <span class="stringliteral">&quot;AllocLowerBound&quot;</span>, allocLB);</div>
143
- <div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; cJSON_AddItemToObject(bugDescription, <span class="stringliteral">&quot;AllocUpperBound&quot;</span>, allocUB);</div>
144
- <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; cJSON_AddItemToObject(bugDescription, <span class="stringliteral">&quot;AccessLowerBound&quot;</span>, accessLB);</div>
145
- <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; cJSON_AddItemToObject(bugDescription, <span class="stringliteral">&quot;AccessUpperBound&quot;</span>, accessUB);</div>
146
- <div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; </div>
147
- <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">return</span> bugDescription;</div>
148
- <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;}</div>
149
- <div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; </div>
150
- <div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="classSVF_1_1BufferOverflowBug.html#ac985d855e598175618b517259b6d3212"> 79</a></span>&#160;<span class="keywordtype">void</span> BufferOverflowBug::printBugToTerminal()<span class="keyword"> const</span></div>
151
- <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="keyword"></span>{</div>
152
- <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; stringstream bugInfo;</div>
153
- <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">if</span>(FullBufferOverflowBug::classof(<span class="keyword">this</span>))</div>
154
- <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; {</div>
155
- <div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a10504db25b86bc7f74aebb9c54f04cb3">SVFUtil::bugMsg1</a>(<span class="stringliteral">&quot;\t Full Overflow :&quot;</span>) &lt;&lt; <span class="stringliteral">&quot; accessing at : (&quot;</span></div>
156
- <div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; &lt;&lt; GenericBug::getLoc() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
157
- <div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; </div>
158
- <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; }</div>
159
- <div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">else</span></div>
160
- <div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; {</div>
161
- <div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a10504db25b86bc7f74aebb9c54f04cb3">SVFUtil::bugMsg1</a>(<span class="stringliteral">&quot;\t Partial Overflow :&quot;</span>) &lt;&lt; <span class="stringliteral">&quot; accessing at : (&quot;</span></div>
162
- <div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; &lt;&lt; GenericBug::getLoc() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
163
- <div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; }</div>
164
- <div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; bugInfo &lt;&lt; <span class="stringliteral">&quot;\t\t allocate size : [&quot;</span> &lt;&lt; allocLowerBound &lt;&lt; <span class="stringliteral">&quot;, &quot;</span> &lt;&lt; allocUpperBound &lt;&lt; <span class="stringliteral">&quot;], &quot;</span>;</div>
165
- <div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; bugInfo &lt;&lt; <span class="stringliteral">&quot;access size : [&quot;</span> &lt;&lt; accessLowerBound &lt;&lt; <span class="stringliteral">&quot;, &quot;</span> &lt;&lt; accessUpperBound &lt;&lt; <span class="stringliteral">&quot;]\n&quot;</span>;</div>
166
- <div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t Info : \n&quot;</span> &lt;&lt; bugInfo.str();</div>
167
- <div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t Events : \n&quot;</span>;</div>
168
- <div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; </div>
169
- <div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> event : bugEventStack)</div>
170
- <div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; {</div>
171
- <div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">switch</span>(event.getEventType())</div>
172
- <div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; {</div>
173
- <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">case</span> SVFBugEvent::CallSite:</div>
117
+ <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; {GenericBug::DOUBLEFREE, <span class="stringliteral">&quot;Double Free&quot;</span>},</div>
118
+ <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; {GenericBug::FULLNULLPTRDEREFERENCE, <span class="stringliteral">&quot;Full Null Ptr Dereference&quot;</span>},</div>
119
+ <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; {GenericBug::PARTIALNULLPTRDEREFERENCE, <span class="stringliteral">&quot;Partial Null Ptr Dereference&quot;</span>}</div>
120
+ <div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;};</div>
121
+ <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; </div>
122
+ <div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="classSVF_1_1GenericBug.html#abbc86875488c27e53e5c36e95c472b20"> 51</a></span>&#160;<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> GenericBug::getLoc()<span class="keyword"> const</span></div>
123
+ <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword"></span>{</div>
124
+ <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBugEvent.html">SVFBugEvent</a>&amp;sourceInstEvent = bugEventStack.at(bugEventStack.size() -1);</div>
125
+ <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; assert(sourceInstEvent.<a class="code" href="classSVF_1_1SVFBugEvent.html#a7ded0022f3852a08a05c67aeae77162f">getEventType</a>() == SVFBugEvent::SourceInst &amp;&amp; <span class="stringliteral">&quot;bugEventStack top should be a SourceInst event&quot;</span>);</div>
126
+ <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordflow">return</span> sourceInstEvent.<a class="code" href="classSVF_1_1SVFBugEvent.html#a5b3fcd366e5275927eb66a02dc6040f8">getEventLoc</a>();</div>
127
+ <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;}</div>
128
+ <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; </div>
129
+ <div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classSVF_1_1GenericBug.html#afad49e3f62083345138932ffadf567dd"> 58</a></span>&#160;<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> GenericBug::getFuncName()<span class="keyword"> const</span></div>
130
+ <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="keyword"></span>{</div>
131
+ <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBugEvent.html">SVFBugEvent</a>&amp;sourceInstEvent = bugEventStack.at(bugEventStack.size() -1);</div>
132
+ <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; assert(sourceInstEvent.<a class="code" href="classSVF_1_1SVFBugEvent.html#a7ded0022f3852a08a05c67aeae77162f">getEventType</a>() == SVFBugEvent::SourceInst &amp;&amp; <span class="stringliteral">&quot;bugEventStack top should be a SourceInst event&quot;</span>);</div>
133
+ <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">return</span> sourceInstEvent.<a class="code" href="classSVF_1_1SVFBugEvent.html#ad3bcb02563f952edd43ab5a7276bd57d">getFuncName</a>();</div>
134
+ <div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;}</div>
135
+ <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; </div>
136
+ <div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classSVF_1_1BufferOverflowBug.html#a192bb246ed947f33cf7b02493c8fded8"> 65</a></span>&#160;<a class="code" href="structcJSON.html">cJSON</a> *BufferOverflowBug::getBugDescription()<span class="keyword"> const</span></div>
137
+ <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="keyword"></span>{</div>
138
+ <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugDescription = cJSON_CreateObject();</div>
139
+ <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *allocLB = cJSON_CreateNumber(allocLowerBound);</div>
140
+ <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *allocUB = cJSON_CreateNumber(allocUpperBound);</div>
141
+ <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *accessLB = cJSON_CreateNumber(accessLowerBound);</div>
142
+ <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *accessUB = cJSON_CreateNumber(accessUpperBound);</div>
143
+ <div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; </div>
144
+ <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; cJSON_AddItemToObject(bugDescription, <span class="stringliteral">&quot;AllocLowerBound&quot;</span>, allocLB);</div>
145
+ <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; cJSON_AddItemToObject(bugDescription, <span class="stringliteral">&quot;AllocUpperBound&quot;</span>, allocUB);</div>
146
+ <div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; cJSON_AddItemToObject(bugDescription, <span class="stringliteral">&quot;AccessLowerBound&quot;</span>, accessLB);</div>
147
+ <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; cJSON_AddItemToObject(bugDescription, <span class="stringliteral">&quot;AccessUpperBound&quot;</span>, accessUB);</div>
148
+ <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; </div>
149
+ <div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">return</span> bugDescription;</div>
150
+ <div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;}</div>
151
+ <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; </div>
152
+ <div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classSVF_1_1BufferOverflowBug.html#ac985d855e598175618b517259b6d3212"> 81</a></span>&#160;<span class="keywordtype">void</span> BufferOverflowBug::printBugToTerminal()<span class="keyword"> const</span></div>
153
+ <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="keyword"></span>{</div>
154
+ <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; stringstream bugInfo;</div>
155
+ <div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">if</span>(FullBufferOverflowBug::classof(<span class="keyword">this</span>))</div>
156
+ <div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; {</div>
157
+ <div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a10504db25b86bc7f74aebb9c54f04cb3">SVFUtil::bugMsg1</a>(<span class="stringliteral">&quot;\t Full Overflow :&quot;</span>) &lt;&lt; <span class="stringliteral">&quot; accessing at : (&quot;</span></div>
158
+ <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; &lt;&lt; GenericBug::getLoc() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
159
+ <div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; </div>
160
+ <div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; }</div>
161
+ <div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">else</span></div>
162
+ <div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; {</div>
163
+ <div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a10504db25b86bc7f74aebb9c54f04cb3">SVFUtil::bugMsg1</a>(<span class="stringliteral">&quot;\t Partial Overflow :&quot;</span>) &lt;&lt; <span class="stringliteral">&quot; accessing at : (&quot;</span></div>
164
+ <div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; &lt;&lt; GenericBug::getLoc() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
165
+ <div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; }</div>
166
+ <div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; bugInfo &lt;&lt; <span class="stringliteral">&quot;\t\t allocate size : [&quot;</span> &lt;&lt; allocLowerBound &lt;&lt; <span class="stringliteral">&quot;, &quot;</span> &lt;&lt; allocUpperBound &lt;&lt; <span class="stringliteral">&quot;], &quot;</span>;</div>
167
+ <div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; bugInfo &lt;&lt; <span class="stringliteral">&quot;access size : [&quot;</span> &lt;&lt; accessLowerBound &lt;&lt; <span class="stringliteral">&quot;, &quot;</span> &lt;&lt; accessUpperBound &lt;&lt; <span class="stringliteral">&quot;]\n&quot;</span>;</div>
168
+ <div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t Info : \n&quot;</span> &lt;&lt; bugInfo.str();</div>
169
+ <div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t Events : \n&quot;</span>;</div>
170
+ <div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; </div>
171
+ <div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> event : bugEventStack)</div>
172
+ <div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; {</div>
173
+ <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">switch</span>(event.getEventType())</div>
174
174
  <div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; {</div>
175
- <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t callsite at : ( &quot;</span> &lt;&lt; <span class="keyword">event</span>.getEventLoc() &lt;&lt; <span class="stringliteral">&quot; )\n&quot;</span>;</div>
176
- <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">break</span>;</div>
177
- <div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; }</div>
178
- <div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">default</span>:</div>
179
- <div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; {</div>
180
- <div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="comment">// TODO: implement more events when needed</span></div>
181
- <div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">break</span>;</div>
182
- <div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; }</div>
183
- <div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div>
184
- <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; }</div>
185
- <div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;}</div>
186
- <div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; </div>
187
- <div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="classSVF_1_1NeverFreeBug.html#a0e52a0f35ff4d536f2de27a22139e59c"> 116</a></span>&#160;<a class="code" href="structcJSON.html">cJSON</a> * NeverFreeBug::getBugDescription()<span class="keyword"> const</span></div>
188
- <div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="keyword"></span>{</div>
189
- <div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugDescription = cJSON_CreateObject();</div>
190
- <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">return</span> bugDescription;</div>
191
- <div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;}</div>
192
- <div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; </div>
193
- <div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="classSVF_1_1NeverFreeBug.html#ac20c926cb9a72c5913afcf6877d04791"> 122</a></span>&#160;<span class="keywordtype">void</span> NeverFreeBug::printBugToTerminal()<span class="keyword"> const</span></div>
194
- <div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="keyword"></span>{</div>
195
- <div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a10504db25b86bc7f74aebb9c54f04cb3">SVFUtil::bugMsg1</a>(<span class="stringliteral">&quot;\t NeverFree :&quot;</span>) &lt;&lt; <span class="stringliteral">&quot; memory allocation at : (&quot;</span></div>
196
- <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; &lt;&lt; GenericBug::getLoc() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
197
- <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;}</div>
198
- <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; </div>
199
- <div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="classSVF_1_1PartialLeakBug.html#abd956a30bc4f8b1e25826149d20ea2b5"> 128</a></span>&#160;<a class="code" href="structcJSON.html">cJSON</a> * PartialLeakBug::getBugDescription()<span class="keyword"> const</span></div>
200
- <div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="keyword"></span>{</div>
201
- <div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugDescription = cJSON_CreateObject();</div>
202
- <div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *pathInfo = cJSON_CreateArray();</div>
203
- <div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">auto</span> lastBranchEventIt = bugEventStack.end() - 1;</div>
204
- <div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> eventIt = bugEventStack.begin(); eventIt != lastBranchEventIt; eventIt++)</div>
205
- <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; {</div>
206
- <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *newBranch = cJSON_CreateObject();</div>
207
- <div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *branchLoc = cJSON_Parse((*eventIt).getEventLoc().c_str());</div>
208
- <div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">if</span>(branchLoc == <span class="keyword">nullptr</span>) branchLoc = cJSON_CreateObject();</div>
209
- <div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; </div>
210
- <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *branchCondition = cJSON_CreateString((*eventIt).getEventDescription().c_str());</div>
175
+ <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">case</span> SVFBugEvent::CallSite:</div>
176
+ <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; {</div>
177
+ <div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t callsite at : ( &quot;</span> &lt;&lt; <span class="keyword">event</span>.getEventLoc() &lt;&lt; <span class="stringliteral">&quot; )\n&quot;</span>;</div>
178
+ <div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">break</span>;</div>
179
+ <div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; }</div>
180
+ <div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">default</span>:</div>
181
+ <div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; {</div>
182
+ <div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="comment">// TODO: implement more events when needed</span></div>
183
+ <div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">break</span>;</div>
184
+ <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; }</div>
185
+ <div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div>
186
+ <div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; }</div>
187
+ <div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;}</div>
188
+ <div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; </div>
189
+ <div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="classSVF_1_1NeverFreeBug.html#a0e52a0f35ff4d536f2de27a22139e59c"> 118</a></span>&#160;<a class="code" href="structcJSON.html">cJSON</a> * NeverFreeBug::getBugDescription()<span class="keyword"> const</span></div>
190
+ <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="keyword"></span>{</div>
191
+ <div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugDescription = cJSON_CreateObject();</div>
192
+ <div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">return</span> bugDescription;</div>
193
+ <div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;}</div>
194
+ <div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; </div>
195
+ <div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="classSVF_1_1NeverFreeBug.html#ac20c926cb9a72c5913afcf6877d04791"> 124</a></span>&#160;<span class="keywordtype">void</span> NeverFreeBug::printBugToTerminal()<span class="keyword"> const</span></div>
196
+ <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="keyword"></span>{</div>
197
+ <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a10504db25b86bc7f74aebb9c54f04cb3">SVFUtil::bugMsg1</a>(<span class="stringliteral">&quot;\t NeverFree :&quot;</span>) &lt;&lt; <span class="stringliteral">&quot; memory allocation at : (&quot;</span></div>
198
+ <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; &lt;&lt; GenericBug::getLoc() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
199
+ <div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;}</div>
200
+ <div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; </div>
201
+ <div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="classSVF_1_1PartialLeakBug.html#abd956a30bc4f8b1e25826149d20ea2b5"> 130</a></span>&#160;<a class="code" href="structcJSON.html">cJSON</a> * PartialLeakBug::getBugDescription()<span class="keyword"> const</span></div>
202
+ <div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="keyword"></span>{</div>
203
+ <div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugDescription = cJSON_CreateObject();</div>
204
+ <div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *pathInfo = cJSON_CreateArray();</div>
205
+ <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">auto</span> lastBranchEventIt = bugEventStack.end() - 1;</div>
206
+ <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> eventIt = bugEventStack.begin(); eventIt != lastBranchEventIt; eventIt++)</div>
207
+ <div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; {</div>
208
+ <div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *newBranch = cJSON_CreateObject();</div>
209
+ <div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *branchLoc = cJSON_Parse((*eventIt).getEventLoc().c_str());</div>
210
+ <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">if</span>(branchLoc == <span class="keyword">nullptr</span>) branchLoc = cJSON_CreateObject();</div>
211
211
  <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; </div>
212
- <div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; cJSON_AddItemToObject(newBranch, <span class="stringliteral">&quot;BranchLoc&quot;</span>, branchLoc);</div>
213
- <div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; cJSON_AddItemToObject(newBranch, <span class="stringliteral">&quot;BranchCond&quot;</span>, branchCondition);</div>
214
- <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; </div>
215
- <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; cJSON_AddItemToArray(pathInfo, newBranch);</div>
216
- <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; }</div>
217
- <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; </div>
218
- <div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; cJSON_AddItemToObject(bugDescription, <span class="stringliteral">&quot;ConditionalFreePath&quot;</span>, pathInfo);</div>
212
+ <div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *branchCondition = cJSON_CreateString((*eventIt).getEventDescription().c_str());</div>
213
+ <div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; </div>
214
+ <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; cJSON_AddItemToObject(newBranch, <span class="stringliteral">&quot;BranchLoc&quot;</span>, branchLoc);</div>
215
+ <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; cJSON_AddItemToObject(newBranch, <span class="stringliteral">&quot;BranchCond&quot;</span>, branchCondition);</div>
216
+ <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; </div>
217
+ <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; cJSON_AddItemToArray(pathInfo, newBranch);</div>
218
+ <div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; }</div>
219
219
  <div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; </div>
220
- <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">return</span> bugDescription;</div>
221
- <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;}</div>
222
- <div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; </div>
223
- <div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="classSVF_1_1PartialLeakBug.html#aa3acf06e90939896a86c449260c2e4b4"> 152</a></span>&#160;<span class="keywordtype">void</span> PartialLeakBug::printBugToTerminal()<span class="keyword"> const</span></div>
224
- <div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="keyword"></span>{</div>
225
- <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ac25f6dfcc9118ffd80244a771bdee535">SVFUtil::bugMsg2</a>(<span class="stringliteral">&quot;\t PartialLeak :&quot;</span>) &lt;&lt; <span class="stringliteral">&quot; memory allocation at : (&quot;</span></div>
226
- <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; &lt;&lt; GenericBug::getLoc() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
227
- <div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; </div>
228
- <div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t conditional free path: \n&quot;</span>;</div>
229
- <div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">auto</span> lastBranchEventIt = bugEventStack.end() - 1;</div>
230
- <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> eventIt = bugEventStack.begin(); eventIt != lastBranchEventIt; eventIt++)</div>
231
- <div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; {</div>
232
- <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t --&gt; (&quot;</span> &lt;&lt; (*eventIt).getEventLoc() &lt;&lt; <span class="stringliteral">&quot;|&quot;</span> &lt;&lt; (*eventIt).getEventDescription() &lt;&lt; <span class="stringliteral">&quot;) \n&quot;</span>;</div>
233
- <div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; }</div>
234
- <div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
235
- <div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;}</div>
236
- <div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; </div>
237
- <div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="classSVF_1_1DoubleFreeBug.html#acf0d2ffb52d0b322421a5556d41a1d63"> 166</a></span>&#160;<a class="code" href="structcJSON.html">cJSON</a> * DoubleFreeBug::getBugDescription()<span class="keyword"> const</span></div>
238
- <div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="keyword"></span>{</div>
239
- <div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugDescription = cJSON_CreateObject();</div>
240
- <div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; </div>
241
- <div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *pathInfo = cJSON_CreateArray();</div>
242
- <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keyword">auto</span> lastBranchEventIt = bugEventStack.end() - 1;</div>
243
- <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> eventIt = bugEventStack.begin(); eventIt != lastBranchEventIt; eventIt++)</div>
244
- <div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; {</div>
245
- <div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *newBranch = cJSON_CreateObject();</div>
246
- <div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *branchLoc = cJSON_Parse((*eventIt).getEventLoc().c_str());</div>
247
- <div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">if</span>(branchLoc == <span class="keyword">nullptr</span>) branchLoc = cJSON_CreateObject();</div>
248
- <div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *branchCondition = cJSON_CreateString((*eventIt).getEventDescription().c_str());</div>
249
- <div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; </div>
250
- <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; cJSON_AddItemToObject(newBranch, <span class="stringliteral">&quot;BranchLoc&quot;</span>, branchLoc);</div>
251
- <div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; cJSON_AddItemToObject(newBranch, <span class="stringliteral">&quot;BranchCond&quot;</span>, branchCondition);</div>
252
- <div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; </div>
253
- <div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; cJSON_AddItemToArray(pathInfo, newBranch);</div>
254
- <div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; }</div>
255
- <div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; cJSON_AddItemToObject(bugDescription, <span class="stringliteral">&quot;DoubleFreePath&quot;</span>, pathInfo);</div>
256
- <div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; </div>
257
- <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">return</span> bugDescription;</div>
258
- <div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;}</div>
259
- <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; </div>
260
- <div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="classSVF_1_1DoubleFreeBug.html#af67320d8ebd56aec6ecddc3f44ec09b9"> 189</a></span>&#160;<span class="keywordtype">void</span> DoubleFreeBug::printBugToTerminal()<span class="keyword"> const</span></div>
261
- <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="keyword"></span>{</div>
262
- <div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ac25f6dfcc9118ffd80244a771bdee535">SVFUtil::bugMsg2</a>(<span class="stringliteral">&quot;\t Double Free :&quot;</span>) &lt;&lt; <span class="stringliteral">&quot; memory allocation at : (&quot;</span></div>
263
- <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; &lt;&lt; GenericBug::getLoc() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
264
- <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; </div>
265
- <div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t double free path: \n&quot;</span>;</div>
266
- <div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keyword">auto</span> lastBranchEventIt = bugEventStack.end() - 1;</div>
267
- <div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> eventIt = bugEventStack.begin(); eventIt != lastBranchEventIt; eventIt++)</div>
268
- <div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; {</div>
269
- <div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t --&gt; (&quot;</span> &lt;&lt; (*eventIt).getEventLoc() &lt;&lt; <span class="stringliteral">&quot;|&quot;</span> &lt;&lt; (*eventIt).getEventDescription() &lt;&lt; <span class="stringliteral">&quot;) \n&quot;</span>;</div>
270
- <div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; }</div>
271
- <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
272
- <div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;}</div>
273
- <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; </div>
274
- <div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="classSVF_1_1FileNeverCloseBug.html#a80257bc6a9cf4eecfa402def59993e6e"> 203</a></span>&#160;<a class="code" href="structcJSON.html">cJSON</a> * FileNeverCloseBug::getBugDescription()<span class="keyword"> const</span></div>
275
- <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="keyword"></span>{</div>
276
- <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugDescription = cJSON_CreateObject();</div>
277
- <div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">return</span> bugDescription;</div>
278
- <div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;}</div>
279
- <div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; </div>
280
- <div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="classSVF_1_1FileNeverCloseBug.html#ae3d9bb5952fa858780ec50148e474388"> 209</a></span>&#160;<span class="keywordtype">void</span> FileNeverCloseBug::printBugToTerminal()<span class="keyword"> const</span></div>
281
- <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="keyword"></span>{</div>
282
- <div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a10504db25b86bc7f74aebb9c54f04cb3">SVFUtil::bugMsg1</a>(<span class="stringliteral">&quot;\t FileNeverClose :&quot;</span>) &lt;&lt; <span class="stringliteral">&quot; file open location at : (&quot;</span></div>
283
- <div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; &lt;&lt; GenericBug::getLoc() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
284
- <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;}</div>
285
- <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; </div>
286
- <div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="classSVF_1_1FilePartialCloseBug.html#a16b96f3c79cf5edae0f0f02e52344283"> 215</a></span>&#160;<a class="code" href="structcJSON.html">cJSON</a> * FilePartialCloseBug::getBugDescription()<span class="keyword"> const</span></div>
287
- <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="keyword"></span>{</div>
288
- <div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugDescription = cJSON_CreateObject();</div>
289
- <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; </div>
290
- <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *pathInfo = cJSON_CreateArray();</div>
220
+ <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; cJSON_AddItemToObject(bugDescription, <span class="stringliteral">&quot;ConditionalFreePath&quot;</span>, pathInfo);</div>
221
+ <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; </div>
222
+ <div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">return</span> bugDescription;</div>
223
+ <div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;}</div>
224
+ <div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; </div>
225
+ <div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="classSVF_1_1PartialLeakBug.html#aa3acf06e90939896a86c449260c2e4b4"> 154</a></span>&#160;<span class="keywordtype">void</span> PartialLeakBug::printBugToTerminal()<span class="keyword"> const</span></div>
226
+ <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="keyword"></span>{</div>
227
+ <div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ac25f6dfcc9118ffd80244a771bdee535">SVFUtil::bugMsg2</a>(<span class="stringliteral">&quot;\t PartialLeak :&quot;</span>) &lt;&lt; <span class="stringliteral">&quot; memory allocation at : (&quot;</span></div>
228
+ <div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; &lt;&lt; GenericBug::getLoc() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
229
+ <div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; </div>
230
+ <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t conditional free path: \n&quot;</span>;</div>
231
+ <div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">auto</span> lastBranchEventIt = bugEventStack.end() - 1;</div>
232
+ <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> eventIt = bugEventStack.begin(); eventIt != lastBranchEventIt; eventIt++)</div>
233
+ <div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; {</div>
234
+ <div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t --&gt; (&quot;</span> &lt;&lt; (*eventIt).getEventLoc() &lt;&lt; <span class="stringliteral">&quot;|&quot;</span> &lt;&lt; (*eventIt).getEventDescription() &lt;&lt; <span class="stringliteral">&quot;) \n&quot;</span>;</div>
235
+ <div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; }</div>
236
+ <div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
237
+ <div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;}</div>
238
+ <div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; </div>
239
+ <div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="classSVF_1_1DoubleFreeBug.html#acf0d2ffb52d0b322421a5556d41a1d63"> 168</a></span>&#160;<a class="code" href="structcJSON.html">cJSON</a> * DoubleFreeBug::getBugDescription()<span class="keyword"> const</span></div>
240
+ <div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="keyword"></span>{</div>
241
+ <div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugDescription = cJSON_CreateObject();</div>
242
+ <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; </div>
243
+ <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *pathInfo = cJSON_CreateArray();</div>
244
+ <div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keyword">auto</span> lastBranchEventIt = bugEventStack.end() - 1;</div>
245
+ <div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> eventIt = bugEventStack.begin(); eventIt != lastBranchEventIt; eventIt++)</div>
246
+ <div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; {</div>
247
+ <div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *newBranch = cJSON_CreateObject();</div>
248
+ <div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *branchLoc = cJSON_Parse((*eventIt).getEventLoc().c_str());</div>
249
+ <div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">if</span>(branchLoc == <span class="keyword">nullptr</span>) branchLoc = cJSON_CreateObject();</div>
250
+ <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *branchCondition = cJSON_CreateString((*eventIt).getEventDescription().c_str());</div>
251
+ <div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; </div>
252
+ <div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; cJSON_AddItemToObject(newBranch, <span class="stringliteral">&quot;BranchLoc&quot;</span>, branchLoc);</div>
253
+ <div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; cJSON_AddItemToObject(newBranch, <span class="stringliteral">&quot;BranchCond&quot;</span>, branchCondition);</div>
254
+ <div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; </div>
255
+ <div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; cJSON_AddItemToArray(pathInfo, newBranch);</div>
256
+ <div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; }</div>
257
+ <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; cJSON_AddItemToObject(bugDescription, <span class="stringliteral">&quot;DoubleFreePath&quot;</span>, pathInfo);</div>
258
+ <div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; </div>
259
+ <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">return</span> bugDescription;</div>
260
+ <div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;}</div>
261
+ <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; </div>
262
+ <div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="classSVF_1_1DoubleFreeBug.html#af67320d8ebd56aec6ecddc3f44ec09b9"> 191</a></span>&#160;<span class="keywordtype">void</span> DoubleFreeBug::printBugToTerminal()<span class="keyword"> const</span></div>
263
+ <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="keyword"></span>{</div>
264
+ <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ac25f6dfcc9118ffd80244a771bdee535">SVFUtil::bugMsg2</a>(<span class="stringliteral">&quot;\t Double Free :&quot;</span>) &lt;&lt; <span class="stringliteral">&quot; memory allocation at : (&quot;</span></div>
265
+ <div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; &lt;&lt; GenericBug::getLoc() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
266
+ <div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; </div>
267
+ <div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t double free path: \n&quot;</span>;</div>
268
+ <div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keyword">auto</span> lastBranchEventIt = bugEventStack.end() - 1;</div>
269
+ <div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> eventIt = bugEventStack.begin(); eventIt != lastBranchEventIt; eventIt++)</div>
270
+ <div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; {</div>
271
+ <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t --&gt; (&quot;</span> &lt;&lt; (*eventIt).getEventLoc() &lt;&lt; <span class="stringliteral">&quot;|&quot;</span> &lt;&lt; (*eventIt).getEventDescription() &lt;&lt; <span class="stringliteral">&quot;) \n&quot;</span>;</div>
272
+ <div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; }</div>
273
+ <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
274
+ <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;}</div>
275
+ <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; </div>
276
+ <div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="classSVF_1_1FileNeverCloseBug.html#a80257bc6a9cf4eecfa402def59993e6e"> 205</a></span>&#160;<a class="code" href="structcJSON.html">cJSON</a> * FileNeverCloseBug::getBugDescription()<span class="keyword"> const</span></div>
277
+ <div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="keyword"></span>{</div>
278
+ <div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugDescription = cJSON_CreateObject();</div>
279
+ <div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">return</span> bugDescription;</div>
280
+ <div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;}</div>
281
+ <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; </div>
282
+ <div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="classSVF_1_1FileNeverCloseBug.html#ae3d9bb5952fa858780ec50148e474388"> 211</a></span>&#160;<span class="keywordtype">void</span> FileNeverCloseBug::printBugToTerminal()<span class="keyword"> const</span></div>
283
+ <div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="keyword"></span>{</div>
284
+ <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a10504db25b86bc7f74aebb9c54f04cb3">SVFUtil::bugMsg1</a>(<span class="stringliteral">&quot;\t FileNeverClose :&quot;</span>) &lt;&lt; <span class="stringliteral">&quot; file open location at : (&quot;</span></div>
285
+ <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; &lt;&lt; GenericBug::getLoc() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
286
+ <div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;}</div>
287
+ <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; </div>
288
+ <div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="classSVF_1_1FilePartialCloseBug.html#a16b96f3c79cf5edae0f0f02e52344283"> 217</a></span>&#160;<a class="code" href="structcJSON.html">cJSON</a> * FilePartialCloseBug::getBugDescription()<span class="keyword"> const</span></div>
289
+ <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="keyword"></span>{</div>
290
+ <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugDescription = cJSON_CreateObject();</div>
291
291
  <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; </div>
292
- <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keyword">auto</span> lastBranchEventIt = bugEventStack.end() - 1;</div>
293
- <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> eventIt = bugEventStack.begin(); eventIt != lastBranchEventIt; eventIt++)</div>
294
- <div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; {</div>
295
- <div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *newBranch = cJSON_CreateObject();</div>
296
- <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *branchLoc = cJSON_Parse((*eventIt).getEventLoc().c_str());</div>
297
- <div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">if</span>(branchLoc == <span class="keyword">nullptr</span>) branchLoc = cJSON_CreateObject();</div>
298
- <div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *branchCondition = cJSON_CreateString((*eventIt).getEventDescription().c_str());</div>
299
- <div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; </div>
300
- <div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; cJSON_AddItemToObject(newBranch, <span class="stringliteral">&quot;BranchLoc&quot;</span>, branchLoc);</div>
301
- <div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; cJSON_AddItemToObject(newBranch, <span class="stringliteral">&quot;BranchCond&quot;</span>, branchCondition);</div>
302
- <div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; </div>
303
- <div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; cJSON_AddItemToArray(pathInfo, newBranch);</div>
304
- <div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; }</div>
305
- <div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; cJSON_AddItemToObject(bugDescription, <span class="stringliteral">&quot;ConditionalFileClosePath&quot;</span>, pathInfo);</div>
306
- <div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; </div>
307
- <div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">return</span> bugDescription;</div>
308
- <div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;}</div>
309
- <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; </div>
310
- <div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="classSVF_1_1FilePartialCloseBug.html#a32576eee4de3b4c094c3f8a5501c7b99"> 239</a></span>&#160;<span class="keywordtype">void</span> FilePartialCloseBug::printBugToTerminal()<span class="keyword"> const</span></div>
311
- <div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="keyword"></span>{</div>
312
- <div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ac25f6dfcc9118ffd80244a771bdee535">SVFUtil::bugMsg2</a>(<span class="stringliteral">&quot;\t PartialFileClose :&quot;</span>) &lt;&lt; <span class="stringliteral">&quot; file open location at : (&quot;</span></div>
313
- <div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; &lt;&lt; GenericBug::getLoc() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
314
- <div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; </div>
315
- <div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t conditional file close path: \n&quot;</span>;</div>
316
- <div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keyword">auto</span> lastBranchEventIt = bugEventStack.end() - 1;</div>
317
- <div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> eventIt = bugEventStack.begin(); eventIt != lastBranchEventIt; eventIt++)</div>
318
- <div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; {</div>
319
- <div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t --&gt; (&quot;</span> &lt;&lt; (*eventIt).getEventLoc() &lt;&lt; <span class="stringliteral">&quot;|&quot;</span> &lt;&lt; (*eventIt).getEventDescription() &lt;&lt; <span class="stringliteral">&quot;) \n&quot;</span>;</div>
320
- <div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; }</div>
321
- <div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
322
- <div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;}</div>
323
- <div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; </div>
324
- <div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="classSVF_1_1FullNullPtrDereferenceBug.html#a8f057178ee7182d691dbb3103d0d0d43"> 253</a></span>&#160;<a class="code" href="structcJSON.html">cJSON</a> *FullNullPtrDereferenceBug::getBugDescription()<span class="keyword"> const</span></div>
325
- <div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="keyword"></span>{</div>
326
- <div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugDescription = cJSON_CreateObject();</div>
327
- <div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">return</span> bugDescription;</div>
328
- <div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;}</div>
329
- <div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; </div>
330
- <div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="classSVF_1_1FullNullPtrDereferenceBug.html#ae269f1b62e89f8fcca783865d6ce8723"> 259</a></span>&#160;<span class="keywordtype">void</span> FullNullPtrDereferenceBug::printBugToTerminal()<span class="keyword"> const</span></div>
331
- <div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="keyword"></span>{</div>
332
- <div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ac25f6dfcc9118ffd80244a771bdee535">SVFUtil::bugMsg2</a>(<span class="stringliteral">&quot;\t FullNullPtrDereference :&quot;</span>) &lt;&lt; <span class="stringliteral">&quot; dereference at : (&quot;</span></div>
333
- <div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; &lt;&lt; GenericBug::getLoc() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
334
- <div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;}</div>
335
- <div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; </div>
336
- <div class="line"><a name="l00265"></a><span class="lineno"><a class="line" href="classSVF_1_1PartialNullPtrDereferenceBug.html#a910f2e839e1e722655fbb2266c15f136"> 265</a></span>&#160;<a class="code" href="structcJSON.html">cJSON</a> *PartialNullPtrDereferenceBug::getBugDescription()<span class="keyword"> const</span></div>
337
- <div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="keyword"></span>{</div>
338
- <div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugDescription = cJSON_CreateObject();</div>
339
- <div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">return</span> bugDescription;</div>
340
- <div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;}</div>
341
- <div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; </div>
342
- <div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="classSVF_1_1PartialNullPtrDereferenceBug.html#acc860880d548ea2cf5b63f0f7ad11456"> 271</a></span>&#160;<span class="keywordtype">void</span> PartialNullPtrDereferenceBug::printBugToTerminal()<span class="keyword"> const</span></div>
343
- <div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="keyword"></span>{</div>
344
- <div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ac25f6dfcc9118ffd80244a771bdee535">SVFUtil::bugMsg2</a>(<span class="stringliteral">&quot;\t PartialNullPtrDereference :&quot;</span>) &lt;&lt; <span class="stringliteral">&quot; dereference at : (&quot;</span></div>
345
- <div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; &lt;&lt; GenericBug::getLoc() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
346
- <div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;}</div>
347
- <div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; </div>
348
- <div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBugEvent.html#ad3bcb02563f952edd43ab5a7276bd57d"> 277</a></span>&#160;<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> SVFBugEvent::getFuncName()<span class="keyword"> const</span></div>
349
- <div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="keyword"></span>{</div>
350
- <div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">return</span> eventInst-&gt;getFunction()-&gt;getName();</div>
351
- <div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;}</div>
352
- <div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; </div>
353
- <div class="line"><a name="l00282"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBugEvent.html#a5b3fcd366e5275927eb66a02dc6040f8"> 282</a></span>&#160;<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> SVFBugEvent::getEventLoc()<span class="keyword"> const</span></div>
354
- <div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="keyword"></span>{</div>
355
- <div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">return</span> eventInst-&gt;getSourceLoc();</div>
356
- <div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;}</div>
357
- <div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; </div>
358
- <div class="line"><a name="l00287"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBugEvent.html#a7c5d28996f9715d0f90d664b93477a23"> 287</a></span>&#160;<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> SVFBugEvent::getEventDescription()<span class="keyword"> const</span></div>
359
- <div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="keyword"></span>{</div>
360
- <div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keywordflow">switch</span>(getEventType())</div>
361
- <div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; {</div>
362
- <div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordflow">case</span> SVFBugEvent::Branch:</div>
292
+ <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *pathInfo = cJSON_CreateArray();</div>
293
+ <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; </div>
294
+ <div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keyword">auto</span> lastBranchEventIt = bugEventStack.end() - 1;</div>
295
+ <div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> eventIt = bugEventStack.begin(); eventIt != lastBranchEventIt; eventIt++)</div>
296
+ <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; {</div>
297
+ <div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *newBranch = cJSON_CreateObject();</div>
298
+ <div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *branchLoc = cJSON_Parse((*eventIt).getEventLoc().c_str());</div>
299
+ <div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">if</span>(branchLoc == <span class="keyword">nullptr</span>) branchLoc = cJSON_CreateObject();</div>
300
+ <div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *branchCondition = cJSON_CreateString((*eventIt).getEventDescription().c_str());</div>
301
+ <div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; </div>
302
+ <div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; cJSON_AddItemToObject(newBranch, <span class="stringliteral">&quot;BranchLoc&quot;</span>, branchLoc);</div>
303
+ <div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; cJSON_AddItemToObject(newBranch, <span class="stringliteral">&quot;BranchCond&quot;</span>, branchCondition);</div>
304
+ <div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; </div>
305
+ <div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; cJSON_AddItemToArray(pathInfo, newBranch);</div>
306
+ <div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; }</div>
307
+ <div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; cJSON_AddItemToObject(bugDescription, <span class="stringliteral">&quot;ConditionalFileClosePath&quot;</span>, pathInfo);</div>
308
+ <div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; </div>
309
+ <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">return</span> bugDescription;</div>
310
+ <div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;}</div>
311
+ <div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; </div>
312
+ <div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="classSVF_1_1FilePartialCloseBug.html#a32576eee4de3b4c094c3f8a5501c7b99"> 241</a></span>&#160;<span class="keywordtype">void</span> FilePartialCloseBug::printBugToTerminal()<span class="keyword"> const</span></div>
313
+ <div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;<span class="keyword"></span>{</div>
314
+ <div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ac25f6dfcc9118ffd80244a771bdee535">SVFUtil::bugMsg2</a>(<span class="stringliteral">&quot;\t PartialFileClose :&quot;</span>) &lt;&lt; <span class="stringliteral">&quot; file open location at : (&quot;</span></div>
315
+ <div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; &lt;&lt; GenericBug::getLoc() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
316
+ <div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; </div>
317
+ <div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t conditional file close path: \n&quot;</span>;</div>
318
+ <div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keyword">auto</span> lastBranchEventIt = bugEventStack.end() - 1;</div>
319
+ <div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> eventIt = bugEventStack.begin(); eventIt != lastBranchEventIt; eventIt++)</div>
320
+ <div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; {</div>
321
+ <div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t --&gt; (&quot;</span> &lt;&lt; (*eventIt).getEventLoc() &lt;&lt; <span class="stringliteral">&quot;|&quot;</span> &lt;&lt; (*eventIt).getEventDescription() &lt;&lt; <span class="stringliteral">&quot;) \n&quot;</span>;</div>
322
+ <div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; }</div>
323
+ <div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
324
+ <div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;}</div>
325
+ <div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; </div>
326
+ <div class="line"><a name="l00255"></a><span class="lineno"><a class="line" href="classSVF_1_1FullNullPtrDereferenceBug.html#a8f057178ee7182d691dbb3103d0d0d43"> 255</a></span>&#160;<a class="code" href="structcJSON.html">cJSON</a> *FullNullPtrDereferenceBug::getBugDescription()<span class="keyword"> const</span></div>
327
+ <div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="keyword"></span>{</div>
328
+ <div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugDescription = cJSON_CreateObject();</div>
329
+ <div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">return</span> bugDescription;</div>
330
+ <div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;}</div>
331
+ <div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; </div>
332
+ <div class="line"><a name="l00261"></a><span class="lineno"><a class="line" href="classSVF_1_1FullNullPtrDereferenceBug.html#ae269f1b62e89f8fcca783865d6ce8723"> 261</a></span>&#160;<span class="keywordtype">void</span> FullNullPtrDereferenceBug::printBugToTerminal()<span class="keyword"> const</span></div>
333
+ <div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="keyword"></span>{</div>
334
+ <div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ac25f6dfcc9118ffd80244a771bdee535">SVFUtil::bugMsg2</a>(<span class="stringliteral">&quot;\t FullNullPtrDereference :&quot;</span>) &lt;&lt; <span class="stringliteral">&quot; dereference at : (&quot;</span></div>
335
+ <div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; &lt;&lt; GenericBug::getLoc() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
336
+ <div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;}</div>
337
+ <div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; </div>
338
+ <div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="classSVF_1_1PartialNullPtrDereferenceBug.html#a910f2e839e1e722655fbb2266c15f136"> 267</a></span>&#160;<a class="code" href="structcJSON.html">cJSON</a> *PartialNullPtrDereferenceBug::getBugDescription()<span class="keyword"> const</span></div>
339
+ <div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="keyword"></span>{</div>
340
+ <div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugDescription = cJSON_CreateObject();</div>
341
+ <div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">return</span> bugDescription;</div>
342
+ <div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;}</div>
343
+ <div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; </div>
344
+ <div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="classSVF_1_1PartialNullPtrDereferenceBug.html#acc860880d548ea2cf5b63f0f7ad11456"> 273</a></span>&#160;<span class="keywordtype">void</span> PartialNullPtrDereferenceBug::printBugToTerminal()<span class="keyword"> const</span></div>
345
+ <div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="keyword"></span>{</div>
346
+ <div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ac25f6dfcc9118ffd80244a771bdee535">SVFUtil::bugMsg2</a>(<span class="stringliteral">&quot;\t PartialNullPtrDereference :&quot;</span>) &lt;&lt; <span class="stringliteral">&quot; dereference at : (&quot;</span></div>
347
+ <div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; &lt;&lt; GenericBug::getLoc() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
348
+ <div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;}</div>
349
+ <div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; </div>
350
+ <div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBugEvent.html#ad3bcb02563f952edd43ab5a7276bd57d"> 279</a></span>&#160;<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> SVFBugEvent::getFuncName()<span class="keyword"> const</span></div>
351
+ <div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="keyword"></span>{</div>
352
+ <div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">return</span> eventInst-&gt;getFunction()-&gt;getName();</div>
353
+ <div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;}</div>
354
+ <div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; </div>
355
+ <div class="line"><a name="l00284"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBugEvent.html#a5b3fcd366e5275927eb66a02dc6040f8"> 284</a></span>&#160;<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> SVFBugEvent::getEventLoc()<span class="keyword"> const</span></div>
356
+ <div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="keyword"></span>{</div>
357
+ <div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordflow">return</span> eventInst-&gt;getSourceLoc();</div>
358
+ <div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;}</div>
359
+ <div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; </div>
360
+ <div class="line"><a name="l00289"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBugEvent.html#a7c5d28996f9715d0f90d664b93477a23"> 289</a></span>&#160;<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> SVFBugEvent::getEventDescription()<span class="keyword"> const</span></div>
361
+ <div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="keyword"></span>{</div>
362
+ <div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordflow">switch</span>(getEventType())</div>
363
363
  <div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; {</div>
364
- <div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keywordflow">if</span> (typeAndInfoFlag &amp; <a class="code" href="SVFBugReport_8h.html#a6c7cd1f1c2372251f51de3a8392faeec">BRANCHFLAGMASK</a>)</div>
365
- <div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; {</div>
366
- <div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;True&quot;</span>;</div>
367
- <div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; }</div>
368
- <div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">else</span></div>
369
- <div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; {</div>
370
- <div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;False&quot;</span>;</div>
371
- <div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; }</div>
372
- <div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">break</span>;</div>
373
- <div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; }</div>
374
- <div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">case</span> SVFBugEvent::CallSite:</div>
375
- <div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; {</div>
376
- <div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> description(<span class="stringliteral">&quot;calls &quot;</span>);</div>
377
- <div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *callee = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#ad56c48be3ba6ebb95416623256524097">SVFUtil::getCallee</a>(eventInst);</div>
378
- <div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">if</span>(callee == <span class="keyword">nullptr</span>)</div>
379
- <div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; {</div>
380
- <div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; description += <span class="stringliteral">&quot;&lt;unknown&gt;&quot;</span>;</div>
381
- <div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; }</div>
382
- <div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">else</span></div>
383
- <div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; {</div>
384
- <div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; description += callee-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">getName</a>();</div>
385
- <div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; }</div>
386
- <div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keywordflow">return</span> description;</div>
387
- <div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">break</span>;</div>
388
- <div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; }</div>
389
- <div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keywordflow">case</span> SVFBugEvent::SourceInst:</div>
390
- <div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; {</div>
391
- <div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;None&quot;</span>;</div>
392
- <div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; }</div>
393
- <div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">default</span>:</div>
394
- <div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; {</div>
395
- <div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;No such type of event!&quot;</span>);</div>
396
- <div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; abort();</div>
397
- <div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; }</div>
398
- <div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; }</div>
399
- <div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;}</div>
400
- <div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; </div>
401
- <div class="line"><a name="l00330"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBugReport.html#a4e243c7297791b306d970c19abc87ca9"> 330</a></span>&#160;SVFBugReport::~SVFBugReport()</div>
402
- <div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;{</div>
403
- <div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> bugIt: bugSet)</div>
404
- <div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; {</div>
405
- <div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keyword">delete</span> bugIt;</div>
406
- <div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; }</div>
407
- <div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;}</div>
408
- <div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; </div>
409
- <div class="line"><a name="l00338"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBugReport.html#aa119593331403f73867fddcb6ec26989"> 338</a></span>&#160;<span class="keywordtype">void</span> SVFBugReport::dumpToJsonFile(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>&amp; filePath)<span class="keyword"> const</span></div>
410
- <div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;<span class="keyword"></span>{</div>
411
- <div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; std::map&lt;u32_t, std::string&gt; eventType2Str =</div>
412
- <div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; {</div>
413
- <div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; {SVFBugEvent::CallSite, <span class="stringliteral">&quot;call site&quot;</span>},</div>
414
- <div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; {SVFBugEvent::Caller, <span class="stringliteral">&quot;caller&quot;</span>},</div>
415
- <div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; {<a class="code" href="namespaceSVF.html#abf85e29310b2e4df8925d00a5c081314">SVFBugEvent::Loop</a>, <span class="stringliteral">&quot;loop&quot;</span>},</div>
416
- <div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; {SVFBugEvent::Branch, <span class="stringliteral">&quot;branch&quot;</span>}</div>
417
- <div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; };</div>
418
- <div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; </div>
419
- <div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; ofstream jsonFile(filePath, ios::out);</div>
364
+ <div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keywordflow">case</span> SVFBugEvent::Branch:</div>
365
+ <div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; {</div>
366
+ <div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">if</span> (typeAndInfoFlag &amp; <a class="code" href="SVFBugReport_8h.html#a6c7cd1f1c2372251f51de3a8392faeec">BRANCHFLAGMASK</a>)</div>
367
+ <div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; {</div>
368
+ <div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;True&quot;</span>;</div>
369
+ <div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; }</div>
370
+ <div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">else</span></div>
371
+ <div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; {</div>
372
+ <div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;False&quot;</span>;</div>
373
+ <div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; }</div>
374
+ <div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">break</span>;</div>
375
+ <div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; }</div>
376
+ <div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordflow">case</span> SVFBugEvent::CallSite:</div>
377
+ <div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; {</div>
378
+ <div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> description(<span class="stringliteral">&quot;calls &quot;</span>);</div>
379
+ <div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *callee = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#ad56c48be3ba6ebb95416623256524097">SVFUtil::getCallee</a>(eventInst);</div>
380
+ <div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">if</span>(callee == <span class="keyword">nullptr</span>)</div>
381
+ <div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; {</div>
382
+ <div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; description += <span class="stringliteral">&quot;&lt;unknown&gt;&quot;</span>;</div>
383
+ <div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; }</div>
384
+ <div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keywordflow">else</span></div>
385
+ <div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; {</div>
386
+ <div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; description += callee-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">getName</a>();</div>
387
+ <div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; }</div>
388
+ <div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordflow">return</span> description;</div>
389
+ <div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keywordflow">break</span>;</div>
390
+ <div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; }</div>
391
+ <div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keywordflow">case</span> SVFBugEvent::SourceInst:</div>
392
+ <div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; {</div>
393
+ <div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;None&quot;</span>;</div>
394
+ <div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; }</div>
395
+ <div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keywordflow">default</span>:</div>
396
+ <div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; {</div>
397
+ <div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;No such type of event!&quot;</span>);</div>
398
+ <div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; abort();</div>
399
+ <div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; }</div>
400
+ <div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; }</div>
401
+ <div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;}</div>
402
+ <div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; </div>
403
+ <div class="line"><a name="l00332"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBugReport.html#a4e243c7297791b306d970c19abc87ca9"> 332</a></span>&#160;SVFBugReport::~SVFBugReport()</div>
404
+ <div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;{</div>
405
+ <div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> bugIt: bugSet)</div>
406
+ <div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; {</div>
407
+ <div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keyword">delete</span> bugIt;</div>
408
+ <div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; }</div>
409
+ <div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;}</div>
410
+ <div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; </div>
411
+ <div class="line"><a name="l00340"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBugReport.html#aa119593331403f73867fddcb6ec26989"> 340</a></span>&#160;<span class="keywordtype">void</span> SVFBugReport::dumpToJsonFile(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>&amp; filePath)<span class="keyword"> const</span></div>
412
+ <div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;<span class="keyword"></span>{</div>
413
+ <div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; std::map&lt;u32_t, std::string&gt; eventType2Str =</div>
414
+ <div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; {</div>
415
+ <div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; {SVFBugEvent::CallSite, <span class="stringliteral">&quot;call site&quot;</span>},</div>
416
+ <div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; {SVFBugEvent::Caller, <span class="stringliteral">&quot;caller&quot;</span>},</div>
417
+ <div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; {<a class="code" href="namespaceSVF.html#abf85e29310b2e4df8925d00a5c081314">SVFBugEvent::Loop</a>, <span class="stringliteral">&quot;loop&quot;</span>},</div>
418
+ <div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; {SVFBugEvent::Branch, <span class="stringliteral">&quot;branch&quot;</span>}</div>
419
+ <div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; };</div>
420
420
  <div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; </div>
421
- <div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; jsonFile &lt;&lt; <span class="stringliteral">&quot;[&quot;</span>;</div>
421
+ <div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; ofstream jsonFile(filePath, ios::out);</div>
422
422
  <div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; </div>
423
- <div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keywordtype">size_t</span> commaCounter = bugSet.size() - 1; <span class="comment">// comma num needed</span></div>
424
- <div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> bugPtr : bugSet)</div>
425
- <div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; {</div>
426
- <div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *singleBug = cJSON_CreateObject();</div>
427
- <div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; </div>
428
- <div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugType = cJSON_CreateString(GenericBug::BugType2Str.at(bugPtr-&gt;getBugType()).c_str());</div>
429
- <div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; cJSON_AddItemToObject(singleBug, <span class="stringliteral">&quot;DefectType&quot;</span>, bugType);</div>
430
- <div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; </div>
431
- <div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugLoc = cJSON_Parse(bugPtr-&gt;getLoc().c_str());</div>
432
- <div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordflow">if</span>(bugLoc == <span class="keyword">nullptr</span>)</div>
433
- <div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; {</div>
434
- <div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; bugLoc = cJSON_CreateObject();</div>
435
- <div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; }</div>
436
- <div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; cJSON_AddItemToObject(singleBug, <span class="stringliteral">&quot;Location&quot;</span>, bugLoc);</div>
437
- <div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; </div>
438
- <div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugFunction = cJSON_CreateString(bugPtr-&gt;getFuncName().c_str());</div>
439
- <div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; cJSON_AddItemToObject(singleBug, <span class="stringliteral">&quot;Function&quot;</span>, bugFunction);</div>
440
- <div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; </div>
441
- <div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; cJSON_AddItemToObject(singleBug, <span class="stringliteral">&quot;Description&quot;</span>, bugPtr-&gt;getBugDescription());</div>
423
+ <div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; jsonFile &lt;&lt; <span class="stringliteral">&quot;[&quot;</span>;</div>
424
+ <div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; </div>
425
+ <div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="keywordtype">size_t</span> commaCounter = bugSet.size() - 1; <span class="comment">// comma num needed</span></div>
426
+ <div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> bugPtr : bugSet)</div>
427
+ <div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; {</div>
428
+ <div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *singleBug = cJSON_CreateObject();</div>
429
+ <div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; </div>
430
+ <div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugType = cJSON_CreateString(GenericBug::BugType2Str.at(bugPtr-&gt;getBugType()).c_str());</div>
431
+ <div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; cJSON_AddItemToObject(singleBug, <span class="stringliteral">&quot;DefectType&quot;</span>, bugType);</div>
432
+ <div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; </div>
433
+ <div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugLoc = cJSON_Parse(bugPtr-&gt;getLoc().c_str());</div>
434
+ <div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordflow">if</span>(bugLoc == <span class="keyword">nullptr</span>)</div>
435
+ <div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; {</div>
436
+ <div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; bugLoc = cJSON_CreateObject();</div>
437
+ <div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; }</div>
438
+ <div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; cJSON_AddItemToObject(singleBug, <span class="stringliteral">&quot;Location&quot;</span>, bugLoc);</div>
439
+ <div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; </div>
440
+ <div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugFunction = cJSON_CreateString(bugPtr-&gt;getFuncName().c_str());</div>
441
+ <div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; cJSON_AddItemToObject(singleBug, <span class="stringliteral">&quot;Function&quot;</span>, bugFunction);</div>
442
442
  <div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; </div>
443
- <div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *eventList = cJSON_CreateArray();</div>
444
- <div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1GenericBug.html#acc65b033bfd61257d5b6fdbf932dfafe">GenericBug::EventStack</a> &amp;bugEventStack = bugPtr-&gt;getEventStack();</div>
445
- <div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keywordflow">if</span>(BufferOverflowBug::classof(bugPtr))</div>
446
- <div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; {</div>
447
- <div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="comment">// add only when bug is context sensitive</span></div>
448
- <div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBugEvent.html">SVFBugEvent</a>&amp;event : bugEventStack)</div>
449
- <div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; {</div>
450
- <div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordflow">if</span> (event.getEventType() == SVFBugEvent::SourceInst)</div>
451
- <div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; {</div>
452
- <div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keywordflow">continue</span>;</div>
453
- <div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; }</div>
454
- <div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; </div>
455
- <div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *singleEvent = cJSON_CreateObject();</div>
456
- <div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="comment">//event type</span></div>
457
- <div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *eventType = cJSON_CreateString(eventType2Str[event.getEventType()].c_str());</div>
458
- <div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; cJSON_AddItemToObject(singleEvent, <span class="stringliteral">&quot;EventType&quot;</span>, eventType);</div>
459
- <div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="comment">//function name</span></div>
460
- <div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *eventFunc = cJSON_CreateString(event.getFuncName().c_str());</div>
461
- <div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; cJSON_AddItemToObject(singleEvent, <span class="stringliteral">&quot;Function&quot;</span>, eventFunc);</div>
462
- <div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="comment">//event loc</span></div>
463
- <div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *eventLoc = cJSON_Parse(event.getEventLoc().c_str());</div>
464
- <div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="keywordflow">if</span>(eventLoc == <span class="keyword">nullptr</span>)</div>
465
- <div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; {</div>
466
- <div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; eventLoc = cJSON_CreateObject();</div>
467
- <div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; }</div>
468
- <div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; cJSON_AddItemToObject(singleEvent, <span class="stringliteral">&quot;Location&quot;</span>, eventLoc);</div>
469
- <div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="comment">//event description</span></div>
470
- <div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *eventDescription = cJSON_CreateString(event.getEventDescription().c_str());</div>
471
- <div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; cJSON_AddItemToObject(singleEvent, <span class="stringliteral">&quot;Description&quot;</span>, eventDescription);</div>
472
- <div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; </div>
473
- <div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; cJSON_AddItemToArray(eventList, singleEvent);</div>
474
- <div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; }</div>
475
- <div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; }</div>
476
- <div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; cJSON_AddItemToObject(singleBug, <span class="stringliteral">&quot;Events&quot;</span>, eventList);</div>
477
- <div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; </div>
478
- <div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keywordtype">char</span> *singleBugStr = cJSON_Print(singleBug);</div>
479
- <div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; jsonFile &lt;&lt; singleBugStr;</div>
480
- <div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordflow">if</span> (commaCounter != 0)</div>
481
- <div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; {</div>
482
- <div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; jsonFile &lt;&lt; <span class="stringliteral">&quot;,\n&quot;</span>;</div>
483
- <div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; }</div>
484
- <div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; commaCounter --;</div>
485
- <div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; </div>
486
- <div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <a class="code" href="cJSON_8cpp.html#afde5c619f31577b3d821b56b23953c85">cJSON_Delete</a>(singleBug);</div>
487
- <div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; }</div>
488
- <div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; </div>
489
- <div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; jsonFile &lt;&lt; <span class="stringliteral">&quot;]&quot;</span>;</div>
490
- <div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; jsonFile.close();</div>
491
- <div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;}</div>
443
+ <div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; cJSON_AddItemToObject(singleBug, <span class="stringliteral">&quot;Description&quot;</span>, bugPtr-&gt;getBugDescription());</div>
444
+ <div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; </div>
445
+ <div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *eventList = cJSON_CreateArray();</div>
446
+ <div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1GenericBug.html#acc65b033bfd61257d5b6fdbf932dfafe">GenericBug::EventStack</a> &amp;bugEventStack = bugPtr-&gt;getEventStack();</div>
447
+ <div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keywordflow">if</span>(BufferOverflowBug::classof(bugPtr))</div>
448
+ <div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; {</div>
449
+ <div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="comment">// add only when bug is context sensitive</span></div>
450
+ <div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBugEvent.html">SVFBugEvent</a>&amp;event : bugEventStack)</div>
451
+ <div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; {</div>
452
+ <div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keywordflow">if</span> (event.getEventType() == SVFBugEvent::SourceInst)</div>
453
+ <div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; {</div>
454
+ <div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keywordflow">continue</span>;</div>
455
+ <div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; }</div>
456
+ <div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; </div>
457
+ <div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *singleEvent = cJSON_CreateObject();</div>
458
+ <div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="comment">//event type</span></div>
459
+ <div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *eventType = cJSON_CreateString(eventType2Str[event.getEventType()].c_str());</div>
460
+ <div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; cJSON_AddItemToObject(singleEvent, <span class="stringliteral">&quot;EventType&quot;</span>, eventType);</div>
461
+ <div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="comment">//function name</span></div>
462
+ <div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *eventFunc = cJSON_CreateString(event.getFuncName().c_str());</div>
463
+ <div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; cJSON_AddItemToObject(singleEvent, <span class="stringliteral">&quot;Function&quot;</span>, eventFunc);</div>
464
+ <div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="comment">//event loc</span></div>
465
+ <div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *eventLoc = cJSON_Parse(event.getEventLoc().c_str());</div>
466
+ <div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keywordflow">if</span>(eventLoc == <span class="keyword">nullptr</span>)</div>
467
+ <div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; {</div>
468
+ <div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; eventLoc = cJSON_CreateObject();</div>
469
+ <div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; }</div>
470
+ <div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; cJSON_AddItemToObject(singleEvent, <span class="stringliteral">&quot;Location&quot;</span>, eventLoc);</div>
471
+ <div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="comment">//event description</span></div>
472
+ <div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *eventDescription = cJSON_CreateString(event.getEventDescription().c_str());</div>
473
+ <div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; cJSON_AddItemToObject(singleEvent, <span class="stringliteral">&quot;Description&quot;</span>, eventDescription);</div>
474
+ <div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; </div>
475
+ <div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; cJSON_AddItemToArray(eventList, singleEvent);</div>
476
+ <div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; }</div>
477
+ <div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; }</div>
478
+ <div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; cJSON_AddItemToObject(singleBug, <span class="stringliteral">&quot;Events&quot;</span>, eventList);</div>
479
+ <div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; </div>
480
+ <div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordtype">char</span> *singleBugStr = cJSON_Print(singleBug);</div>
481
+ <div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; jsonFile &lt;&lt; singleBugStr;</div>
482
+ <div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keywordflow">if</span> (commaCounter != 0)</div>
483
+ <div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; {</div>
484
+ <div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; jsonFile &lt;&lt; <span class="stringliteral">&quot;,\n&quot;</span>;</div>
485
+ <div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; }</div>
486
+ <div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; commaCounter --;</div>
487
+ <div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; </div>
488
+ <div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <a class="code" href="cJSON_8cpp.html#afde5c619f31577b3d821b56b23953c85">cJSON_Delete</a>(singleBug);</div>
489
+ <div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; }</div>
490
+ <div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; </div>
491
+ <div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; jsonFile &lt;&lt; <span class="stringliteral">&quot;]&quot;</span>;</div>
492
+ <div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; jsonFile.close();</div>
493
+ <div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;}</div>
492
494
  </div><!-- fragment --></div><!-- contents -->
493
495
  <div class="ttc" id="aclassSVF_1_1SVFValue_html_a2401b022638769f59f86ab424a189b6e"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">SVF::SVFValue::getName</a></div><div class="ttdeci">const std::string &amp; getName() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00216">SVFValue.h:216</a></div></div>
494
496
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ad56c48be3ba6ebb95416623256524097"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ad56c48be3ba6ebb95416623256524097">SVF::LLVMUtil::getCallee</a></div><div class="ttdeci">const Function * getCallee(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00075">LLVMUtil.h:75</a></div></div>
@@ -499,7 +501,7 @@ $(function() {
499
501
  <div class="ttc" id="acJSON_8h_html"><div class="ttname"><a href="cJSON_8h.html">cJSON.h</a></div></div>
500
502
  <div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_ac25f6dfcc9118ffd80244a771bdee535"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ac25f6dfcc9118ffd80244a771bdee535">SVF::SVFUtil::bugMsg2</a></div><div class="ttdeci">std::string bugMsg2(const std::string &amp;msg)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00086">SVFUtil.cpp:86</a></div></div>
501
503
  <div class="ttc" id="aSVFUtil_8h_html"><div class="ttname"><a href="SVFUtil_8h.html">SVFUtil.h</a></div></div>
502
- <div class="ttc" id="aclassSVF_1_1SVFBugEvent_html_ad3bcb02563f952edd43ab5a7276bd57d"><div class="ttname"><a href="classSVF_1_1SVFBugEvent.html#ad3bcb02563f952edd43ab5a7276bd57d">SVF::SVFBugEvent::getFuncName</a></div><div class="ttdeci">virtual const std::string getFuncName() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFBugReport_8cpp_source.html#l00277">SVFBugReport.cpp:277</a></div></div>
504
+ <div class="ttc" id="aclassSVF_1_1SVFBugEvent_html_ad3bcb02563f952edd43ab5a7276bd57d"><div class="ttname"><a href="classSVF_1_1SVFBugEvent.html#ad3bcb02563f952edd43ab5a7276bd57d">SVF::SVFBugEvent::getFuncName</a></div><div class="ttdeci">virtual const std::string getFuncName() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFBugReport_8cpp_source.html#l00279">SVFBugReport.cpp:279</a></div></div>
503
505
  <div class="ttc" id="acJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
504
506
  <div class="ttc" id="aclassSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00270">SVFValue.h:270</a></div></div>
505
507
  <div class="ttc" id="aSVFBugReport_8h_html_a6c7cd1f1c2372251f51de3a8392faeec"><div class="ttname"><a href="SVFBugReport_8h.html#a6c7cd1f1c2372251f51de3a8392faeec">BRANCHFLAGMASK</a></div><div class="ttdeci">#define BRANCHFLAGMASK</div><div class="ttdef"><b>Definition:</b> <a href="SVFBugReport_8h_source.html#l00040">SVFBugReport.h:40</a></div></div>
@@ -507,7 +509,7 @@ $(function() {
507
509
  <div class="ttc" id="aSVFBugReport_8h_html"><div class="ttname"><a href="SVFBugReport_8h.html">SVFBugReport.h</a></div></div>
508
510
  <div class="ttc" id="anamespaceSVF_html_abf85e29310b2e4df8925d00a5c081314"><div class="ttname"><a href="namespaceSVF.html#abf85e29310b2e4df8925d00a5c081314">SVF::Loop</a></div><div class="ttdeci">llvm::Loop Loop</div><div class="ttdoc">LLVM Loop.</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00138">BasicTypes.h:138</a></div></div>
509
511
  <div class="ttc" id="aclassSVF_1_1SVFBugEvent_html_a7ded0022f3852a08a05c67aeae77162f"><div class="ttname"><a href="classSVF_1_1SVFBugEvent.html#a7ded0022f3852a08a05c67aeae77162f">SVF::SVFBugEvent::getEventType</a></div><div class="ttdeci">u32_t getEventType() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFBugReport_8h_source.html#l00071">SVFBugReport.h:71</a></div></div>
510
- <div class="ttc" id="aclassSVF_1_1SVFBugEvent_html_a5b3fcd366e5275927eb66a02dc6040f8"><div class="ttname"><a href="classSVF_1_1SVFBugEvent.html#a5b3fcd366e5275927eb66a02dc6040f8">SVF::SVFBugEvent::getEventLoc</a></div><div class="ttdeci">virtual const std::string getEventLoc() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFBugReport_8cpp_source.html#l00282">SVFBugReport.cpp:282</a></div></div>
512
+ <div class="ttc" id="aclassSVF_1_1SVFBugEvent_html_a5b3fcd366e5275927eb66a02dc6040f8"><div class="ttname"><a href="classSVF_1_1SVFBugEvent.html#a5b3fcd366e5275927eb66a02dc6040f8">SVF::SVFBugEvent::getEventLoc</a></div><div class="ttdeci">virtual const std::string getEventLoc() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFBugReport_8cpp_source.html#l00284">SVFBugReport.cpp:284</a></div></div>
511
513
  <div class="ttc" id="aclassSVF_1_1SVFBugEvent_html"><div class="ttname"><a href="classSVF_1_1SVFBugEvent.html">SVF::SVFBugEvent</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFBugReport_8h_source.html#l00051">SVFBugReport.h:51</a></div></div>
512
514
  <div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_ab65033f068bfbeb0a1c52dcec3beb6bc"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVF::SVFUtil::errs</a></div><div class="ttdeci">std::ostream &amp; errs()</div><div class="ttdoc">Overwrite llvm::errs()</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00056">SVFUtil.h:56</a></div></div>
513
515
  <!-- start footer part -->