You copied the Doc URL to your clipboard.

__return_address intrinsic

This intrinsic returns the return address of the current function.

Syntax

unsigned int __return_address(void)

Return value

The __return_address intrinsic returns the value of the link register that is used in returning from the current function.

Restrictions

The __return_address intrinsic does not affect the ability of the compiler to perform optimizations such as inlining, tailcalling, and code sharing. Where optimizations are made, the value returned by __return_address reflects the optimizations performed:

No optimization

When no optimizations are performed, the value returned by __return_address from within a function foo is the return address of foo.

Inline optimization

If a function foo is inlined into a function bar then the value returned by __return_address from within foo is the return address of bar.

Tail-call optimization

If a function foo is tail-called from a function bar then the value returned by __return_address from within foo is the return address of bar.