------- Additional Comments From dberlin at gcc dot gnu dot org  2005-07-23 
17:49 -------
I believe something is actually wrong in the field layout for the minimized
testcase.
We have fields that overlap.
Adding mark mitchell.

Mark, if you use the attached aliashelp.diff, and -fdump-tree-alias-all, and
look at alias1, you'll see:

;; Function void foo() (_Z3foov)

Entering type NULL at offset 0
Adding field i0 at offset 0
Adding field i1 at offset 32
Adding field c at offset 64
Entering type NULL at offset 0
    Entering type NULL at offset 0
    Adding field _vptr.B at offset 0
        Entering type NULL at offset 32
        Adding field _vptr.A at offset 32
        Adding field i at offset 64
        Adding field c0 at offset 96
        Adding field c1 at offset 104
    Entering type NULL at offset 32
    Adding field i0 at offset 32
    Adding field i1 at offset 64
    Adding field c at offset 96
    Entering type NULL at offset 128
    Adding field _vptr.A at offset 128
    Adding field i at offset 160
    Adding field c0 at offset 192
    Adding field c1 at offset 200
Entering type NULL at offset 0
Adding field i0 at offset 0
Adding field i1 at offset 32
Adding field c at offset 64

(The NULL is because the type is unnamed).

Note that _vptr.A overlaps with i0, etc.

Is this right?


-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |mark at codesourcery dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22488

Reply via email to