21 lines
829 B
Plaintext
21 lines
829 B
Plaintext
|
__noreturn
|
||
|
==========
|
||
|
:title: Shellcode Compiler Runtime
|
||
|
|
||
|
---------------------------------------------
|
||
|
void example_function(void) __noreturn;
|
||
|
---------------------------------------------
|
||
|
|
||
|
The `__noreturn` modifier can be placed immediately after a function type declaration to specify that
|
||
|
a function can never return. For example, the `exit` function is marked with `__noreturn`.
|
||
|
|
||
|
It is not necessary for functions that call `__noreturn` functions such as `exit` to explicitly specify
|
||
|
that they cannot return. The compiler will automatically determine that such functions are `__noreturn`.
|
||
|
This attribute is usually only necessary with functions that issue system calls that cause the
|
||
|
process to exit, or to transition to a new codebase (such as `execve`).
|
||
|
|
||
|
See also
|
||
|
--------
|
||
|
link:exit.html[exit],
|
||
|
link:execve.html[execve]
|