Skip to content

[Debug] Calling conventions are now always shown in XML node dumps if it's not the default one

Summary

This merge request modifies the XML node dump output slightly (via -dDEBUG_NODE_XML) by including the subroutine's calling convention isn't the default one (whatever pocall_default is set to). This allow the effect of $CALLING to be seen.

NOTE: If there is an explicit convention, it will always be listed even if it is the default one.

System

  • Processor architecture: All

What is the current bug behavior?

N/A

What is the behavior after applying this patch?

If the calling convention is not the default one

Relevant logs and/or screenshots

I used the ucomplex unit as a test case and added {$CALLING vectorcall} at the beginning. Before the change, the calling convention wasn't listed for subsequent subroutines:

<subroutine name="cinit(const Real;const Real):complex;">

With the change, it's listed and hence it is now clear to compiler developers that the default calling convention is not used (thus showing that $CALLING actually works and also to help debug node tree optimisations where vectorisation may be taking place):

<subroutine name="cinit(const Real;const Real):complex;" convention="VectorCall">
Edited by J. Gareth "Kit" Moreton

Merge request reports