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

--- Comment #3 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-11-02 
14:37:35 UTC ---
The vtable object looks like (with the patch):

 <var_decl 0x7ffff5a2c280 __vtab_m_T
    type <record_type 0x7ffff5b37dc8 __vtype_m_T BLK
        size <integer_cst 0x7ffff5b12980 constant 320>
        unit size <integer_cst 0x7ffff5b129a0 constant 40>
        align 64 symtab 0 alias set -1 canonical type 0x7ffff5b37dc8
        fields <field_decl 0x7ffff5b31428 _hash type <integer_type
0x7ffff5a315e8 integer(kind=4)>
            SI file t.f90 line 18 col 0
            size <integer_cst 0x7ffff5a34240 constant 32>
            unit size <integer_cst 0x7ffff5a34260 constant 4>
            align 32 offset_align 128
            offset <integer_cst 0x7ffff5a20f00 constant 0>
            bit offset <integer_cst 0x7ffff5a20f60 constant 0> context
<record_type 0x7ffff5b37dc8 __vtype_m_T> chain <field_decl 0x7ffff5b314c0
_size>> context <namespace_decl 0x7ffff5a4b7e8 m>
        pointer_to_this <pointer_type 0x7ffff5b37f18> chain <type_decl
0x7ffff5a4bcf0 D.1735>>
    addressable used public static BLK file t.f90 line 18 col 0 size
<integer_cst 0x7ffff5b12980 320> unit size <integer_cst 0x7ffff5b129a0 40>
    align 256 context <namespace_decl 0x7ffff5a4b7e8 m> initial <constructor
0x7ffff5b1de70> chain <function_decl 0x7ffff5b38600 base>>

it is not TREE_READONLY.  The constructor looks ok:

{._hash=6736034, ._size=0, ._extends=0B, ._def_init=&__def_init_m_T,
._copy=__copy_m_T, .bar=base}

Instead of a VAR_DECL it could maybe also be a CONST_DECL(?).  But first
try setting TREE_READONLY on it.

Reply via email to