[Bug c/66283] New: [ICE] [IA64] verify type mis-diagnosis: type variant differs by TYPE_NO_FORCE_BLK
gary at intrepid dot com
gcc-bugzilla@gcc.gnu.org
Mon May 25 23:22:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66283
Bug ID: 66283
Summary: [ICE] [IA64] verify type mis-diagnosis: type variant
differs by TYPE_NO_FORCE_BLK
Product: gcc
Version: 6.0
Status: UNCONFIRMED
Severity: major
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: gary at intrepid dot com
Target Milestone: ---
This recent commit implemented additional type verification checks:
r223252 | hubicka | 2015-05-16 13:51:50 -0700 (Sat, 16 May 2015) | 3 lines
* tree.c (verify_type_variant): Verify tree_base and type_common flags.
(verify_type): Verify STRING_FLAG.
This triggers an ICE on IA64 when configured with --enable-checking and when
the test program below is compiled with "-g". It may be possible to change
the test so that the declaration of "struct S" to asserts TYPE_NO_FORCE_BLK()
for a more common target like the x86_64, but I didn't try that.
typedef volatile struct S opaque_qualified_t;
struct S
{
unsigned long _s1;
int _s2;
};
void
proc (opaque_qualified_t *p __attribute__((unused)))
{
}
ice-no-force-blk.i: In function ‘proc’:
ice-no-force-blk.i:12:1: error: type variant differs by TYPE_NO_FORCE_BLK.
}
^
<record_type 0x2000000000b6eee0 S asm_written no-force-blk type_0 BLK
size <integer_cst 0x2000000000a72388 type <integer_type 0x2000000000ab0150
bitsizetype>
constant 128>
unit size <integer_cst 0x2000000000a723a0 type <integer_type
0x2000000000ab00a8 sizetype>
constant 16>
align 64 symtab 12587232 alias set -1 canonical type 0x2000000000b6eee0
fields <field_decl 0x2000000000b41858 _s1
type <integer_type 0x2000000000ab0888 long unsigned int asm_written
public unsigned DI
size <integer_cst 0x2000000000a72340 constant 64>
unit size <integer_cst 0x2000000000a72358 constant 8>
align 64 symtab 12587632 alias set -1 canonical type
0x2000000000ab0888 precision 64 min
<integer_cst 0x2000000000a72610 0> max <integer_cst 0x2000000000b20520
18446744073709551615>
pointer_to_this <pointer_type 0x2000000000ab46e0>>
unsigned DI file ice-no-force-blk.i line 5 col 18 size <integer_cst
0x2000000000a72340 64>
unit size <integer_cst 0x2000000000a72358 8>
align 64 offset_align 128
offset <integer_cst 0x2000000000a72370 constant 0>
bit offset <integer_cst 0x2000000000a723b8 constant 0> context
<record_type 0x2000000000b6eee0
S>
chain <field_decl 0x2000000000b418f0 _s2 type <integer_type
0x2000000000ab0690 int>
SI file ice-no-force-blk.i line 6 col 8
size <integer_cst 0x2000000000a72580 constant 32>
unit size <integer_cst 0x2000000000a72598 constant 4>
align 32 offset_align 128 offset <integer_cst 0x2000000000a72370 0>
bit offset <integer_cst
0x2000000000a72340 64> context <record_type 0x2000000000b6eee0 S>>> context
<translation_unit_decl
0x2000000000a200f0 D.1470>
chain <type_decl 0x2000000000b41728 D.1463>>
<record_type 0x2000000000b6f030 opaque_qualified_t volatile BLK
size <integer_cst 0x2000000000a72388 type <integer_type 0x2000000000ab0150
bitsizetype>
constant 128>
unit size <integer_cst 0x2000000000a723a0 type <integer_type
0x2000000000ab00a8 sizetype>
constant 16>
align 64 symtab 12587152 alias set -1 canonical type 0x2000000000b6ef88
fields <field_decl 0x2000000000b41858 _s1
type <integer_type 0x2000000000ab0888 long unsigned int asm_written
public unsigned DI
size <integer_cst 0x2000000000a72340 constant 64>
unit size <integer_cst 0x2000000000a72358 constant 8>
align 64 symtab 12587632 alias set -1 canonical type
0x2000000000ab0888 precision 64 min
<integer_cst 0x2000000000a72610 0> max <integer_cst 0x2000000000b20520
18446744073709551615>
pointer_to_this <pointer_type 0x2000000000ab46e0>>
unsigned DI file ice-no-force-blk.i line 5 col 18 size <integer_cst
0x2000000000a72340 64>
unit size <integer_cst 0x2000000000a72358 8>
align 64 offset_align 128
offset <integer_cst 0x2000000000a72370 constant 0>
bit offset <integer_cst 0x2000000000a723b8 constant 0> context
<record_type 0x2000000000b6eee0
S>
chain <field_decl 0x2000000000b418f0 _s2 type <integer_type
0x2000000000ab0690 int>
SI file ice-no-force-blk.i line 6 col 8
size <integer_cst 0x2000000000a72580 constant 32>
unit size <integer_cst 0x2000000000a72598 constant 4>
align 32 offset_align 128 offset <integer_cst 0x2000000000a72370 0>
bit offset <integer_cst
0x2000000000a72340 64> context <record_type 0x2000000000b6eee0 S>>> context
<translation_unit_decl
0x2000000000a200f0 D.1470>
pointer_to_this <pointer_type 0x2000000000b6f570>>
ice-no-force-blk.i:12:1: internal compiler error: verify_type failed
0x40000000025159ff verify_type(tree_node const*)
/eng/upc/dev/gary/gupc-dev/src/gupc/gcc/tree.c:13209
0x4000000000ad3d4f gen_type_die_with_usage
/eng/upc/dev/gary/gupc-dev/src/gupc/gcc/dwarf2out.c:20304
0x4000000000ad4b0f gen_type_die_with_usage
/eng/upc/dev/gary/gupc-dev/src/gupc/gcc/dwarf2out.c:20391
0x4000000000ad572f gen_type_die
/eng/upc/dev/gary/gupc-dev/src/gupc/gcc/dwarf2out.c:20488
0x4000000000adbfdf gen_decl_die
/eng/upc/dev/gary/gupc-dev/src/gupc/gcc/dwarf2out.c:21104
0x4000000000ac4d9f gen_subprogram_die
/eng/upc/dev/gary/gupc-dev/src/gupc/gcc/dwarf2out.c:18859
0x4000000000adb0af gen_decl_die
/eng/upc/dev/gary/gupc-dev/src/gupc/gcc/dwarf2out.c:21018
0x4000000000adee0f dwarf2out_decl
/eng/upc/dev/gary/gupc-dev/src/gupc/gcc/dwarf2out.c:21451
0x4000000000adee7f dwarf2out_function_decl
/eng/upc/dev/gary/gupc-dev/src/gupc/gcc/dwarf2out.c:21459
0x4000000000c9fc0f rest_of_handle_final
/eng/upc/dev/gary/gupc-dev/src/gupc/gcc/final.c:4525
0x4000000000ca037f execute
/eng/upc/dev/gary/gupc-dev/src/gupc/gcc/final.c:4567
More information about the Gcc-bugs
mailing list