|Non-Confidential||PDF version||ARM DUI0472J|
|Home > Using the Inline and Embedded Assemblers of the ARM Compiler > Access to C and C++ compile-time constant expressions from embedded assembler|
You can use the
__cpp keyword to access C and C++ compile-time constant expressions, including the addresses of data or functions with external linkage, from the assembly code.
The expression inside the
__cpp must be a constant
expression suitable for use as a C++ static initialization. See 3.6.2 Initialization of non-local objects and 5.19 Constant expressions in ISO/IEC 14882:2003.
The following example shows a constant replacing the use of
LDR r0, =__cpp(&some_variable) LDR r1, =__cpp(some_function) BL __cpp(some_function) MOV r0, #__cpp(some_constant_expr)
Names in the
__cpp expression are looked up in the C++ context of the
__asm function. Any names in the result of a
expression are mangled as required and automatically have
generated for them.