[Bug fortran/45586] [4.6/4.7 Regression] ICE non-trivial conversion at assignment
tkoenig at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Apr 26 19:37:00 GMT 2011
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45586
--- Comment #57 from Thomas Koenig <tkoenig at gcc dot gnu.org> 2011-04-26 19:37:32 UTC ---
(In reply to comment #54)
> (In reply to comment #53)
> > reduced testcase for 4.7
>
> Does not fail here - can you still reproduce it? (It might have been fixed by
> the patch for PR 48588. If it still occurs, I will try harder.)
Fails for me here too, at -O0.
Looking at the site of the error message, we get (note the "public unsigned DI"
vs. "unsigned restrict DI":
3722 error ("non-trivial conversion at assignment");
(gdb) p debug_tree(lhs_type)
<record_type 0x7ffff70dae70 array3_real(kind=8) BLK
size <integer_cst 0x7ffff70d1420 type <integer_type 0x7ffff7ee50a8
bit_size_type> constant 768>
unit size <integer_cst 0x7ffff70d1460 type <integer_type 0x7ffff7ee5000>
constant 96>
align 64 symtab 0 alias set -1 canonical type 0x7ffff70daf18
fields <field_decl 0x7ffff70df4c0 data
type <pointer_type 0x7ffff7ee5dc8 type <void_type 0x7ffff7ee5d20 void>
public unsigned DI
size <integer_cst 0x7ffff7eea1e0 constant 64>
unit size <integer_cst 0x7ffff7eea200 constant 8>
align 64 symtab 0 alias set -1 canonical type 0x7ffff7ee5dc8
pointer_to_this <pointer_type 0x7ffff7ef7e70>>
unsigned DI file test.f90 line 17 col 0 size <integer_cst
0x7ffff7eea1e0 64> unit size <integer_cst 0x7ffff7eea200 8>
align 64 offset_align 128
offset <integer_cst 0x7ffff7ed5f00 constant 0>
bit offset <integer_cst 0x7ffff7eea420 constant 0> context <record_type
0x7ffff70daf18 array_descriptor3>
chain <field_decl 0x7ffff70df558 offset type <integer_type
0x7ffff7ee55e8 long int>
DI file test.f90 line 17 col 0 size <integer_cst 0x7ffff7eea1e0 64>
unit size <integer_cst 0x7ffff7eea200 8>
align 64 offset_align 128 offset <integer_cst 0x7ffff7ed5f00 0> bit
offset <integer_cst 0x7ffff7eea1e0 64> context <record_type 0x7ffff70daf18
array_descriptor3> chain <field_decl 0x7ffff70df5f0 dtype>>>>
$1 = void
(gdb) p debug_tree(rhs1_type)
<record_type 0x7ffff70da7e0 array3_real(kind=8) BLK
size <integer_cst 0x7ffff70d1420 type <integer_type 0x7ffff7ee50a8
bit_size_type> constant 768>
unit size <integer_cst 0x7ffff70d1460 type <integer_type 0x7ffff7ee5000>
constant 96>
align 64 symtab 0 alias set -1 canonical type 0x7ffff70da930
fields <field_decl 0x7ffff7ededa8 data
type <pointer_type 0x7ffff70da888 type <void_type 0x7ffff7ee5d20 void>
unsigned restrict DI
size <integer_cst 0x7ffff7eea1e0 constant 64>
unit size <integer_cst 0x7ffff7eea200 constant 8>
align 64 symtab 0 alias set -1 canonical type 0x7ffff70da888>
unsigned DI file test.f90 line 17 col 0 size <integer_cst
0x7ffff7eea1e0 64> unit size <integer_cst 0x7ffff7eea200 8>
align 64 offset_align 128
offset <integer_cst 0x7ffff7ed5f00 constant 0>
bit offset <integer_cst 0x7ffff7eea420 constant 0> context <record_type
0x7ffff70da930 array_descriptor3>
chain <field_decl 0x7ffff7edee40 offset type <integer_type
0x7ffff7ee55e8 long int>
DI file test.f90 line 17 col 0 size <integer_cst 0x7ffff7eea1e0 64>
unit size <integer_cst 0x7ffff7eea200 8>
align 64 offset_align 128 offset <integer_cst 0x7ffff7ed5f00 0> bit
offset <integer_cst 0x7ffff7eea1e0 64> context <record_type 0x7ffff70da930
array_descriptor3> chain <field_decl 0x7ffff7edeed8 dtype>>>>
$2 = void
(gdb)
<record_type 0x7ffff70da7e0 array3_real(kind=8) BLK
size <integer_cst 0x7ffff70d1420 type <integer_type 0x7ffff7ee50a8
bit_size_type> constant 768>
unit size <integer_cst 0x7ffff70d1460 type <integer_type 0x7ffff7ee5000>
constant 96>
align 64 symtab 0 alias set -1 canonical type 0x7ffff70da930
fields <field_decl 0x7ffff7ededa8 data
type <pointer_type 0x7ffff70da888 type <void_type 0x7ffff7ee5d20 void>
unsigned restrict DI
size <integer_cst 0x7ffff7eea1e0 constant 64>
unit size <integer_cst 0x7ffff7eea200 constant 8>
align 64 symtab 0 alias set -1 canonical type 0x7ffff70da888>
unsigned DI file test.f90 line 17 col 0 size <integer_cst
0x7ffff7eea1e0 64> unit size <integer_cst 0x7ffff7eea200 8>
align 64 offset_align 128
offset <integer_cst 0x7ffff7ed5f00 constant 0>
bit offset <integer_cst 0x7ffff7eea420 constant 0> context <record_type
0x7ffff70da930 array_descriptor3>
chain <field_decl 0x7ffff7edee40 offset type <integer_type
0x7ffff7ee55e8 long int>
DI file test.f90 line 17 col 0 size <integer_cst 0x7ffff7eea1e0 64>
unit size <integer_cst 0x7ffff7eea200 8>
align 64 offset_align 128 offset <integer_cst 0x7ffff7ed5f00 0> bit
offset <integer_cst 0x7ffff7eea1e0 64> context <record_type 0x7ffff70da930
array_descriptor3> chain <field_decl 0x7ffff7edeed8 dtype>>>>
$3 = void
More information about the Gcc-bugs
mailing list