This is the mail archive of the
gcc-cvs@gcc.gnu.org
mailing list for the GCC project.
r159592 - in /trunk/gcc: ChangeLog ada/ChangeLo...
- From: ebotcazou at gcc dot gnu dot org
- To: gcc-cvs at gcc dot gnu dot org
- Date: Wed, 19 May 2010 17:53:59 -0000
- Subject: r159592 - in /trunk/gcc: ChangeLog ada/ChangeLo...
Author: ebotcazou
Date: Wed May 19 17:53:58 2010
New Revision: 159592
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=159592
Log:
* langhooks.h (struct lang_hooks): Add new field deep_unsharing.
* langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
(LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
* gimplify.c: (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
TARGET_EXPR nodes, but only once, if instructed to do so. Do not
propagate the 'data' argument to copy_tree_r.
(copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
Propagate 'data' argument to walk_tree.
(copy_if_shared): New function.
(unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
(unmark_visited): New function.
(unshare_body): Call copy_if_shared instead of doing it manually.
(unvisit_body): Call unmark_visited instead of doing it manually.
ada/
* gcc-interface/misc.c (LANG_HOOKS_DEEP_UNSHARING): Redefine.
* gcc-interface/trans.c (unshare_save_expr): Delete.
(gigi): Do not unshare trees under SAVE_EXPRs here.
Added:
trunk/gcc/testsuite/gnat.dg/discr23.adb
trunk/gcc/testsuite/gnat.dg/discr23.ads
trunk/gcc/testsuite/gnat.dg/discr23_pkg.ads
trunk/gcc/testsuite/gnat.dg/specs/controlled1.ads
trunk/gcc/testsuite/gnat.dg/specs/controlled1_pkg.ads
Modified:
trunk/gcc/ChangeLog
trunk/gcc/ada/ChangeLog
trunk/gcc/ada/gcc-interface/misc.c
trunk/gcc/ada/gcc-interface/trans.c
trunk/gcc/gimplify.c
trunk/gcc/langhooks-def.h
trunk/gcc/langhooks.h
trunk/gcc/testsuite/ChangeLog