Patchwork More PTA carefulness

login
register
mail settings
Submitter Richard Guenther
Date March 11, 2014, 3:27 p.m.
Message ID <alpine.LSU.2.11.1403111623470.6041@zhemvz.fhfr.qr>
Download mbox | patch
Permalink /patch/329133/
State New
Headers show

Comments

Richard Guenther - March 11, 2014, 3:27 p.m.
This adds two asserts that guards possible wrong-code issues in
get_constraint_for_ptr_offset.

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

Richard.

2014-03-11  Richard Biener  <rguenther@suse.de>

	* tree-ssa-structalias.c (get_constraint_for_ptr_offset):
	Add asserts to guard possible wrong-code bugs.

Patch

Index: gcc/tree-ssa-structalias.c
===================================================================
--- gcc/tree-ssa-structalias.c	(revision 208479)
+++ gcc/tree-ssa-structalias.c	(working copy)
@@ -3095,7 +3095,7 @@  get_constraint_for_ptr_offset (tree ptr,
       if (c.type == ADDRESSOF
 	  /* If this varinfo represents a full variable just use it.  */
 	  && curr->is_full_var)
-	c.offset = 0;
+	;
       else if (c.type == ADDRESSOF
 	       /* If we do not know the offset add all subfields.  */
 	       && rhsoffset == UNKNOWN_OFFSET)
@@ -3143,8 +3143,14 @@  get_constraint_for_ptr_offset (tree ptr,
 	      temp = vi_next (temp);
 	    }
 	}
+      else if (c.type == SCALAR)
+	{
+	  gcc_assert (c.offset == 0);
+	  c.offset = rhsoffset;
+	}
       else
-	c.offset = rhsoffset;
+	/* We shouldn't get any DEREFs here.  */
+	gcc_unreachable ();
 
       (*results)[j] = c;
     }