svadev AT lists.siebelschool.illinois.edu
Subject: Svadev mailing list
List archive
- From: Daniel Huang <dan.e.huang AT gmail.com>
- To: "<svadev AT cs.illinois.edu>" <svadev AT cs.illinois.edu>
- Subject: [svadev] Multiple types at same offset
- Date: Sun, 3 Mar 2013 14:45:11 -0500
- List-archive: <http://lists.cs.uiuc.edu/pipermail/svadev/>
- List-id: <svadev.cs.uiuc.edu>
Hi svadev,
In the case that DSA infers multiple types at the same offset and the node is not marked as unknown, what is the invariant that SAFECode enforces when it generates code? For example, I've observed code that produces the following pool allocation.
PoolForMain9: (no inferred types, not marked as unknown, not marked as completely folded)
PoolForMain: i32* (and points into PoolForMain9)
PoolForMain8: i32* | i32** (not marked as unknown, not marked as completely folded, and points into PoolForMain)
Annotating fully with types,
PoolForMain9 : (no inferred types, not marked as unknown, not marked as completely folded)
PoolForMain : i32*PoolForMain9
PoolForMain8 : i32*PoolForMain | i32*PoolForMain9*PoolForMain
If I have a pointer into region PoolForMain8, what does a poolcheck on that pointer guarantee? Does it guarantee a pointer into PoolForMain at the first type, the second type, or an unknown type?
As an aside, I find it weird that PoolForMain9 has no inferred types since I would have expected PoolForMain to constrain what type it holds. Furthermore, I would have expected PoolForMain to constrain what types could be in PoolForMain8.
Thanks in advance,
Dan
- [svadev] Multiple types at same offset, Daniel Huang, 03/03/2013
- Re: [svadev] Multiple types at same offset, John Criswell, 03/04/2013
- Re: [svadev] Multiple types at same offset, Daniel Huang, 03/04/2013
- Re: [svadev] Multiple types at same offset, John Criswell, 03/04/2013
Archive powered by MHonArc 2.6.16.