[M3devel] Strange CM3 IR for FINALLY

Rodney M. Bates rodney_bates at lcwb.coop
Sat Jul 25 18:39:45 CEST 2015

In looking at CM3 IR for TRY-FINALLY, for an unrelated reason, I find the following:

The front end translates the code found between FINALLY and END into a nested procedure.
This is declared as having one parameter of type ADDRESS.  But, in the the direct call
it generates, right before the FINALLY, it passes no actual.  Also, in the simple example
I looked at, the finally procedure does not access its formal.

It also stores the address of the finally procedure in a 5-word record whose address
it passes to RTHooks.PushEFrame and PopEFrame.  RTHooks.i3 treats this as ADDRESS, and
tells us nothing about what it actually points to.

Is there a bug, or does anybody understand what is going on here?
Rodney Bates
rodney.m.bates at acm.org

More information about the M3devel mailing list