Does __attribute__((always_inline))
force a function to be inlined by gcc?
Yes.
always_inline
Generally, functions are not inlined unless optimization is specified. For functions declared inline, this attribute inlines the function even if no optimization level was specified.