From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lyall.Pearce@EDS.com To: gcc-gnats@gcc.gnu.org Subject: c/4613: A.c:53: Internal compiler error in change_address, at emit-rtl.c:1635 Date: Thu, 18 Oct 2001 16:46:00 -0000 Message-id: <20011018234129.6098.qmail@sourceware.cygnus.com> X-SW-Source: 2001-10/msg00384.html List-Id: >Number: 4613 >Category: c >Synopsis: A.c:53: Internal compiler error in change_address, at emit-rtl.c:1635 >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: ice-on-legal-code >Submitter-Id: net >Arrival-Date: Thu Oct 18 16:46:02 PDT 2001 >Closed-Date: >Last-Modified: >Originator: Lyall Pearce >Release: gcc 3.0.1 >Organization: >Environment: SunOS dev00011 5.5.1 Generic_103640-32 sun4u sparc SUNW,Ultra-4 Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.5.1/3.0.1/specs Configured with: ../gcc-3.0.1/configure : (reconfigured) ../gcc-3.0.1/configure Thread model: posix gcc version 3.0.1 >Description: Repeat of Problem 4611 with the source trimmed to the absolute minimum in order for the problem to appear. Also, 6 different ways to make the problem appear and disappear. (hope this helps more than the 4611) >How-To-Repeat: gcc -g -O2 -c -o A.o A.c -save-temps >Fix: Any of the following will prevent the problem from appearing. 1. Remove -O2 2. Change the length of facilityCode_CA[49] to anything less than 49 3. Change the initialiser of dumpIfGreaterThan_D from INT_MAX to zero 4. Remove the line dumpIfGreaterThan_D = 0.0 from the switch statement 5. Remove the printf containing the dumpIfGreaterThan_D variable 6. Change the value of MAX_STATS to anything LESS than 84 >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: text/plain; name="A.i" Content-Disposition: inline; filename="A.i" # 13 "A.c" # 1 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.5.1/3.0.1/include/stdio.h" 1 3 # 14 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.5.1/3.0.1/include/stdio.h" 3 # 1 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.5.1/3.0.1/include/stdarg.h" 1 3 # 43 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.5.1/3.0.1/include/stdarg.h" 3 typedef __builtin_va_list __gnuc_va_list; # 15 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.5.1/3.0.1/include/stdio.h" 2 3 # 29 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.5.1/3.0.1/include/stdio.h" 3 #pragma ident "@(#)stdio.h 1.39 95/12/04 SMI" # 1 "/usr/include/sys/feature_tests.h" 1 3 # 11 "/usr/include/sys/feature_tests.h" 3 #pragma ident "@(#)feature_tests.h 1.7 94/12/06 SMI" # 32 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.5.1/3.0.1/include/stdio.h" 2 3 # 1 "/usr/include/sys/va_list.h" 1 3 # 9 "/usr/include/sys/va_list.h" 3 #pragma ident "@(#)va_list.h 1.6 96/01/26 SMI" # 44 "/usr/include/sys/va_list.h" 3 typedef void *__va_list; # 33 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.5.1/3.0.1/include/stdio.h" 2 3 typedef unsigned int size_t; typedef long fpos_t; # 142 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.5.1/3.0.1/include/stdio.h" 3 typedef struct { int _cnt; unsigned char *_ptr; unsigned char *_base; unsigned char _flag; unsigned char _file; } FILE; extern FILE __iob[20]; extern FILE *_lastbuf; extern unsigned char *_bufendtab[]; extern unsigned char _sibuf[], _sobuf[]; extern int remove(const char *); extern int rename(const char *, const char *); extern FILE *tmpfile(void); extern char *tmpnam(char *); extern int fclose(FILE *); extern int fflush(FILE *); extern FILE *fopen(const char *, const char *); extern FILE *freopen(const char *, const char *, FILE *); extern void setbuf(FILE *, char *); extern int setvbuf(FILE *, char *, int, size_t); extern int fprintf(FILE *, const char *, ...); extern int fscanf(FILE *, const char *, ...); extern int printf(const char *, ...); extern int scanf(const char *, ...); extern int sprintf(char *, const char *, ...); extern int sscanf(const char *, const char *, ...); extern int vfprintf(FILE *, const char *, __gnuc_va_list); extern int vprintf(const char *, __gnuc_va_list); extern int vsprintf(char *, const char *, __gnuc_va_list); extern int fgetc(FILE *); extern char *fgets(char *, int, FILE *); extern int fputc(int, FILE *); extern int fputs(const char *, FILE *); extern int getc(FILE *); extern int getchar(void); extern char *gets(char *); extern int putc(int, FILE *); extern int putchar(int); extern int puts(const char *); extern int ungetc(int, FILE *); extern size_t fread(void *, size_t, size_t, FILE *); extern size_t fwrite(const void *, size_t, size_t, FILE *); extern int fgetpos(FILE *, fpos_t *); extern int fseek(FILE *, long, int); extern int fsetpos(FILE *, const fpos_t *); extern long ftell(FILE *); extern void rewind(FILE *); extern void clearerr(FILE *); extern int feof(FILE *); extern int ferror(FILE *); extern void perror(const char *); extern int __filbuf(FILE *); extern int __flsbuf(int, FILE *); extern FILE *fdopen(int, const char *); extern char *ctermid(char *); extern int fileno(FILE *); # 255 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.5.1/3.0.1/include/stdio.h" 3 extern FILE *popen(const char *, const char *); extern char *cuserid(char *); extern char *tempnam(const char *, const char *); extern int getopt(int, char *const *, const char *); extern int getsubopt(char **, char *const *, char **); extern char *optarg; extern int optind, opterr, optopt; extern int getw(FILE *); extern int putw(int, FILE *); extern int pclose(FILE *); # 14 "A.c" 2 # 1 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.5.1/3.0.1/include/stdarg.h" 1 3 # 90 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.5.1/3.0.1/include/stdarg.h" 3 typedef __gnuc_va_list va_list; # 15 "A.c" 2 # 1 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.5.1/3.0.1/include/limits.h" 1 3 # 11 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.5.1/3.0.1/include/limits.h" 3 # 1 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.5.1/3.0.1/include/syslimits.h" 1 3 # 20 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.5.1/3.0.1/include/syslimits.h" 3 #pragma ident "@(#)limits.h 1.29 96/01/11 SMI" # 1 "/usr/include/sys/feature_tests.h" 1 3 # 23 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.5.1/3.0.1/include/syslimits.h" 2 3 # 1 "/usr/include/sys/isa_defs.h" 1 3 #pragma ident "@(#)isa_defs.h 1.7 94/10/26 SMI" # 24 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.5.1/3.0.1/include/syslimits.h" 2 3 # 234 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.5.1/3.0.1/include/syslimits.h" 3 extern long _sysconf(int); # 12 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.5.1/3.0.1/include/limits.h" 2 3 # 16 "A.c" 2 int main(int argc, char *argv[]) { int optionFound_I = 0; typedef struct { char facilityCode_CA[49]; } facilityStats_TD; facilityStats_TD stats_SA[84] = {0}; double dumpIfGreaterThan_D = 2147483647; while((optionFound_I = getopt(argc, argv, "pd:?")) != (-1)) { extern char *optarg; extern int optind; switch (optionFound_I) { case 'd': dumpIfGreaterThan_D = 0.0; break; default: continue; } } printf("transaction(s) exceeded required minimum of %-15.6lf seconds\n", dumpIfGreaterThan_D); return(0); }