This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
egcs 1.0.2 is broken on alpha
- To: rth at cygnus dot com
- Subject: egcs 1.0.2 is broken on alpha
- From: hjl at lucon dot org (H.J. Lu)
- Date: Wed, 8 Apr 1998 20:03:44 -0700 (PDT)
- Cc: law at cygnus dot com, egcs at cygnus dot com
Hi,
I think egcs 1.0.2 is broken on alpha. I got
# gcc -S -O2 980408-1.c
gcc: Internal compiler error: program cc1 got fatal signal 11
Is there a fix for egcs 1.0.2?
H.J.
--
Program received signal SIGSEGV, Segmentation fault.
find_reloads (insn=0x12030f360, replace=0, ind_levels=0, live_known=1,
reload_reg_p=0x1202bc938) at
/home/work/misc/gnu/src/egcs/gcc/reload.c:2536
2536 register RTX_CODE code = GET_CODE (recog_operand[i]);
(gdb) bt
#0 find_reloads (insn=0x12030f360, replace=0, ind_levels=0, live_known=1,
reload_reg_p=0x1202bc938) at /home/work/misc/gnu/src/egcs/gcc/reload.c:2536
#1 0x120125f7c in reload (first=0x1202ce9f0, global=1, dumpfile=0x0)
at /home/work/misc/gnu/src/egcs/gcc/reload1.c:1120
#2 0x120114a90 in global_alloc (file=0x0)
at /home/work/misc/gnu/src/egcs/gcc/global.c:584
#3 0x12002f118 in rest_of_compilation (decl=0x1202f4b80)
at /home/work/misc/gnu/src/egcs/gcc/toplev.c:3534
#4 0x120017384 in finish_function (nested=0)
at /home/work/misc/gnu/src/egcs/gcc/c-decl.c:7050
#5 0x1200020ec in yyparse () at c-parse.y:316
#6 0x12002ccb8 in compile_file (name=0x1202a5080 "")
at /home/work/misc/gnu/src/egcs/gcc/toplev.c:2513
#7 0x1200309d0 in main (argc=7, argv=0x1202a60c0, envp=0x1202ed888)
at /home/work/misc/gnu/src/egcs/gcc/toplev.c:4416
(gdb) call debug_rtx (insn)
(insn 662 651 673 (set (mem:DI (plus:DI (reg:DI 30 $30)
(const_int 104)))
(subreg:DI (minus:SI (mult:SI (reg:SI 514)
(const_int 4))
(reg:SI 514)) 0)) 28 {subdi3+1} (insn_list 656 (nil))
(expr_list:REG_DEAD (reg:SI 514)
(nil)))
---
Wed Apr 8 19:55:10 1998 H.J. Lu (hjl@gnu.org)
* compile/980408-1.c: New.
--- /dev/null Wed Dec 31 16:00:00 1969
+++ compile/980408-1.c Wed Apr 8 19:54:22 1998
@@ -0,0 +1,129 @@
+typedef struct _RunlengthPacket
+{
+ unsigned short
+ red,
+ green,
+ blue,
+ length;
+ unsigned short
+ index;
+} RunlengthPacket;
+typedef struct _Image
+{
+ int
+ status,
+ temporary;
+ char
+ filename[1664 ];
+ long int
+ filesize;
+ int
+ pipe;
+ char
+ magick[1664 ],
+ *comments,
+ *label,
+ *text;
+ unsigned int
+ matte;
+ unsigned int
+ columns,
+ rows,
+ depth;
+ unsigned int
+ scene,
+ number_scenes;
+ char
+ *montage,
+ *directory;
+ unsigned int
+ colors;
+ double
+ gamma;
+ float
+ x_resolution,
+ y_resolution;
+ unsigned int
+ mean_error_per_pixel;
+ double
+ normalized_mean_error,
+ normalized_maximum_error;
+ unsigned long
+ total_colors;
+ char
+ *signature;
+ unsigned int
+ packets,
+ runlength,
+ packet_size;
+ unsigned char
+ *packed_pixels;
+ long int
+ magick_time;
+ char
+ magick_filename[1664 ];
+ unsigned int
+ magick_columns,
+ magick_rows;
+ char
+ *geometry,
+ *page;
+ unsigned int
+ dispose,
+ delay,
+ iterations;
+ unsigned int
+ orphan;
+ struct _Image
+ *previous,
+ *list,
+ *next;
+} Image;
+ Image *MinifyImage(Image *image)
+{
+ Image
+ *minified_image;
+ register RunlengthPacket
+ *q,
+ *s,
+ *s0,
+ *s1,
+ *s2,
+ *s3;
+ register unsigned int
+ x;
+ unsigned int
+ blue,
+ green,
+ red;
+ unsigned long
+ total_matte,
+ total_blue,
+ total_green,
+ total_red;
+ unsigned short
+ index;
+ for (x=0; x < (image->columns-1); x+=2)
+ {
+ total_red=0;
+ total_green=0;
+ total_blue=0;
+ total_matte=0;
+ s=s0;
+ total_red+=( 3 )*(s->red); total_green+=( 3 )*(s->green); total_blue+=( 3 )*(s->blue); total_matte+=( 3 )*(s->index); s++; ; total_red+=( 7 )*(s->red); total_green+=( 7 )*(s->green); total_blue+=( 7 )*(s->blue); total_matte+=( 7 )*(s->index); s++; ; total_red+=( 7 )*(s->red); total_green+=( 7 )*(s->green); total_blue+=( 7 )*(s->blue); total_matte+=( 7 )*(s->index); s++; ; total_red+=( 3 )*(s->red); total_green+=( 3 )*(s->green); total_blue+=( 3 )*(s->blue); total_matte+=( 3 )*(s->index); s++; ;
+ s=s1;
+ total_red+=( 7 )*(s->red); total_green+=( 7 )*(s->green); total_blue+=( 7 )*(s->blue); total_matte+=( 7 )*(s->index); s++; ; total_red+=( 15 )*(s->red); total_green+=( 15 )*(s->green); total_blue+=( 15 )*(s->blue); total_matte+=( 15 )*(s->index); s++; ; total_red+=( 15 )*(s->red); total_green+=( 15 )*(s->green); total_blue+=( 15 )*(s->blue); total_matte+=( 15 )*(s->index); s++; ; total_red+=( 7 )*(s->red); total_green+=( 7 )*(s->green); total_blue+=( 7 )*(s->blue); total_matte+=( 7 )*(s->index); s++; ;
+ s=s2;
+ total_red+=( 7 )*(s->red); total_green+=( 7 )*(s->green); total_blue+=( 7 )*(s->blue); total_matte+=( 7 )*(s->index); s++; ; total_red+=( 15 )*(s->red); total_green+=( 15 )*(s->green); total_blue+=( 15 )*(s->blue); total_matte+=( 15 )*(s->index); s++; ; total_red+=( 15 )*(s->red); total_green+=( 15 )*(s->green); total_blue+=( 15 )*(s->blue); total_matte+=( 15 )*(s->index); s++; ; total_red+=( 7 )*(s->red); total_green+=( 7 )*(s->green); total_blue+=( 7 )*(s->blue); total_matte+=( 7 )*(s->index); s++; ;
+ s=s3;
+ total_red+=( 3 )*(s->red); total_green+=( 3 )*(s->green); total_blue+=( 3 )*(s->blue); total_matte+=( 3 )*(s->index); s++; ; total_red+=( 7 )*(s->red); total_green+=( 7 )*(s->green); total_blue+=( 7 )*(s->blue); total_matte+=( 7 )*(s->index); s++; ; total_red+=( 7 )*(s->red); total_green+=( 7 )*(s->green); total_blue+=( 7 )*(s->blue); total_matte+=( 7 )*(s->index); s++; ; total_red+=( 3 )*(s->red); total_green+=( 3 )*(s->green); total_blue+=( 3 )*(s->blue); total_matte+=( 3 )*(s->index); s++; ;
+ red=(unsigned short) ((total_red+63) >> 7);
+ green=(unsigned short) ((total_green+63) >> 7);
+ blue=(unsigned short) ((total_blue+63) >> 7);
+ index=(unsigned short) ((total_matte+63) >> 7);
+ if ((red == q->red) && (green == q->green) && (blue == q->blue) &&
+ (index == q->index) && ((int) q->length < 65535L ))
+ q->length++;
+ }
+ return(minified_image);
+}