From: Jan Hubicka Date: Wed, 20 Dec 2006 22:45:42 +0000 (+0100) Subject: tree-dfa.c (add_referenced_var): Walk initializers of non-constant/readonly static... X-Git-Tag: releases/gcc-4.3.0~7883 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=33dde1e155b86aa684a75b0820f6af368f046507;p=thirdparty%2Fgcc.git tree-dfa.c (add_referenced_var): Walk initializers of non-constant/readonly static vars. * tree-dfa.c (add_referenced_var): Walk initializers of non-constant/readonly static vars. From-SVN: r120090 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c4bcad1fa2c5..066065427ad1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2006-12-20 Jan Hubicka + + * tree-dfa.c (add_referenced_var): Walk initializers of + non-constant/readonly static vars. + 2006-12-20 Jan Hubicka * tree-flow-inline.h (gimple_var_anns): New function. diff --git a/gcc/tree-dfa.c b/gcc/tree-dfa.c index 5b9c72418b55..9c30eb53e191 100644 --- a/gcc/tree-dfa.c +++ b/gcc/tree-dfa.c @@ -741,15 +741,13 @@ add_referenced_var (tree var) /* Scan DECL_INITIAL for pointer variables as they may contain address arithmetic referencing the address of other - variables. */ + variables. + Even non-constant intializers need to be walked, because + IPA passes might prove that their are invariant later on. */ if (DECL_INITIAL (var) /* Initializers of external variables are not useful to the optimizers. */ - && !DECL_EXTERNAL (var) - /* It's not necessary to walk the initial value of non-constant - variables because it cannot be propagated by the - optimizers. */ - && (TREE_CONSTANT (var) || TREE_READONLY (var))) + && !DECL_EXTERNAL (var)) walk_tree (&DECL_INITIAL (var), find_vars_r, NULL, 0); } }