This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/15014] [3.5 regression] labels after are removed even though they are used
- From: "pinskia at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 8 Jun 2004 13:50:44 -0000
- Subject: [Bug rtl-optimization/15014] [3.5 regression] labels after are removed even though they are used
- References: <20040419154104.15014.pinskia@gcc.gnu.org>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From pinskia at gcc dot gnu dot org 2004-06-08 13:49 -------
After RTH's change for having only one RETURN_EXPR, the problem is now on rtl level.
2004-06-07 Richard Henderson <rth@redhat.com>
* gimple-low.c (struct lower_data): Add the_return_label and
one_return_stmt.
(lower_function_body): Initialize and use them.
(lower_return_expr): New.
(lower_stmt): Call it.
* gimplify.c (gimplify_return_expr): Force the argument to be either
null or a result_decl.
* tree-gimple.c: Update gimple grammer to match.
* tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
coalescing of result_decls.
And here is the new test which fails:
#ifndef NO_LABEL_VALUES
int main ()
{
void *x = &&L2;
if (&&L3 - &&L1 > 1)
abort();
L1: return 0;
L2: abort ();
L3:;
}
#else
int main(){return 0;}
#endif
--
What |Removed |Added
----------------------------------------------------------------------------
Component|tree-optimization |rtl-optimization
Last reconfirmed|2004-05-04 12:05:25 |2004-06-08 13:50:09
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15014