<div dir="ltr"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div link="blue" vlink="purple" lang="EN-US"><div class="m_-5277179817266051069WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Regarding multi-entry functions, I'm aware of two cases where this occurs in a source language. One is when you have optional parameters in C++, which effectively
creates one or more overloads for the function; the other is PL/I which allows defining an entry label within the body of the function. For the C++ case, I'd expect the front-end to create stubs that fill in the defaulted parameters and then tail-call the
main function; in this case, each stub would have its own debug-info entry and be treated as its own independent function for debug-info purposes. For PL/I, I would probably do the same, although I admit it has been a long time since I did any PL/I programming
and I never worked on a PL/I compiler.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"></span></p></div></div></blockquote></div><div><br></div><div>Another example of source language with functions that can have more than entry point is Fortran via the ENTRY statement. I think most compilers use an extra integer parameter to discriminate between the different entry points at the call sites.<br></div></div>