From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31591 invoked by alias); 4 May 2003 19:26:04 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 31576 invoked by uid 48); 4 May 2003 19:26:04 -0000 Date: Sun, 04 May 2003 19:26:00 -0000 Message-ID: <20030504192604.31575.qmail@sources.redhat.com> To: fnf@intrinsity.com, gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org, nobody@gcc.gnu.org From: giovannibajo@libero.it Reply-To: giovannibajo@libero.it, fnf@intrinsity.com, gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org, nobody@gcc.gnu.org, gcc-gnats@gcc.gnu.org Subject: Re: optimization/10435: [3.4 regression] ICE: insn does not satisfy its constraints - i686-pc-linux-gnu X-SW-Source: 2003-05/txt/msg00247.txt.bz2 List-Id: Old Synopsis: ICE: insn does not satisfy its constraints - i686-pc-linux-gnu New Synopsis: [3.4 regression] ICE: insn does not satisfy its constraints - i686-pc-linux-gnu State-Changed-From-To: open->analyzed State-Changed-By: bajo State-Changed-When: Sun May 4 19:26:04 2003 State-Changed-Why: This took me a _long_ time and I eventually I got annoyed at it. Anyway, this is where I got: ---------------------------------------------- struct kkk { int p; }; struct s1 { unsigned char st_info; }; void print_func(const char *, ...); extern int foo(void*, unsigned, int, void*); extern void* foobar(void *); int func(void) { int collect; int *sym_hash; struct s1 *isym; struct s1 *isymend; unsigned long long symidx; struct kkk *h; for (; 0 < isymend; ) { unsigned int flags; void *name; unsigned int old_alignment; unsigned int common_align; unsigned int normal_align; unsigned int symbol_align; foo(name, flags, collect, sym_hash); *sym_hash = 0; if (isym && isym->st_info) goto error_return; h = foobar(h); *sym_hash = h; if (common_align < old_alignment) h->p = common_align; symbol_align = __builtin_ffs(h); if (!h) normal_align = symbol_align; print_func( 1 << normal_align, foobar(0), common_align, foobar(0) , foobar(0) ); } for (symidx = 0; ; ++symidx) if (sym_hash[symidx] == isym) break; error_return: return 0; } ---------------------------------------------- pr10435.c: In function `func': pr10435.c:42: warning: assignment makes integer from pointer without a cast pr10435.c:47: warning: passing arg 1 of `__builtin_ffs' makes integer from point er without a cast pr10435.c:58: warning: passing arg 1 of `print_func' makes pointer from integer without a cast pr10435.c:62: warning: comparison between pointer and integer pr10435.c:67: error: insn does not satisfy its constraints: (insn 192 191 193 5 0xf80e70 (set (strict_low_part (reg:QI 4 sil)) (eq:QI (reg:CCZ 17 flags) (const_int 0 [0x0]))) 362 {setcc_2} (insn_list 190 (insn_list 191 (n il))) (expr_list:REG_DEAD (reg:CCZ 17 flags) (nil))) pr10435.c:67: internal compiler error: in copyprop_hardreg_forward_1, at regrena me.c:1607 Please submit a full bug report, I'm pretty sure someone can reduce it further, but that won't be me :) Compile with -O2. Confirmed with 3.4 CVS 20030503. http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=10435