Hi!
BINFO_BASE_BINFO always gives a TREE_BINFO, so using DECL_CONTEXT on it
is wrong. The following patch fixes it to use BINFO_TYPE instead.
Bootstrapped/regtested on x86_64-linux and i686-linux, tested also on the
testcase in the PR. Ok for trunk?
We don't seem to have infrastructure for testing errors during LTO linking,
so no testcase included.
OK, thanks! Yep, we should get testsuite support for this...
Honza
2015-03-09 Jakub Jelinek ja...@redhat.com
PR lto/65361
* ipa-devirt.c (add_type_duplicate): Don't use DECL_CONTEXT
on a TREE_BINFO, instead use BINFO_TYPE.
--- gcc/ipa-devirt.c.jj 2015-03-09 08:05:13.0 +0100
+++ gcc/ipa-devirt.c 2015-03-09 16:23:42.277861689 +0100
@@ -1505,9 +1505,9 @@ add_type_duplicate (odr_type val, tree t
extra_base = BINFO_BASE_BINFO
(TYPE_BINFO (val-type),
BINFO_N_BASE_BINFOS (TYPE_BINFO (type)));
- inform (DECL_SOURCE_LOCATION
- (TYPE_NAME (DECL_CONTEXT (extra_base))),
- the extra base is defined here );
+ tree extra_base_type = BINFO_TYPE (extra_base);
+ inform (DECL_SOURCE_LOCATION (TYPE_NAME (extra_base_type)),
+ the extra base is defined here);
}
base_mismatch = true;
}
Jakub