Date: Fri, 2 Jul 1999 16:51:03 -0400 From: Igor Schein To: Pgcc Mailing List Subject: failed 'make check' Message-Id: <19990702165103.S19108@pandora.txc.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 0.95.6us Reply-To: pgcc AT delorie DOT com Hi, one of the files in the test suite, 950512-5.c could not be compiled with optimization. Here's the file: ------------------------------------------------------------------------ typedef unsigned short uint16; f (unsigned char *w) { w[2] = (uint16) ((((g (0) % 10000 + 42) & 0xFF) << 8) | (((g (0) % 10000 + 42) >> 8) & 0xFF)) & 0xFF, w[3] = (uint16) ((((g (0) % 10000 + 42) & 0xFF) << 8) | (((g (0) % 10000 + 42) >> 8) & 0xFF)) >> 8; } ------------------------------------------------------------------------ Here's the error: ------------------------------------------------------------------------ 950512-1.c: In function `f': 950512-1.c:6: fixed or forbidden register 0 (ax) was spilled for class AREG. 950512-1.c:6: This may be due to a compiler bug or to impossible asm 950512-1.c:6: statements or clauses. 950512-1.c:6: This is the instruction: (insn 60 57 61 (parallel[ (set (reg:SI 1 %edx) (truncate:SI (lshiftrt:DI (mult:DI (sign_extend:DI (reg:SI 5 %edi)) (sign_extend:DI (reg:SI 3 %ebx))) (const_int 32 [0x20])))) (clobber (scratch:SI)) ] ) 241 {smulsi3_highpart} (insn_list 49 (nil)) (expr_list:REG_DEAD (reg:SI 3 %ebx) (expr_list:REG_UNUSED (scratch:SI) (nil)))) ------------------------------------------------------------------------ The platform on which it occured is pentiumpro, but I suspect it's platform-independent. The version of pgcc used is 990629. Thanks Igor