Internal compiler error in `int_mode_for_mode'

Andreas Schwab schwab@suse.de
Thu Jan 20 10:15:00 GMT 2000


The following test case gives an internal compiler error when compiled for
alpha-linux:

$ cat pad2.i
extern char letters[26+1];
char letter;
int letter_number;
char letters[] = "AbCdefghiJklmNopQrStuVwXyZ";

static void
pad_home1 ()
{
  letter = letters[letter_number =
		   letters[letter_number + 1] ? letter_number +
		   1 : 0];
}
$ gcc -v -S pad2.i
Reading specs from /usr/lib/gcc-lib/alpha-suse-linux/2.95.2/specs
gcc version 2.95.2 19991024 (release)
 /usr/lib/gcc-lib/alpha-suse-linux/2.95.2/cc1 pad2.i -quiet -version -o pad2.s
GNU C version 2.95.2 19991024 (release) (alpha-suse-linux) compiled by GNU C version 2.95.2 19991024 (release).
pad2.i: In function `pad_home1':
pad2.i:11: Internal compiler error in `int_mode_for_mode', at stor-layout.c:229
Please submit a full bug report.
See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for instructions.

Please note that the abort does not occur when the first line (extern
declaration for letters) is deleted.  The problem is that the compiler
generates a MEM rtx for the variable letters without a mode:
(mem/s (symbol_ref:DI ("letters")) 0)

Andreas.

-- 
Andreas Schwab                                  "And now for something
SuSE Labs                                        completely different."
schwab@suse.de
SuSE GmbH, Schanzäckerstr. 10, D-90443 Nürnberg


More information about the Gcc-bugs mailing list