This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Internal compiler error in `int_mode_for_mode'


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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]