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]

[PATCH] Fix PR45037


We need to watch out for NULL result from get_base_address
(a CONST_DECL in our case).

Bootstrapped and tested on x86_64-unknown-linux-gnu, applied.

Richard.

2010-07-23  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/45037
	* tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.

Index: gcc/tree-ssa-loop-ivopts.c
===================================================================
*** gcc/tree-ssa-loop-ivopts.c	(revision 162448)
--- gcc/tree-ssa-loop-ivopts.c	(working copy)
*************** copy_ref_info (tree new_ref, tree old_re
*** 5604,5614 ****
        && !SSA_NAME_PTR_INFO (new_ptr_base))
      {
        tree base = get_base_address (old_ref);
!       if ((INDIRECT_REF_P (base)
! 	   || TREE_CODE (base) == MEM_REF)
! 	  && TREE_CODE (TREE_OPERAND (base, 0)) == SSA_NAME)
  	duplicate_ssa_name_ptr_info
! 	    (new_ptr_base, SSA_NAME_PTR_INFO (TREE_OPERAND (base, 0)));
        else if (TREE_CODE (base) == VAR_DECL
  	       || TREE_CODE (base) == PARM_DECL
  	       || TREE_CODE (base) == RESULT_DECL)
--- 5604,5616 ----
        && !SSA_NAME_PTR_INFO (new_ptr_base))
      {
        tree base = get_base_address (old_ref);
!       if (!base)
! 	;
!       else if ((INDIRECT_REF_P (base)
! 		|| TREE_CODE (base) == MEM_REF)
! 	       && TREE_CODE (TREE_OPERAND (base, 0)) == SSA_NAME)
  	duplicate_ssa_name_ptr_info
! 	  (new_ptr_base, SSA_NAME_PTR_INFO (TREE_OPERAND (base, 0)));
        else if (TREE_CODE (base) == VAR_DECL
  	       || TREE_CODE (base) == PARM_DECL
  	       || TREE_CODE (base) == RESULT_DECL)


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