summaryrefslogtreecommitdiff
path: root/devdocs/gcc~13/ia-64-function-attributes.html
blob: 8a7bb69f1858209d6b62b70b6a907639682d388f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<div class="subsection-level-extent" id="IA-64-Function-Attributes"> <div class="nav-panel"> <p> Next: <a href="m32c-function-attributes" accesskey="n" rel="next">M32C Function Attributes</a>, Previous: <a href="h8_002f300-function-attributes" accesskey="p" rel="prev">H8/300 Function Attributes</a>, Up: <a href="function-attributes" accesskey="u" rel="up">Declaring Attributes of Functions</a> [<a href="index#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="indices" title="Index" rel="index">Index</a>]</p> </div>  <h1 class="subsection" id="IA-64-Function-Attributes-1"><span>6.33.12 IA-64 Function Attributes<a class="copiable-link" href="#IA-64-Function-Attributes-1"> ¶</a></span></h1> <p>These function attributes are supported on IA-64 targets: </p> <dl class="table"> <dt>
<span><code class="code">syscall_linkage</code><a class="copiable-link" href="#index-syscall_005flinkage-function-attribute_002c-IA-64"> ¶</a></span>
</dt> <dd>
<p>This attribute is used to modify the IA-64 calling convention by marking all input registers as live at all function exits. This makes it possible to restart a system call after an interrupt without having to save/restore the input registers. This also prevents kernel data from leaking into application code. </p> </dd> <dt>
<span><code class="code">version_id</code><a class="copiable-link" href="#index-version_005fid-function-attribute_002c-IA-64"> ¶</a></span>
</dt> <dd>
<p>This IA-64 HP-UX attribute, attached to a global variable or function, renames a symbol to contain a version string, thus allowing for function level versioning. HP-UX system header files may use function level versioning for some system calls. </p> <div class="example smallexample"> <pre class="example-preformatted" data-language="cpp">extern int foo () __attribute__((version_id ("20040821")));</pre>
</div> <p>Calls to <code class="code">foo</code> are mapped to calls to <code class="code">foo{20040821}</code>. </p>
</dd> </dl> </div><div class="_attribution">
  <p class="_attribution-p">
    &copy; Free Software Foundation<br>Licensed under the GNU Free Documentation License, Version 1.3.<br>
    <a href="https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/IA-64-Function-Attributes.html" class="_attribution-link">https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/IA-64-Function-Attributes.html</a>
  </p>
</div>