mangle.c (hash_type): val is the TREE_LIST itself, not a pointer to it.

* mangle.c (hash_type): val is the TREE_LIST itself, not a pointer
	to it.

	* g++.dg/opt/operator1.C: New test.

From-SVN: r68364
This commit is contained in:
Jakub Jelinek 2003-06-23 16:52:00 +02:00 committed by Jakub Jelinek
parent a3c18e4f65
commit 98decfafb9
4 changed files with 20 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2003-06-23 Jakub Jelinek <jakub@redhat.com>
* mangle.c (hash_type): val is the TREE_LIST itself, not a pointer
to it.
2003-06-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
PR c++/10784

View File

@ -2597,7 +2597,7 @@ static GTY ((param_is (union tree_node))) htab_t conv_type_names;
static hashval_t
hash_type (const void *val)
{
return htab_hash_pointer (TREE_PURPOSE (*((tree *) val)));
return htab_hash_pointer (TREE_PURPOSE ((tree) val));
}
/* Compare VAL1 (a node in the table) with VAL2 (a TYPE). */

View File

@ -1,3 +1,7 @@
2003-06-23 Jakub Jelinek <jakub@redhat.com>
* g++.dg/opt/operator1.C: New test.
2003-06-22 Roger Sayle <roger@eyesopen.com>
* gcc.c-torture/execute/string-opt-16.c: New test case.

View File

@ -0,0 +1,10 @@
// Tests whether g++ can handle large number of operators
// { dg-do compile }
#define OP0(n) struct I##n { int i; }; operator I##n ();
#define OP1(n) OP0(n)
#define OP2(n) OP1(n##0) OP1(n##1) OP1(n##2) OP1(n##3) OP1(n##4)
#define OP3(n) OP2(n##0) OP2(n##1) OP2(n##2) OP2(n##3) OP2(n##4)
struct S {
OP3(0) OP3(1) OP3(2) OP3(3) OP3(4) OP3(5)
};