diff options
Diffstat (limited to 'gcc/objc/objc-act.c')
-rw-r--r-- | gcc/objc/objc-act.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/objc/objc-act.c b/gcc/objc/objc-act.c index c379a51..ef11052 100644 --- a/gcc/objc/objc-act.c +++ b/gcc/objc/objc-act.c @@ -2695,12 +2695,16 @@ objc_copy_binfo (tree binfo) static void objc_xref_basetypes (tree ref, tree basetype) { + tree variant; tree binfo = make_tree_binfo (basetype ? 1 : 0); - TYPE_BINFO (ref) = binfo; BINFO_OFFSET (binfo) = size_zero_node; BINFO_TYPE (binfo) = ref; + gcc_assert (TYPE_MAIN_VARIANT (ref) == ref); + for (variant = ref; variant; variant = TYPE_NEXT_VARIANT (variant)) + TYPE_BINFO (variant) = binfo; + if (basetype) { tree base_binfo = objc_copy_binfo (TYPE_BINFO (basetype)); |