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)