------- Additional Comments From rguenth at gcc dot gnu dot org  2005-09-18 
12:09 -------
The testcase looks like

float f(float src[][4])
{
 return *(src[3]);
}

and the C frontend produces

 <return_expr 0x40191240
    type <void_type 0x4019c8a0 void VOID
        align 8 symtab 0 alias set -1
        pointer_to_this <pointer_type 0x4019c8fc>>
    side-effects
    arg 0 <modify_expr 0x40193168
        type <real_type 0x4019ca10 float SF
            size <integer_cst 0x4018c408 constant invariant 32>
            unit size <integer_cst 0x4018c198 constant invariant 4>
            align 32 symtab 0 alias set -1 precision 32
            pointer_to_this <pointer_type 0x4019cb24>>
        side-effects
        arg 0 <var_decl 0x40198108 D.1279 type <real_type 0x4019ca10 float>
            used ignored SF file /suse/rguenther/src/tests/pr23944.c line 3 size
<integer_cst 0x4018c408 32> unit size <integer_cst 0x4018c198 4>
            align 32 context <function_decl 0x4020d100 f>>
        arg 1 <array_ref 0x4020ea28 type <real_type 0x4019ca10 float>
           
            arg 0 <indirect_ref 0x40191260 type <array_type 0x4020c398>
               >
            arg 1 <integer_cst 0x4018c1b0 constant invariant 0>>>
    /suse/rguenther/src/tests/pr23944.c:3>

Closer look at the INDIRECT_REF node reveals:

 <indirect_ref 0x40191260
    type <array_type 0x4020c398
        type <real_type 0x4019ca10 float SF
            size <integer_cst 0x4018c408 constant invariant 32>
            unit size <integer_cst 0x4018c198 constant invariant 4>
            align 32 symtab 0 alias set -1 precision 32
            pointer_to_this <pointer_type 0x4019cb24>>
        BLK
        size <integer_cst 0x4018c678 constant invariant 128>
        unit size <integer_cst 0x4018c690 constant invariant 16>
        align 32 symtab 0 alias set -1
        domain <integer_type 0x4020c33c type <integer_type 0x4019c000 unsigned 
int>
            SI size <integer_cst 0x4018c408 32> unit size <integer_cst 
0x4018c198 4>
            align 32 symtab 0 alias set -1 precision 32 min <integer_cst
0x4018c1b0 0> max <integer_cst 0x4018c378 3>>
        pointer_to_this <pointer_type 0x4020c450>>
   >

well - there's something missing here.  Frontend bug.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |ice-on-valid-code


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

Reply via email to