From 5548ca3540bccbc908a45942896d635ea5f1c23f Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Fri, 16 Sep 2011 16:40:06 +0200 Subject: [PATCH] re PR lto/50430 (Constructors of static external vars are throwed away leading to missed optimizations (and ipa-cp ICE).) PR lto/50430 * gimple-fold.c (gimple_get_virt_method_for_binfo): Do not ICE on error_mark_node in the DECL_INITIAL of vtable. From-SVN: r178908 --- gcc/ChangeLog | 6 ++++++ gcc/gimple-fold.c | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f2b39a54a55..469aeb3a188 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-09-15 Jan Hubicka + + PR lto/50430 + * gimple-fold.c (gimple_get_virt_method_for_binfo): Do not ICE on + error_mark_node in the DECL_INITIAL of vtable. + 2011-09-15 Diego Novillo * Makefile.in (SYSROOT_CFLAGS_FOR_TARGET): Define from diff --git a/gcc/gimple-fold.c b/gcc/gimple-fold.c index d8da0309714..b481c4a5fa1 100644 --- a/gcc/gimple-fold.c +++ b/gcc/gimple-fold.c @@ -3048,7 +3048,8 @@ gimple_get_virt_method_for_binfo (HOST_WIDE_INT token, tree known_binfo) if (TREE_CODE (v) != VAR_DECL || !DECL_VIRTUAL_P (v) - || !DECL_INITIAL (v)) + || !DECL_INITIAL (v) + || DECL_INITIAL (v) == error_mark_node) return NULL_TREE; gcc_checking_assert (TREE_CODE (TREE_TYPE (v)) == ARRAY_TYPE); size = tree_low_cst (TYPE_SIZE (TREE_TYPE (TREE_TYPE (v))), 1); -- 2.30.2