diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/cp/decl.c | 4 |
2 files changed, 5 insertions, 2 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index a79320c..e4a3d6f 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,8 @@ 2012-01-24 Jason Merrill <jason@redhat.com> + PR c++/51917 + * decl.c (xref_basetypes): Check VEC_length instead of VEC_space. + PR c++/51973 * tree.c (called_fns_equal): Check template args. (cp_tree_equal): Call it. diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index ef43dbf..7fba04a 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -11916,8 +11916,8 @@ xref_basetypes (tree ref, tree base_list) BINFO_BASE_ACCESS_APPEND (binfo, access); } - if (VEC_space (tree, CLASSTYPE_VBASECLASSES (ref), 1)) - /* If we have space in the vbase vector, we must have shared at + if (VEC_length (tree, CLASSTYPE_VBASECLASSES (ref)) < max_vbases) + /* If we didn't get max_vbases vbases, we must have shared at least one of them, and are therefore diamond shaped. */ CLASSTYPE_DIAMOND_SHAPED_P (ref) = 1; |