When a function is referenced only in inline assembly, you can use the used function attribute to instruct the compiler to emit the code for the function even if it appears that the function is not referenced.
used function attribute syntax >>-__attribute__--((--+-used-----+--))------------------------->< '-__used__-'
If the function attribute gnu_inline is specified in such a way that the function is discarded, and is specified together with the function attribute used, the gnu_inline attribute wins, and the function definition is discarded.