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
This commit is contained in:
parent
49e3888358
commit
220e83ca20
|
@ -1,3 +1,9 @@
|
|||
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>
|
||||
|
||||
* doc/install.texi (powerpc-*-darwin*): Update reference to
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
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>
|
||||
|
||||
PR c++/47068
|
||||
|
|
|
@ -2749,7 +2749,8 @@ cp_build_type_attribute_variant (tree type, tree attributes)
|
|||
bool
|
||||
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),
|
||||
TYPE_RAISES_EXCEPTIONS (typeb), ce_exact);
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
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>
|
||||
|
||||
* gcc.target/arm/vfp-1.c (test_ldst): Fixed fsts test to
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
// { 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);
|
||||
}
|
||||
|
19
gcc/tree.c
19
gcc/tree.c
|
@ -6007,15 +6007,16 @@ type_hash_eq (const void *va, const void *vb)
|
|||
return TYPE_OFFSET_BASETYPE (a->type) == TYPE_OFFSET_BASETYPE (b->type);
|
||||
|
||||
case METHOD_TYPE:
|
||||
return (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)
|
||||
&& TREE_CODE (TYPE_ARG_TYPES (a->type)) == TREE_LIST
|
||||
&& TYPE_ARG_TYPES (b->type)
|
||||
&& TREE_CODE (TYPE_ARG_TYPES (b->type)) == TREE_LIST
|
||||
&& type_list_equal (TYPE_ARG_TYPES (a->type),
|
||||
TYPE_ARG_TYPES (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)
|
||||
&& TREE_CODE (TYPE_ARG_TYPES (a->type)) == TREE_LIST
|
||||
&& TYPE_ARG_TYPES (b->type)
|
||||
&& TREE_CODE (TYPE_ARG_TYPES (b->type)) == TREE_LIST
|
||||
&& type_list_equal (TYPE_ARG_TYPES (a->type),
|
||||
TYPE_ARG_TYPES (b->type)))))
|
||||
break;
|
||||
return 0;
|
||||
case ARRAY_TYPE:
|
||||
return TYPE_DOMAIN (a->type) == TYPE_DOMAIN (b->type);
|
||||
|
||||
|
|
Loading…
Reference in New Issue