This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
ICE in get_constraint_for_component_ref
- From: Mohamed Shafi <shafitvm at gmail dot com>
- To: GCC <gcc at gcc dot gnu dot org>
- Date: Thu, 10 Feb 2011 10:53:20 +0530
- Subject: ICE in get_constraint_for_component_ref
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