19991102 chk-ICE compiling gcc/cexp.c on alpha-dec-osf4.0e

Brown, Rodney rodneybrown@pmsc.com
Thu Nov 4 19:10:00 GMT 1999


Title: 19991102 chk-ICE compiling gcc/cexp.c on alpha-dec-osf4.0e





--enable-checking 


dbxout.c:lastfile probably being garbage collected - as others have
observed. - Note that the same idiom is used in dwarf2out and xcoffout.


stage1/xgcc -Bstage1/ -B/usr/local/alpha-dec-osf4.0e/bin/  -DIN_GCC    -W -Wall -O2 -g -O2  -DHAVE_CONFIG_H    -I. -I../../egcs-19991102/gcc -I../../egcs-19991102/gcc/config -I../../egcs-19991102/gcc/../include -c ../../egcs-19991102/gcc/cexp.c

cexp.y: In function `yyparse':
cexp.y:310: warning: comparison between signed and unsigned
cexp.y:317: warning: comparison between signed and unsigned
cexp.y:324: warning: comparison between signed and unsigned
cexp.y:331: warning: comparison between signed and unsigned
xgcc: Internal compiler error: program cc1 got fatal signal 11
make[2]: *** [cexp.o] Error 1
make[2]: Leaving directory `/user/rand/rdb/src/egcs-19991102.chk/gcc'



 stage1/cc1 cexp.i -quiet -dumpbase cexp.c -g -O2 -O2 -W -Wall -version -o cexp.s
GNU C version 2.96 19991102 (experimental) (alpha-dec-osf4.0e) compiled by GNU C version egcs-2.91.66 19990314 (egcs-1.1.2 release).

cexp.y: In function `yyparse':
cexp.y:310: warning: comparison between signed and unsigned
cexp.y:317: warning: comparison between signed and unsigned
cexp.y:324: warning: comparison between signed and unsigned
cexp.y:331: warning: comparison between signed and unsigned
xgcc: Internal compiler error: program cc1 got fatal signal 11



GNU C version 2.96 19991102 (experimental) (alpha-dec-osf4.0e) compiled by GNU C version egcs-2.91.66 19990314 (egcs-1.1.2 release).

cexp.y: In function `yyparse':
cexp.y:310: warning: comparison between signed and unsigned
cexp.y:317: warning: comparison between signed and unsigned
cexp.y:324: warning: comparison between signed and unsigned
cexp.y:331: warning: comparison between signed and unsigned


Program received signal SIGSEGV, Segmentation fault.
0x3ff800d591c in strcmp () from /usr/shlib/libc.so
#0  0x3ff800d591c in strcmp () from /usr/shlib/libc.so
#1  0x1202489b8 in dbxout_source_file (file=0x3ffc0080380, 
    filename=0x179c8 "cexp.y") at ../../egcs-19991102/gcc/dbxout.c:533
#2  0x120248be4 in dbxout_source_line (file=0x3ffc0080380, 
    filename=0x179c8 "cexp.y", lineno=410)
    at ../../egcs-19991102/gcc/dbxout.c:564
#3  0x12063b4a4 in output_source_line (file=0x3ffc0080380, insn=0x2ecd40)
    at ../../egcs-19991102/gcc/final.c:3037
#4  0x1206345b8 in final_start_function (first=0x2ecd40, file=0x3ffc0080380, 
    optimize=2) at ../../egcs-19991102/gcc/final.c:1647
#5  0x120034048 in rest_of_compilation (decl=0x21ea00)
    at ../../egcs-19991102/gcc/toplev.c:4402
#6  0x1207cc83c in finish_function (nested=0)
    at ../../egcs-19991102/gcc/c-decl.c:6713
#7  0x120799d90 in yyparse () at c-parse.y:314
#8  0x12002fe08 in compile_file (name=0x162c8 '¥' <repeats 24 times>, "packed")


    at ../../egcs-19991102/gcc/toplev.c:3206
#9  0x120036f10 in main (argc=13, argv=0x11ffffcc8)
    at ../../egcs-19991102/gcc/toplev.c:5583
5263       Exit code is 35 if can't open files, 34 if fatal error,
5264       33 if had nonfatal errors, else success.  */
5265    
5266    extern int main PROTO ((int, char **));
5267    
5268    int
5269    main (argc, argv)
5270         int argc;
5271         char **argv;
5272    {
(gdb) p lastfile
$1 = 0x305dc0 <Error reading address 0x305dc0: Invalid argument>
(gdb) b dbxout.c:533
(gdb) cond 5 lastfile==0x305dc0
(gdb) r
The program being debugged has been started already.
Start it from the beginning? (y or n) y


Starting program: /user/rand/rdb/src/egcs-19991102.chk/gcc/stage1/cc1 cexp.i -quiet -dumpbase cexp.c -g -O2 -O2 -W -Wall -version -o cexp.s

GNU C version 2.96 19991102 (experimental) (alpha-dec-osf4.0e) compiled by GNU C version egcs-2.91.66 19990314 (egcs-1.1.2 release).

cexp.y: In function `yyparse':
cexp.y:310: warning: comparison between signed and unsigned
cexp.y:317: warning: comparison between signed and unsigned
cexp.y:324: warning: comparison between signed and unsigned
cexp.y:331: warning: comparison between signed and unsigned


Breakpoint 5, dbxout_source_file (file=0x3ffc0080380, 
    filename=0x305000 "/usr/cygnus/TBD-TBD/share/bison.simple")
    at ../../egcs-19991102/gcc/dbxout.c:533
533       if (filename && (lastfile == 0 || strcmp (filename, lastfile)))
(gdb) p lastfile
$6 = 0x305dc0 "/usr/cygnus/TBD-TBD/share/bison.simple"
(gdb) cond 5 lastfile==0x305dc0 && *lastfile!='/'
(gdb) b xmalloc
(gdb) cond 7 lastfile==0x305dc0 && *lastfile!='/'
(gdb) c
Continuing.


Breakpoint 7, xmalloc (size=5369033656)
    at ../../egcs-19991102/libiberty/xmalloc.c:67
67      {
(gdb) p lastfile
$7 = 0x305dc0 'Â¥' <repeats 200 times>...
(gdb) bt
#0  xmalloc (size=5369033656) at ../../egcs-19991102/libiberty/xmalloc.c:67
warning: Hit beginning of text section without finding
warning: enclosing function for address 0x2b4ac0
This warning occurs if you are debugging a function without any symbols
(for example, in a stripped executable).  In that case, you may wish to
increase the size of the search with the `set heuristic-fence-post' command.


Otherwise, you told GDB there was a function where there isn't one, or
(more likely) you have encountered a bug in GDB.
(gdb) info break
Num Type           Disp Enb Address    What
4   breakpoint     keep y   0x12002c088 in fatal
                                       at ../../egcs-19991102/gcc/toplev.c:1953
5   breakpoint     keep y   0x120248990 in dbxout_source_file
                                       at ../../egcs-19991102/gcc/dbxout.c:533
        stop only if lastfile == 3169728 && *lastfile != 47 '/'
        breakpoint already hit 1 time
7   breakpoint     keep y   0x12080d408 in xmalloc
                                       at ../../egcs-19991102/libiberty/xmalloc.c:67
        stop only if lastfile == 3169728 && *lastfile != 47 '/'
        breakpoint already hit 1 time



gcc/dbxout.c:static const char *lastfile;
gcc/dbxout.c:  lastfile = input_file_name;
gcc/dbxout.c:  if (filename && (lastfile == 0 || strcmp (filename, lastfile)))
gcc/dbxout.c:      lastfile = filename;
gcc/dwarf2out.c:          static const char *lastfile;
gcc/dwarf2out.c:          if (lastfile == 0 || strcmp (filename, lastfile))
gcc/dwarf2out.c:              lastfile = filename;
gcc/xcoffout.c:char *xcoff_lastfile;
gcc/xcoffout.c:      && (xcoff_lastfile == 0 || strcmp (filename, xcoff_lastfile)
gcc/xcoffout.c:      xcoff_lastfile = filename;






More information about the Gcc-bugs mailing list