Question on GIMPLE semantics and EH
Richard Kenner
kenner@vlsi1.ultra.nyu.edu
Fri Aug 13 13:56:00 GMT 2004
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.
More information about the Gcc
mailing list