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

Reply via email to