This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Question on GIMPLE semantics and EH
- From: kenner at vlsi1 dot ultra dot nyu dot edu (Richard Kenner)
- To: amacleod at redhat dot com, rth at redhat dot com
- Cc: gcc at gcc dot gnu dot org
- Date: Fri, 13 Aug 04 08:34:51 EDT
- Subject: Question on GIMPLE semantics and EH
Suppose I have something like:
foo = 0;
...
foo = some_function_call_that_may_throw ( ...);
in one basic block and then in the exception handler, we have:
bar = foo;
As I understand it, the semantics of GIMPLE is that the second assignment to
FOO may not happen, but if it doesn't, then the value must remain 0.
copyrename2 is replacing the second assignment's LHS with BAR. That seems
wrong since BAR might be assigned the value of zero. With that substitution,
BAR will be undefined if the function does throw.
What's going wrong here?
We're down to four remaining ACATS failures and I think this is what
is causing those four, so we may be clean when this is fixed.