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]

c/4613: A.c:53: Internal compiler error in change_address, at emit-rtl.c:1635



>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);
}


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