Commit 220e83ca by Kai Tietz Committed by Kai Tietz

ChangeLog gcc/

2011-01-01  Kai Tietz  <kai.tietz@onevision.com>

	PR target/38662
	* tree.c (type_hash_eq): Call
	language hook for METHOD_TYPEs, too.

ChangeLog gcc/cp

2011-01-01  Kai Tietz  <kai.tietz@onevision.com>

	PR target/38662
	* tree.c (cxx_type_hash_eq):
	Allow METHOD_TYPE, too.

ChangeLog gcc/testsuite

2011-01-01  Kai Tietz  <kai.tietz@onevision.com>

	PR target/38662
	* g++.dg/eh/pr38662.C: New testcase.

From-SVN: r168389
parent 49e38883
2011-01-01 Kai Tietz <kai.tietz@onevision.com>
PR target/38662
* tree.c (type_hash_eq): Call
language hook for METHOD_TYPEs, too.
2010-12-31 Gerald Pfeifer <gerald@pfeifer.com> 2010-12-31 Gerald Pfeifer <gerald@pfeifer.com>
* doc/install.texi (powerpc-*-darwin*): Update reference to * doc/install.texi (powerpc-*-darwin*): Update reference to
2011-01-01 Kai Tietz <kai.tietz@onevision.com>
PR target/38662
* tree.c (cxx_type_hash_eq):
Allow METHOD_TYPE, too.
2010-12-28 Jason Merrill <jason@redhat.com> 2010-12-28 Jason Merrill <jason@redhat.com>
PR c++/47068 PR c++/47068
......
...@@ -2749,7 +2749,8 @@ cp_build_type_attribute_variant (tree type, tree attributes) ...@@ -2749,7 +2749,8 @@ cp_build_type_attribute_variant (tree type, tree attributes)
bool bool
cxx_type_hash_eq (const_tree typea, const_tree typeb) cxx_type_hash_eq (const_tree typea, const_tree typeb)
{ {
gcc_assert (TREE_CODE (typea) == FUNCTION_TYPE); gcc_assert (TREE_CODE (typea) == FUNCTION_TYPE
|| TREE_CODE (typea) == METHOD_TYPE);
return comp_except_specs (TYPE_RAISES_EXCEPTIONS (typea), return comp_except_specs (TYPE_RAISES_EXCEPTIONS (typea),
TYPE_RAISES_EXCEPTIONS (typeb), ce_exact); TYPE_RAISES_EXCEPTIONS (typeb), ce_exact);
......
2011-01-01 Kai Tietz <kai.tietz@onevision.com>
PR target/38662
* g++.dg/eh/pr38662.C: New testcase.
2011-01-01 Chung-Lin Tang <cltang@codesourcery.com> 2011-01-01 Chung-Lin Tang <cltang@codesourcery.com>
* gcc.target/arm/vfp-1.c (test_ldst): Fixed fsts test to * gcc.target/arm/vfp-1.c (test_ldst): Fixed fsts test to
......
// { dg-do compile { target { { i?86-*-* x86_64-*-* } && ilp32 } } }
class E { };
class T {
int foo(bool a) throw (E) __attribute__((regparm(1)));
int bar(bool b) __attribute__((regparm(1)));
};
int T::bar(bool b)
{
return (b ? 1 : 2);
}
...@@ -6007,15 +6007,16 @@ type_hash_eq (const void *va, const void *vb) ...@@ -6007,15 +6007,16 @@ type_hash_eq (const void *va, const void *vb)
return TYPE_OFFSET_BASETYPE (a->type) == TYPE_OFFSET_BASETYPE (b->type); return TYPE_OFFSET_BASETYPE (a->type) == TYPE_OFFSET_BASETYPE (b->type);
case METHOD_TYPE: case METHOD_TYPE:
return (TYPE_METHOD_BASETYPE (a->type) == TYPE_METHOD_BASETYPE (b->type) if (TYPE_METHOD_BASETYPE (a->type) == TYPE_METHOD_BASETYPE (b->type)
&& (TYPE_ARG_TYPES (a->type) == TYPE_ARG_TYPES (b->type) && (TYPE_ARG_TYPES (a->type) == TYPE_ARG_TYPES (b->type)
|| (TYPE_ARG_TYPES (a->type) || (TYPE_ARG_TYPES (a->type)
&& TREE_CODE (TYPE_ARG_TYPES (a->type)) == TREE_LIST && TREE_CODE (TYPE_ARG_TYPES (a->type)) == TREE_LIST
&& TYPE_ARG_TYPES (b->type) && TYPE_ARG_TYPES (b->type)
&& TREE_CODE (TYPE_ARG_TYPES (b->type)) == TREE_LIST && TREE_CODE (TYPE_ARG_TYPES (b->type)) == TREE_LIST
&& type_list_equal (TYPE_ARG_TYPES (a->type), && type_list_equal (TYPE_ARG_TYPES (a->type),
TYPE_ARG_TYPES (b->type))))); TYPE_ARG_TYPES (b->type)))))
break;
return 0;
case ARRAY_TYPE: case ARRAY_TYPE:
return TYPE_DOMAIN (a->type) == TYPE_DOMAIN (b->type); return TYPE_DOMAIN (a->type) == TYPE_DOMAIN (b->type);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment