<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Hi all,</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
I plan to reimplement 'CastToStructChecker' with path-sensitive manner in my own codebase. <span style="color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif; font-size: 12pt;">Current AST-based
</span><span style="color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif; font-size: 12pt;">'CastToStructChecker</span><span style="color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif; font-size: 12pt;">' is very clean and can handle
 the vast majority issues except the 'void*' or 'char*' related cases. NoQ and danielmarjamaki once mentioned these cases in <a href="https://reviews.llvm.org/D23508" id="LPlnk387146">https://reviews.llvm.org/D23508</a>.</span></div>
<div id="LPBorder_GTaHR0cHM6Ly9yZXZpZXdzLmxsdm0ub3JnL0QyMzUwOA.." class="LPBorder519817" contenteditable="false" style="width: 100%; margin-top: 16px; margin-bottom: 16px; position: relative; max-width: 800px; min-width: 424px;">
<table id="LPContainer519817" role="presentation" style="padding: 12px 36px 12px 12px; width: 100%; border-width: 1px; border-style: solid; border-color: rgb(200, 200, 200); border-radius: 2px;">
<tbody>
<tr valign="top" style="border-spacing: 0px;">
<td style="width: 100%;">
<div id="LPTitle519817" style="font-size: 21px; font-weight: 300; margin-right: 8px; font-family: wf_segoe-ui_light, "Segoe UI Light", "Segoe WP Light", "Segoe UI", "Segoe WP", Tahoma, Arial, sans-serif; margin-bottom: 12px;">
<a target="_blank" id="LPUrlAnchor519817" href="https://reviews.llvm.org/D23508" style="text-decoration: none; color: rgb(0, 75, 139);">Improve alpha.core.CastToStruct warn about widening casts ...</a></div>
<div id="LPDescription519817" style="font-size: 14px; max-height: 100px; color: rgb(102, 102, 102); font-family: wf_segoe-ui_normal, "Segoe UI", "Segoe WP", Tahoma, Arial, sans-serif; margin-bottom: 12px; margin-right: 8px; overflow: hidden;">
The alpha.core.CastToStruct warns when for instance casting a int pointer to a struct pointer. As accessing a field can lead to memory access errors.</div>
<div id="LPMetadata519817" style="font-size: 14px; font-weight: 400; color: rgb(166, 166, 166); font-family: wf_segoe-ui_normal, "Segoe UI", "Segoe WP", Tahoma, Arial, sans-serif;">
reviews.llvm.org</div>
</td>
</tr>
</tbody>
</table>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Path-sensitive analysis can:</div>
<div style="">
<ol style="">
<li style=""><font color="#000000" face="Calibri, Helvetica, sans-serif">find 'non-struct *' -> 'void*', 'void*' -> 'struct*' bug.</font></li><li style=""><font color="#000000" face="Calibri, Helvetica, sans-serif">suppress 'struct*' -> 'char*', 'char*' -> 'struct*' warnings.</font></li></ol>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
The intuitive idea in my mind is to use 'checkLocation()' API, and strip off the cast to check the actual region type. Is it resonable to reimplement 'CastToStructChecker' in path-sensitive manner? What needs to be noticed in the implementation? <br>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Thanks in advance!</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div id="signature">
<div style="font-family:Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
Henry Wong</div>
<div style="font-family:Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
Qihoo 360 Codesafe Team</div>
</div>
</body>
</html>