aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorZhongxing Xu <xuzhongxing@gmail.com>2009-04-20 10:09:10 +0000
committerZhongxing Xu <xuzhongxing@gmail.com>2009-04-20 10:09:10 +0000
commit4a115519ff89645fa7c6c1e4bacfb43ea1b15d18 (patch)
tree0dbc8f39654b2792d67061d1a06def633be4baed /docs
parent23d58ce9d103115fec4693285d0bcdbaccefea0f (diff)
update the doc.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69587 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs')
-rw-r--r--docs/AnalyzerRegions.html10
1 files changed, 9 insertions, 1 deletions
diff --git a/docs/AnalyzerRegions.html b/docs/AnalyzerRegions.html
index 992db15225..35708d57c9 100644
--- a/docs/AnalyzerRegions.html
+++ b/docs/AnalyzerRegions.html
@@ -214,7 +214,15 @@ when:</p> <pre> int x; void *p = &amp;x; </pre>
<p>The region of <tt>x</tt> has its root position at 'int*' node. the cast to
void* moves that region up to the 'void*' node. I propose to not allow such
-casts, and assign the region of <tt>x</tt> for <tt>p</tt>.<p>
+casts, and assign the region of <tt>x</tt> for <tt>p</tt>.</p>
+
+<p>Another non-ideal case is that people might cast to a non-generic pointer
+from another non-generic pointer instead of first casting it back to the generic
+pointer. Direct handling of this case would result in multiple layers of
+TypedViewRegions. This enforces an incorrect semantic view to the region,
+because we can only have one typed view on a region at a time. To avoid this
+inconsistency, before casting the region, we strip the TypedViewRegion, then do
+the cast. In summary, we only allow one layer of TypedViewRegion.</p>
<h3>Region Bindings</h3>