Building Qt on ia64-unknown-linux-gnu with the current CVS fails with the following ICE: /home/build/gcc_mainline/ia64/install/bin/g++ -c \ [includes and defines] \ -pipe -O2 -fPIC \ -o kernel/moc_qwidget.o kernel/moc_qwidget.cpp kernel/moc_qwidget.cpp: In static member function `static QMetaObject* QWidget::staticMetaObject()': kernel/moc_qwidget.cpp:1016: Internal compiler error in set_mem_alias_set, at emit-rtl.c:1715 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions. Output for -v for this compiler: Reading specs from /home/build/gcc_mainline/ia64/install/lib/gcc-lib/ia64-unknow n-linux/3.2/specs Configured with: ../../gcc/configure --prefix=/home/build/gcc_mainline/ia64/inst all --enable-shared --enable-threads Thread model: posix gcc version 3.2 20020507 (experimental) This is the first time I tried building Qt with the mainline. It works fine with current 3.1 prerelease. Release: 3.2 20020507 (experimental) Environment: ia64-unknown-linux-gnu; Itanium, Red Hat Linux release 7.1.94 (Roswell) How-To-Repeat: Compile the attached preprocessed file with -O2 on ia64-linux.
From: Janis Johnson <janis187@us.ibm.com> To: janis187@us.ibm.com Cc: gcc-gnats@gcc.gnu.org Subject: Re: optimization/6597: ICE in set_mem_alias_set compiling Qt with -O2 on ia64 Date: Fri, 11 Oct 2002 11:40:16 -0700 This ICE still occurs with GCC 3.3 20021008 (experimental) on ia64 when Qt is compiled with -O2. It's a regression from GCC 3.1. It doesn't occur when the mainline is built with checking disabled, so it won't show up in the release version unless GCC is built with checking enabled. Qt passes all of its tests when built with -O2 using mainline G++ built with checking disabled. The bug was introduced sometime between 20020228 and 20020315. GCC didn't build (even for a simple build of C and C++) on ia64-linux between those dates, which was right after 3.1 had branched so there were LOTS of changes. I'll leave this PR open for now, but unless the bug shows up in other places it's probably not worth worrying about. Here's a cut-down test case: struct QWidget { void repaint (int x, int y, int w, int h, bool erase=true); }; void foo () { typedef void (QWidget::*t14)(int, int, int, int, bool); t14 v14 = &QWidget::repaint; }
State-Changed-From-To: open->feedback State-Changed-Why: Janis, does the ICE still occur? If so, I think you should raise the PR priority since it's a regression.
From: Eric Botcazou <ebotcazou@libertysurf.fr> To: Janis Johnson <janis187@us.ibm.com> Cc: gcc-bugs@gcc.gnu.org, nobody@gcc.gnu.org, gcc-gnats@gcc.gnu.org Subject: Re: optimization/6597: ICE in set_mem_alias_set compiling Qt with -O2 on ia64 Date: Fri, 7 Mar 2003 01:41:03 +0100 > The ICE still occurs on ia64-unknown-linux-gnu with today's > mainline and 3.3-branch, but only with checking enabled. > When checking is disabled, the code compiles cleanly. I think you should raise the priority anyway. -- Eric Botcazou
Janis, with gcc 3.2.3, 3.3 branch and mainline (20030520) on IA64/HP-UX, I can't reproduce the ICE here. Can you confirm whether this still occurs? Thanks, Dara
Man ia64 build is slow for scheduling. Man gcc is slow with all checking turned on. I also do not see this on the mainline (20030611) on a cross compiler from powerpc- apple-darwin6.6 to ia64-unknown-linux-gnu (with all checking turned on, misc,tree,rtlflag,rtl,gc,gcac) with either the smaller testcase or the larger one. Can you check again?
The problem does not occur on ia64-linux with today's mainline (20030613) or with GCC 3.3 built with checking enabled, so this PR can be closed. Sorry for the long delay; I didn't have access to an ia64 system for awhile.
Janis reports this as fixed. Thanks for the feedback!