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  <rguent...@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.

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)

Reply via email to