__return_address intrinsic

This intrinsic returns the return address of the current function.

Show/hideSyntax

unsigned int __return_address(void)

Show/hideReturn value

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

Show/hideRestrictions

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.

Show/hideSee also

Copyright © 2010-2011 ARM. All rights reserved.ARM DUI 0491E
Non-ConfidentialID071611