This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Fix ipa-polymorphic-call ICE


Hi,
this patch fixes ICE seen when compiling firefox with large unit growths.
The problem is that the speculative part of analysis trips over VOID pointer
and gets lost.

Bootstrapped/regtsted x86_64-linux, commited.

	* ipa-polymorphic-call.c (ipa_polymorphic_call_context): Avoid ICE
	on getting VOID pointer.

Index: ipa-polymorphic-call.c
===================================================================
--- ipa-polymorphic-call.c	(revision 220509)
+++ ipa-polymorphic-call.c	(working copy)
@@ -1078,7 +1078,7 @@ ipa_polymorphic_call_context::ipa_polymo
     base_type = TREE_TYPE (gimple_assign_rhs1
 			    (SSA_NAME_DEF_STMT (base_pointer)));
  
-  if (POINTER_TYPE_P (base_type))
+  if (base_type && POINTER_TYPE_P (base_type))
     combine_speculation_with (TYPE_MAIN_VARIANT (TREE_TYPE (base_type)),
 			      offset,
 			      true, NULL /* Do not change type here */);


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]