This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: libjava build failure sol2.6 asm problem?
On Mon, Dec 31, 2001 at 08:05:37PM -0500, Jeff Sturm wrote:
> It may be helpful here if the backend could easily emit the equivalent
> instructions, e.g. a bsr/ret on Alpha, without a new call frame. The code
> we generate now is longer and PIC doesn't come for free.
Yes, but this presents problems when it comes to represent this
in the CFG -- the return label cannot move from adjacent to the
bsr instruction.
> However the c++ frontend doesn't bother with TRY_FINALLY_EXPR, it emits
> even inlined destructors twice. So I'm inclined to say gcj should do the
> same.
Perhaps, but with c++, there is no source line corresponding to
the destructor invocation, and one can in fact place a breakpoint
on the out of line destructor at -O0. I'm inclined to say that
(at least at -O0) TRY_FINALLY_EXPR should continue with the fake
gosub. Perhaps at -O1 we might have TRY_FINALLY_EXPR (not gcj
itself) emit the code twice.
The main problem with TRY_FINALLY_EXPR as it exists is that it should
use a cleanup exception handler rather than a catch-all exception
handler.
The sparc -fpic problem still needs to be fixed, not worked around.
r~