Hi all,

I am trying to port a private target in GCC 4.5.1. Following are the
properties of the target

#define BITS_PER_UNIT           32
#define BITS_PER_WORD        32
#define UNITS_PER_WORD       1


#define CHAR_TYPE_SIZE        32
#define SHORT_TYPE_SIZE       32
#define INT_TYPE_SIZE         32
#define LONG_TYPE_SIZE        32
#define LONG_LONG_TYPE_SIZE   32



I am getting an ICE
internal compiler error: in get_constraint_for_component_ref, at
tree-ssa-structalias.c:3031

For the following testcase:

struct fb_cmap {
 int start;
 int len;
 int *green;
};

extern struct fb_cmap fb_cmap;

void directcolor_update_cmap(void)
{
  fb_cmap.green[0] = 34;
}

The following is the output of debug_tree of the argument thats given
for the function get_constraint_for_component_ref

<component_ref 0x2b6a45618080
    type <pointer_type 0x2b6a45559930
        type <integer_type 0x2b6a4554a498 int public QI
            size <integer_cst 0x2b6a4553c460 constant 32>
            unit size <integer_cst 0x2b6a4553c488 constant 1>
            align 32 symtab 0 alias set -1 canonical type
0x2b6a4554a498 precision 32 min <integer_cst 0x2b6a4553c5c8
-2147483648> max <integer_cst 0x2b6a4553c5f0 2147483647>
            pointer_to_this <pointer_type 0x2b6a45559930>>
        unsigned PQI size <integer_cst 0x2b6a4553c460 32> unit size
<integer_cst 0x2b6a4553c488 1>
        align 32 symtab 0 alias set -1 canonical type 0x2b6a45559930>

    arg 0 <var_decl 0x2b6a45614000 fb_cmap
        type <record_type 0x2b6a45602888 fb_cmap type_0 BLK
            size <integer_cst 0x2b6a455fc4d8 constant 96>
            unit size <integer_cst 0x2b6a455fc488 constant 3>
            align 32 symtab 0 alias set -1 canonical type
0x2b6a45602888 fields <field_decl 0x2b6a45613000 start> context
<translation_unit_decl 0x2b6a4555f7e8 D.1201>
            chain <type_decl 0x2b6a4555f730 D.1193>>
        used public external common BLK file pr28675.c line 7 col 23
size <integer_cst 0x2b6a455fc4d8 96> unit size <integer_cst
0x2b6a455fc488 3>
        align 32
        chain <function_decl 0x2b6a45616000 directcolor_update_cmap
type <function_type 0x2b6a45560888>
            public static QI file pr28675.c line 9 col 6 align 32
initial <block 0x2b6a45619000> result <result_decl 0x2b6a45617000
D.1200>
            (mem:QI (symbol_ref:PQI ("directcolor_update_cmap") [flags
0x3] <function_decl 0x2b6a45616000 directcolor_update_cmap>) [0 S1
A32])
            struct-function 0x2b6a455453f0>>
    arg 1 <field_decl 0x2b6a45613130 green type <pointer_type 0x2b6a45559930>
        unsigned PQI file pr28675.c line 4 col 7 size <integer_cst
0x2b6a4553c460 32> unit size <integer_cst 0x2b6a4553c488 1>
        align 32 offset_align 32
        offset <integer_cst 0x2b6a4553c8c0 constant 2>
        bit offset <integer_cst 0x2b6a4553cc80 constant 0> context
<record_type 0x2b6a45602888 fb_cmap>>
    pr28675.c:11:10>

I was wondering if this ICE is due to the fact that this is a 32bit
char target ? Can somebody help me with pointers to debug this issue?

Regards,
Shafi

Reply via email to