This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
c/4613: A.c:53: Internal compiler error in change_address, at emit-rtl.c:1635
- To: gcc-gnats at gcc dot gnu dot org
- Subject: c/4613: A.c:53: Internal compiler error in change_address, at emit-rtl.c:1635
- From: Lyall dot Pearce at EDS dot com
- Date: 18 Oct 2001 23:41:29 -0000
- Reply-To: Lyall dot Pearce at EDS dot com
>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);
}