This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/24075] Destructor called with wrong argument after exception with -fcse-follow-jumps -O1
- From: "rearnsha at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 18 Oct 2005 16:13:47 -0000
- Subject: [Bug rtl-optimization/24075] Destructor called with wrong argument after exception with -fcse-follow-jumps -O1
- References: <bug-24075-8581@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #2 from rearnsha at gcc dot gnu dot org 2005-10-18 16:13 -------
Confirmed still fails on the 3.4 branch (arm-elf cross). The failure mode is
that we have
virtual_frame_pointer <= hard_frame_pointer
...
cond_jump somewhere
var <= virtual_frame_pointer
The initial assignment is special since the assignment will be adjusted once
the offset between the virtal and hard frame pointers is known. However, when
cse-follow-jumps is enabled the second assignment is replaced with
var <= hard_frame_pointer
This second assignment is not special so it remains this way after the
virtual->hard addressing is crystalized. This means that we have the wrong
value in var at this point.
Note that it's not surprising that you can't reproduce this with a series of -f
options, since -O is needed to turn on GCC's optimization framework: without it
cse isn't run at all!
IMO we probably shouldn't be recording a cse for a set of the virtual frame
pointer.
--
rearnsha at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |rearnsha at gcc dot gnu dot
| |org
Status|UNCONFIRMED |NEW
Ever Confirmed|0 |1
Known to fail| |3.4.5
Last reconfirmed|0000-00-00 00:00:00 |2005-10-18 16:13:47
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24075