<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Added: cfe/trunk/test/Analysis/rdar-6541136.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/rdar-6541136.c?rev=63347&view=auto" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/rdar-6541136.c?rev=63347&view=auto</a><br>

<br>
==============================================================================<br>
--- cfe/trunk/test/Analysis/rdar-6541136.c (added)<br>
+++ cfe/trunk/test/Analysis/rdar-6541136.c Thu Jan 29 18:08:43 2009<br>
@@ -0,0 +1,20 @@<br>
+// clang -verify -analyze -checker-cfref -analyzer-store-basic %s<br>
+<br>
+struct tea_cheese { unsigned magic; };<br>
+typedef struct tea_cheese kernel_tea_cheese_t;<br>
+extern kernel_tea_cheese_t _wonky_gesticulate_cheese;<br>
+<br>
+// This test case exercises the ElementRegion::getRValueType() logic.<br>
+// All it tests is that it does not crash or do anything weird.<br>
+// The out-of-bounds-access on line 19 is caught using the region store variant.<br>
+<br>
+void foo( void )<br>
+{<br>
+  kernel_tea_cheese_t *wonky = &_wonky_gesticulate_cheese;<br>
+  struct load_wine *cmd = (void*) &wonky[1];</blockquote><div><br>This is like an ill use of the type system. What do you think we emit a warning instead of following it.<br>That is, we emit a warning when the array region does not have array type or pointer type.<br>
 </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
+  cmd = cmd;<br>
+  char *p = (void*) &wonky[1];<br>
+  *p = 1;<br>
+  kernel_tea_cheese_t *q = &wonky[1];<br>
+  kernel_tea_cheese_t r = *q; // no-warning<br>
+}<br>
<br>
<br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
</blockquote></div><br>