[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.m.bates at acm.org
More information about the M3devel