This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Bug fix missed in gcc-2.95.2
- To: bug-gcc at gnu dot org
- Subject: Bug fix missed in gcc-2.95.2
- From: "Adam J. Richter" <adam at yggdrasil dot com>
- Date: Tue, 26 Oct 1999 03:15:42 -0700
On October 4th, Mark Mitchtell posted a fix to bug-gcc
for a problem that I reported on September 1st. It looks like
that fix was not integrated into gcc-2.95.2, or perhaps was
clobbered by a subsequent patch, since the relevant line in
gcc/cp/pt.c has moved significantly in the file. Anyhow,
the internal compiler error that I reported still occurs in gcc-2.95.2,
and Mark's fix still seems to fix it (although I made the change
by hand here, because the relevant section of code has moved
up about 9000 lines the file).
I have attached Mark's fix below. Is there anything else I
need to do to get this fix applied? (This fix was not deliberately
left out, right?)
Adam J. Richter __ ______________ 4880 Stevens Creek Blvd, Suite 104
adam@yggdrasil.com \ / San Jose, California 95129-1034
+1 408 261-6630 | g g d r a s i l United States of America
fax +1 408 261-6631 "Free Software For The Rest Of Us."
>From mitchell@codesourcery.com Mon Oct 4 02:50:48 1999
To: adam@yggdrasil.com
Cc: bug-gcc@gnu.org
Subject: Re: egcs-19990824: g++ -g -O generating bad assembly on x86
linux glibc-2.1.1
In-Reply-To: <199909010704.AAA27356@adam.yggdrasil.com>
References: <199909010704.AAA27356@adam.yggdrasil.com>
X-Mailer: Mew version 1.94b25 on Emacs 20.3 / Mule 4.0 (HANANOEN)
X-URL: http://www.codesourcery.com
Organization: CodeSourcery, LLC
From: Mark Mitchell <mark@codesourcery.com>
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Date: Mon, 04 Oct 1999 02:38:31 -0700
Sender: Mark Mitchell <mitchell@codesourcery.com>
X-Dispatcher: imput version 990425(IM115)
Lines: 70
Here's the fix for this problem.
--
Mark Mitchell mark@codesourcery.com
CodeSourcery, LLC http://www.codesourcery.com
Index: testsuite/g++.old-deja/g++.pt/memtemp92.C
===================================================================
RCS file: memtemp92.C
diff -N memtemp92.C
*** /dev/null Sat Dec 5 20:30:03 1998
--- memtemp92.C Mon Oct 4 02:22:11 1999
***************
*** 0 ****
--- 1,30 ----
+ // Build don't link:
+ // Origin: "Adam J. Richter" <adam@yggdrasil.com>
+
+ template <class Style, class Base>
+ class theme_map {
+ };
+
+ class QWidget {
+ protected:
+ virtual void *harmony_get_list_for_signal(const char *) const;
+
+ public:
+ static theme_map<int, QWidget> ContentsThemes;
+
+ protected:
+ virtual void updateDrawingObjects (void)
+ {
+ update_dro (QWidget::ContentsThemes);
+ }
+
+ template <class S, class B>
+ void update_dro (theme_map<S, B>& themes)
+ {
+ }
+ };
+
+ void *QWidget::harmony_get_list_for_signal(const char *sig) const
+ {
+ return 0;
+ }
Index: cp/pt.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/cp/pt.c,v
retrieving revision 1.371
diff -c -p -r1.371 pt.c
*** pt.c 1999/10/03 18:57:07 1.371
--- pt.c 1999/10/04 09:17:59
*************** instantiate_decl (d)
*** 9555,9561 ****
code_pattern = DECL_TEMPLATE_RESULT (td);
if (TREE_CODE (d) == FUNCTION_DECL)
! pattern_defined = (DECL_INITIAL (code_pattern) != NULL_TREE);
else
pattern_defined = ! DECL_IN_AGGR_P (code_pattern);
--- 9555,9561 ----
code_pattern = DECL_TEMPLATE_RESULT (td);
if (TREE_CODE (d) == FUNCTION_DECL)
! pattern_defined = (DECL_SAVED_TREE (code_pattern) != NULL_TREE);
else
pattern_defined = ! DECL_IN_AGGR_P (code_pattern);