Patchwork Fix PR61823

login
register
mail settings
Submitter Richard Guenther
Date July 17, 2014, 12:21 p.m.
Message ID <alpine.LSU.2.11.1407171420110.3531@zhemvz.fhfr.qr>
Download mbox | patch
Permalink /patch/371104/
State New
Headers show

Comments

Richard Guenther - July 17, 2014, 12:21 p.m.
This fixes PR61823, we need to use the proper varpool API now
to access DECL_INITIAL of globals.

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

Richard.

2014-07-17  Richard Biener  <rguenther@suse.de>

	PR ipa/61823
	* tree-ssa-structalias.c (create_variable_info_for_1):
	Use varpool_get_constructor.
	(create_variable_info_for): Likewise.

	* gcc.dg/torture/pr43879_1.c: Add -fno-inline.

Patch

Index: gcc/tree-ssa-structalias.c
===================================================================
--- gcc/tree-ssa-structalias.c	(revision 212737)
+++ gcc/tree-ssa-structalias.c	(working copy)
@@ -5671,7 +5671,7 @@  create_variable_info_for_1 (tree decl, c
 	 in IPA mode.  Else we'd have to parse arbitrary initializers.  */
       && !(in_ipa_mode
 	   && is_global_var (decl)
-	   && DECL_INITIAL (decl)))
+	   && varpool_get_constructor (varpool_get_node (decl))))
     {
       fieldoff_s *fo = NULL;
       bool notokay = false;
@@ -5797,13 +5797,13 @@  create_variable_info_for (tree decl, con
 
 	  /* If this is a global variable with an initializer and we are in
 	     IPA mode generate constraints for it.  */
-	  if (DECL_INITIAL (decl)
+	  if (varpool_get_constructor (vnode)
 	      && vnode->definition)
 	    {
 	      auto_vec<ce_s> rhsc;
 	      struct constraint_expr lhs, *rhsp;
 	      unsigned i;
-	      get_constraint_for_rhs (DECL_INITIAL (decl), &rhsc);
+	      get_constraint_for_rhs (varpool_get_constructor (vnode), &rhsc);
 	      lhs.var = vi->id;
 	      lhs.offset = 0;
 	      lhs.type = SCALAR;
Index: gcc/testsuite/gcc.dg/torture/pr43879_1.c
===================================================================
--- gcc/testsuite/gcc.dg/torture/pr43879_1.c	(revision 212737)
+++ gcc/testsuite/gcc.dg/torture/pr43879_1.c	(working copy)
@@ -1,5 +1,5 @@ 
 /* { dg-do run } */
-/* { dg-options "-fipa-pta" } */
+/* { dg-options "-fipa-pta -fno-inline" } */
 /* { dg-additional-sources "pr43879_2.c" } */
 
 void bar(int c)