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]

internal compiler error - unrecognizable insn


Just had one of those "pleasant" internal compiler errors, so I thought
I'd share.

The source file in question is part of the current (as of about 15:00 UTC,
october 28th) gnome-utils CVS snapshot. glib, gtk+ and gnome-libs are taken
from the same server at the same time.

About egcs and OS:

michael p4 1:22 padde[83] gcc -v
Reading specs from /usr/lib/gcc-lib/i686-pc-linux-gnu/egcs-2.92.16/specs
gcc version egcs-2.92.16 19981019 (gcc2 ss-980609 experimental)
michael p4 1:22 padde[84] uname -a
Linux padde.farmasi.uit.no 2.1.123 #19 Wed Oct 21 19:09:22 MEST 1998 i686 unknown


The failed command and error message:

gcc -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/local/include -I/usr/local/include -DNEED_GNOMESUPPORT_H -I/usr/local/lib/gnome-libs/include -I/usr/X11R6/include -I/usr/lib/glib/include -DGNOMELOCALEDIR=\""/usr/local/share/locale"\" -I../../gcalendar -I/usr/X11R6/include -I/usr/lib/glib/include -g -O2 -Wall -c gnome-month-item.c
gnome-month-item.c: In function `check_day_sizes':
gnome-month-item.c:226: internal error--unrecognizable insn:
(insn:QI 135 132 23 (set (reg:DF 8 %st(0))
        (mem/s:DF (plus:SI (mem:SI (plus:SI (reg:SI 6 %ebp)
                        (const_int 8)) 0)
                (const_int 116)) 3)) -1 (insn_list 155 (insn_list 152 (insn_list 156 (insn_list 157 (insn_list 158 (nil))))))
    (nil))
toplev.c:1370: Internal compiler error in function fatal_insn
make[2]: *** [gnome-month-item.o] Error 1
make[2]: Leaving directory `/users/michael/cvs/gnome-utils/gncal'

The part of source where it fails looks pretty unsuspicious. I'll cite the
whole function in question (line 226 is the last line of this function, the
one with the closing brace):

/* Calculates the minimum width and height of the month item based on the day font size and padding.
 * Assumes that the minimum heading height has already been computed.
 */
static void
check_day_sizes (GnomeMonthItem *mitem)
{
   double m_height;
   double m_width;
   int width;
   int max_width;
   char buf[100];
   int i;

   /* Calculate minimum height */

   m_height = mitem->head_height + 6 * (mitem->day_font->ascent + mitem->day_font->descent + 2 * mitem->day_padding);

   if (mitem->height < m_height)
      mitem->height = m_height;

   /* Calculate minimum width */

   max_width = 0;

   for (i = 1; i < 32; i++) {
      sprintf (buf, "%d", i);
      width = gdk_string_width (mitem->day_font, buf);
      if (max_width < width)
         max_width = width;
   }

   m_width = 7 * (max_width + 2 * mitem->day_padding);

   if (mitem->width < m_width)
      mitem->width = m_width;
}


So. Any ideas?

Michael
-- 
"We'll be rats in the wainscoting, unnoticed but thriving on
scraps of bandwidth that nobody will miss."
        Charlie Gibbs in alt.folklore.computers



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