Another example to set aside for the next "So you think you are smarter than the compiler" person.
Excepting environments where performance is critical (games comes to mind), shouldn't we bias toward improving the code for human readability?
For now, there are macros if an inline function does not work properly. Attributes to force inlining exist in some compilers, at least GCC and clang support those.
Additionally marking the function as pure if applicable can help optimisers as well.
(Security attributes and recursive calls that may remain recursive calls instead of stack utilising loops.)
GCC and clang variants do not have this issue.
MSVC is generally not really known for high performance of generated code, which is partly why newest versions support a clang backend.