public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* ice on valid code: switch in a while with -O2
@ 2004-08-12 20:40 De Beukelaer Fabrice
2004-08-13 9:42 ` Eric Botcazou
0 siblings, 1 reply; 2+ messages in thread
From: De Beukelaer Fabrice @ 2004-08-12 20:40 UTC (permalink / raw)
To: gcc-bugs
Hello,
The following code:
===================
1 /* bug.c */
2 #include <stdlib.h>
3
4 int bar(void);
5
6 int main(void)
7 {
8 int foo;
9
10 while ((foo = bar())) {
11 switch (foo) {
12 default:
13 exit(EXIT_FAILURE);
14 }
15 }
16
17 return EXIT_SUCCESS;
18 }
causes:
=======
% gcc -O2 -c bug.c
bug.c: In function `main':
bug.c:18: internal compiler error: Segmentation Fault
Please submit a full bug report,
with preprocessed source if appropriate.
on :
====
SunOS sun.celie.net 5.9 Generic_112233-05 sun4u sparc SUNW,Ultra-1
output of gcc -v -save-temps -O2 -c bug.c
==========================================
Reading specs from
/export/opt/pkg/gcc-3.4.1/bin/../lib/gcc/sparc-sun-solaris2.9/3.4.1/specs
Configured with: ../configure --prefix=/opt/pkg/gcc-3.4.1
--enable-languages=c,c++ --disable-nls --with-cpu=v9
Thread model: posix
gcc version 3.4.1
/export/opt/pkg/gcc-3.4.1/bin/../libexec/gcc/sparc-sun-solaris2.9/3.4.1/cc1 -E -quiet -v -iprefix /export/opt/pkg/gcc-3.4.1/bin/../lib/gcc/sparc-sun-solaris2.9/3.4.1/ -D__sparcv8 bug.c -mcpu=v9 -O2 -o bug.i
ignoring nonexistent directory
"/export/opt/pkg/gcc-3.4.1/bin/../lib/gcc/sparc-sun-solaris2.9/3.4.1/../../../../sparc-sun-solaris2.9/include"
ignoring duplicate directory
"/opt/pkg/gcc-3.4.1/lib/gcc/sparc-sun-solaris2.9/3.4.1/include"
ignoring nonexistent directory
"/opt/pkg/gcc-3.4.1/lib/gcc/sparc-sun-solaris2.9/3.4.1/../../../../sparc-sun-solaris2.9/include"
#include "..." search starts here:
#include <...> search starts here:
/export/opt/pkg/gcc-3.4.1/bin/../lib/gcc/sparc-sun-solaris2.9/3.4.1/include
/usr/local/include
/opt/pkg/gcc-3.4.1/include
/usr/include
End of search list.
/export/opt/pkg/gcc-3.4.1/bin/../libexec/gcc/sparc-sun-solaris2.9/3.4.1/cc1 -fpreprocessed bug.i -quiet -dumpbase bug.c -mcpu=v9 -auxbase bug -O2 -version -o bug.s
GNU C version 3.4.1 (sparc-sun-solaris2.9)
compiled by GNU C version 3.4.1.
GGC heuristics: --param ggc-min-expand=56 --param ggc-min-heapsize=49152
bug.c: In function `main':
bug.c:18: internal compiler error: Segmentation Fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
notes:
======
The segmentation fault occurs only with -O2. With no optimization or
with -O1, -O3, -O4 there are no problems.
The bug was also in 3.4.0.
Thanks for your work
dbk <sfc@village.uunet.be>
preprocessed file bug.i:
========================
# 1 "bug.c"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "bug.c"
# 1 "/usr/include/stdlib.h" 1 3 4
# 16 "/usr/include/stdlib.h" 3 4
#pragma ident "@(#)stdlib.h 1.48 00/04/13 SMI"
# 1 "/usr/include/iso/stdlib_iso.h" 1 3 4
# 28 "/usr/include/iso/stdlib_iso.h" 3 4
#pragma ident "@(#)stdlib_iso.h 1.3 01/03/09 SMI"
# 1 "/usr/include/sys/feature_tests.h" 1 3 4
# 13 "/usr/include/sys/feature_tests.h" 3 4
#pragma ident "@(#)feature_tests.h 1.18 99/07/26 SMI"
# 1 "/usr/include/sys/isa_defs.h" 1 3 4
# 9 "/usr/include/sys/isa_defs.h" 3 4
#pragma ident "@(#)isa_defs.h 1.20 99/05/04 SMI"
# 16 "/usr/include/sys/feature_tests.h" 2 3 4
# 31 "/usr/include/iso/stdlib_iso.h" 2 3 4
extern unsigned char __ctype[];
# 48 "/usr/include/iso/stdlib_iso.h" 3 4
typedef struct {
int quot;
int rem;
} div_t;
typedef struct {
long quot;
long rem;
} ldiv_t;
typedef unsigned int size_t;
# 84 "/usr/include/iso/stdlib_iso.h" 3 4
typedef long wchar_t;
extern void abort(void);
extern int abs(int);
extern int atexit(void (*)(void));
extern double atof(const char *);
extern int atoi(const char *);
extern long int atol(const char *);
extern void *bsearch(const void *, const void *, size_t, size_t,
int (*)(const void *, const void *));
extern void *calloc(size_t, size_t);
extern div_t div(int, int);
extern void exit(int);
extern void free(void *);
extern char *getenv(const char *);
extern long int labs(long);
extern ldiv_t ldiv(long, long);
extern void *malloc(size_t);
extern int mblen(const char *, size_t);
extern size_t mbstowcs(wchar_t *, const char *, size_t);
extern int mbtowc(wchar_t *, const char *, size_t);
extern void qsort(void *, size_t, size_t,
int (*)(const void *, const void *));
extern int rand(void);
extern void *realloc(void *, size_t);
extern void srand(unsigned int);
extern double strtod(const char *, char **);
extern long int strtol(const char *, char **, int);
extern unsigned long int strtoul(const char *, char **, int);
extern int system(const char *);
extern int wctomb(char *, wchar_t);
extern size_t wcstombs(char *, const wchar_t *, size_t);
# 19 "/usr/include/stdlib.h" 2 3 4
# 68 "/usr/include/stdlib.h" 3 4
typedef struct {
long long quot;
long long rem;
} lldiv_t;
typedef long uid_t;
# 112 "/usr/include/stdlib.h" 3 4
extern void _exithandle(void);
extern double drand48(void);
extern double erand48(unsigned short *);
extern long jrand48(unsigned short *);
extern void lcong48(unsigned short *);
extern long lrand48(void);
extern long mrand48(void);
extern long nrand48(unsigned short *);
extern unsigned short *seed48(unsigned short *);
extern void srand48(long);
extern int putenv(char *);
extern void setkey(const char *);
# 140 "/usr/include/stdlib.h" 3 4
typedef int ssize_t;
extern void swab(const char *, char *, ssize_t);
extern int mkstemp(char *);
extern int mkstemp64(char *);
extern long a64l(const char *);
extern char *ecvt(double, int, int *, int *);
extern char *fcvt(double, int, int *, int *);
extern char *gcvt(double, int, char *);
extern int getsubopt(char **, char *const *, char **);
extern int grantpt(int);
extern char *initstate(unsigned, char *, size_t);
extern char *l64a(long);
extern char *mktemp(char *);
extern char *ptsname(int);
extern long random(void);
extern char *realpath(const char *, char *);
extern char *setstate(const char *);
extern void srandom(unsigned);
extern int ttyslot(void);
extern int unlockpt(int);
extern void *valloc(size_t);
extern void closefrom(int);
extern int dup2(int, int);
extern int fdwalk(int (*)(void *, int), void *);
extern char *qecvt(long double, int, int *, int *);
extern char *qfcvt(long double, int, int *, int *);
extern char *qgcvt(long double, int, char *);
extern char *getcwd(char *, size_t);
extern const char *getexecname(void);
extern char *getlogin(void);
extern int getopt(int, char *const *, const char *);
extern char *optarg;
extern int optind, opterr, optopt;
extern char *getpass(const char *);
extern char *getpassphrase(const char *);
extern int getpw(uid_t, char *);
extern int isatty(int);
extern void *memalign(size_t, size_t);
extern char *ttyname(int);
extern long long atoll(const char *);
extern long long llabs(long long);
extern lldiv_t lldiv(long long, long long);
extern char *lltostr(long long, char *);
extern long long strtoll(const char *, char **, int);
extern unsigned long long strtoull(const char *, char **, int);
extern char *ulltostr(unsigned long long, char *);
# 2 "bug.c" 2
int bar(void);
int main(void)
{
int foo;
while ((foo = bar())) {
switch (foo) {
default:
exit(1);
}
}
return 0;
}
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: ice on valid code: switch in a while with -O2
2004-08-12 20:40 ice on valid code: switch in a while with -O2 De Beukelaer Fabrice
@ 2004-08-13 9:42 ` Eric Botcazou
0 siblings, 0 replies; 2+ messages in thread
From: Eric Botcazou @ 2004-08-13 9:42 UTC (permalink / raw)
To: De Beukelaer Fabrice; +Cc: gcc-bugs
> % gcc -O2 -c bug.c
> bug.c: In function `main':
> bug.c:18: internal compiler error: Segmentation Fault
> Please submit a full bug report,
> with preprocessed source if appropriate.
Thanks for the bug report. However, you need to file a PR with Bugzilla,
see http://gcc.gnu.org/bugs.html for instructions.
--
Eric Botcazou
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2004-08-13 9:42 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-08-12 20:40 ice on valid code: switch in a while with -O2 De Beukelaer Fabrice
2004-08-13 9:42 ` Eric Botcazou
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).