]>
Commit | Line | Data |
---|---|---|
c63539ff ML |
1 | .. |
2 | Copyright 1988-2022 Free Software Foundation, Inc. | |
3 | This is part of the GCC manual. | |
4 | For copying conditions, see the copyright.rst file. | |
5 | ||
6 | .. _ia-64-function-attributes: | |
7 | ||
8 | IA-64 Function Attributes | |
9 | ^^^^^^^^^^^^^^^^^^^^^^^^^ | |
10 | ||
11 | These function attributes are supported on IA-64 targets: | |
12 | ||
13 | .. index:: syscall_linkage function attribute, IA-64 | |
14 | ||
15 | .. ia-64-fn-attr:: syscall_linkage | |
16 | ||
17 | This attribute is used to modify the IA-64 calling convention by marking | |
18 | all input registers as live at all function exits. This makes it possible | |
19 | to restart a system call after an interrupt without having to save/restore | |
20 | the input registers. This also prevents kernel data from leaking into | |
21 | application code. | |
22 | ||
23 | .. index:: version_id function attribute, IA-64 | |
24 | ||
25 | .. ia-64-fn-attr:: version_id | |
26 | ||
27 | This IA-64 HP-UX attribute, attached to a global variable or function, renames a | |
28 | symbol to contain a version string, thus allowing for function level | |
29 | versioning. HP-UX system header files may use function level versioning | |
30 | for some system calls. | |
31 | ||
32 | .. code-block:: c++ | |
33 | ||
34 | extern int foo () __attribute__((version_id ("20040821"))); | |
35 | ||
3ed1b4ce | 36 | Calls to ``foo`` are mapped to calls to ``foo{20040821}``. |