On 07/12/2009 12:30 PM, Douglas B Rupp wrote:
I've been working on bringing the VMS patches up to date. The VMS Debugger requires a label at end prologue and begin_epilogue, and the fact that final_scan_insn makes multiple calls to NOTE_INSN_EPILOGUE_BEG for the same function makes this awkward. I suppose it could be case that there are multiple epilogues in a function, but the generated assembly code doesn't seem to indicate this. Below is an excerpt from a gdb session, and attached is a file derived from argv.c.
There really are multiple epilogues. The compiler is quite happy to generate those, and has been happy to do so for some time.
What has changed is that we're now bothering to tell the debug info about these epilogue copies. Since they're all copies of the same code, it's not surprising at all that they're all given the same line number; indeed, it would be surprising if that were not so.
If the VMS debugger can't handle multiple epilogues from a function, the only thing I can suggest is that the VMS debug hooks discard info from all but the first epilogue. Not very satisfactory, but you're no worse off than you were before the change.
r~