https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87957

--- Comment #15 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot 
Uni-Bielefeld.DE> ---
> --- Comment #14 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
> That would be the
>              gcc_checking_assert (TREE_TYPE (name) == t);
> assert then.  So, what is TREE_TYPE (name) and what is t when this happens?

Here's what I find (after recompiling tree.c with -g3 -O0):

(gdb) up
#1  0x09777f85 in fld_incomplete_type_of (t=0xfa58cc60, fld=0xfeffd6a8)
    at /vol/gcc/src/hg/trunk/local/gcc/tree.c:5312
5312                  gcc_checking_assert (TREE_TYPE (name) == t);
(gdb) p name
$1 = (tree) 0xfa593000
(gdb) call TREE_TYPE (name)
$2 = (tree) 0xfa58ccc0
(gdb) pt
warning: Expression is not an assignment (and might have no effect)
 <record_type fa58ccc0
system__tasking__protected_objects__operations__communication_block
sizes-gimplified volatile visited type_2 BLK
    size <integer_cst fa4058fc type <integer_type faefb0c0 bitsizetype>
constant 64>
    unit-size <integer_cst fa405910 type <integer_type faefb060 sizetype>
constant 8>
    align:32 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type fa58ccc0
    fields <field_decl fa589e70 self
        type <pointer_type fa5a3a20 system__tasking__task_id type <record_type
fa5a3960 system__tasking__ada_task_control_block>
            static unsigned SI
            size <integer_cst fa4058ac constant 32>
            unit-size <integer_cst fa4058c0 constant 4>
            align:32 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
fa542900>
        side-effects volatile unsigned nonaddressable SI
/var/gcc/regression/trunk/11-gcc/build/i386-pc-solaris2.11/libada/adainclude/s-tpobop.ads:193:7
size <integer_cst fa4058ac 32> unit-size <integer_cst fa4058c0 4>
        align:32 warn_if_not_align:0 offset_align 128
        offset <integer_cst fa4058d4 constant 0>
        bit-offset <integer_cst fa405924 constant 0> context <record_type
fa58cc60 system__tasking__protected_objects__operations__communication_block>
        chain <field_decl fa589ec8 enqueued type <boolean_type fa41b480
boolean>
            side-effects volatile unsigned nonaddressable QI
/var/gcc/regression/trunk/11-gcc/build/i386-pc-solaris2.11/libada/adainclude/s-tpobop.ads:194:7
            size <integer_cst fa4059b0 constant 8>
            unit-size <integer_cst fa4059c4 constant 1>
            align:8 warn_if_not_align:0 offset_align 128 offset <integer_cst
fa4058d4 0> bit-offset <integer_cst fa4058ac 32> context <record_type fa58cc60
system__tasking__protected_objects__operations__communication_block> chain
<field_decl fa589f20 cancelled>>> context <translation_unit_decl fa40f558
/vol/gcc/src/hg/trunk/local/gcc/testsuite/gnat.dg/lto8.adb>
    Ada size <integer_cst fa558d98 type <integer_type faefb0c0 bitsizetype>
constant visited 48>
    pointer_to_this <pointer_type fa58ce40> reference_to_this <reference_type
fa58cd20> chain <type_decl fa593000
system__tasking__protected_objects__operations__communication_block>>
(gdb) p t
$3 = (tree) 0xfa58cc60
(gdb) pt
warning: Expression is not an assignment (and might have no effect)
 <record_type fa58cc60
system__tasking__protected_objects__operations__communication_block type_2 BLK
    size <integer_cst fa4058fc type <integer_type faefb0c0 bitsizetype>
constant 64>
    unit-size <integer_cst fa405910 type <integer_type faefb060 sizetype>
constant 8>
    align:32 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type fa58cc60
    fields <field_decl fa589e70 self
        type <pointer_type fa5a3a20 system__tasking__task_id type <record_type
fa5a3960 system__tasking__ada_task_control_block>
            static unsigned SI
            size <integer_cst fa4058ac constant 32>
            unit-size <integer_cst fa4058c0 constant 4>
            align:32 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
fa542900>
        side-effects volatile unsigned nonaddressable SI
/var/gcc/regression/trunk/11-gcc/build/i386-pc-solaris2.11/libada/adainclude/s-tpobop.ads:193:7
size <integer_cst fa4058ac 32> unit-size <integer_cst fa4058c0 4>
        align:32 warn_if_not_align:0 offset_align 128
        offset <integer_cst fa4058d4 constant 0>
        bit-offset <integer_cst fa405924 constant 0> context <record_type
fa58cc60 system__tasking__protected_objects__operations__communication_block>
        chain <field_decl fa589ec8 enqueued type <boolean_type fa41b480
boolean>
            side-effects volatile unsigned nonaddressable QI
/var/gcc/regression/trunk/11-gcc/build/i386-pc-solaris2.11/libada/adainclude/s-tpobop.ads:194:7
            size <integer_cst fa4059b0 constant 8>
            unit-size <integer_cst fa4059c4 constant 1>
            align:8 warn_if_not_align:0 offset_align 128 offset <integer_cst
fa4058d4 0> bit-offset <integer_cst fa4058ac 32> context <record_type fa58cc60
system__tasking__protected_objects__operations__communication_block> chain
<field_decl fa589f20 cancelled>>> context <translation_unit_decl fa40f558
/vol/gcc/src/hg/trunk/local/gcc/testsuite/gnat.dg/lto8.adb>
    Ada size <integer_cst fa558d98 type <integer_type faefb0c0 bitsizetype>
constant visited 48>
    chain <type_decl fa589f78
system__tasking__protected_objects__operations__communication_block>>

Reply via email to