diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 35f813d17ae..f9e7878dc33 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2010-03-17 Martin Jambor + + PR tree-optimization/43347 + * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the + original base is DECL_ARTIFICIAL or DECL_IGNORED_P. + 2010-03-17 Bernd Schmidt PR rtl-optimization/42216 diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c index 984260f4155..e1dd0d777e3 100644 --- a/gcc/tree-sra.c +++ b/gcc/tree-sra.c @@ -1664,6 +1664,7 @@ create_access_replacement (struct access *access) DECL_SOURCE_LOCATION (repl) = DECL_SOURCE_LOCATION (access->base); DECL_ARTIFICIAL (repl) = 1; + DECL_IGNORED_P (repl) = DECL_IGNORED_P (access->base); if (DECL_NAME (access->base) && !DECL_IGNORED_P (access->base) @@ -1676,11 +1677,10 @@ create_access_replacement (struct access *access) SET_DECL_DEBUG_EXPR (repl, access->expr); DECL_DEBUG_EXPR_IS_FROM (repl) = 1; - DECL_IGNORED_P (repl) = 0; + TREE_NO_WARNING (repl) = TREE_NO_WARNING (access->base); } - - DECL_IGNORED_P (repl) = DECL_IGNORED_P (access->base); - TREE_NO_WARNING (repl) = TREE_NO_WARNING (access->base); + else + TREE_NO_WARNING (repl) = 1; if (dump_file) {