[PATCH] Fix ICE during LTO odr reporting (PR lto/65361)
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. 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.c2015-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
Re: [PATCH] Fix ICE during LTO odr reporting (PR lto/65361)
On 03/09/15 12:31, Jakub Jelinek wrote: 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. 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. OK. jeff
Re: [PATCH] Fix ICE during LTO odr reporting (PR lto/65361)
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