That’s not what -ffold-simple-inlines does. The -ffold-simple-inlines flag simply removes debugging information for certain inlined functions. It doesn’t affect whether the function is inlined in the first place. The result is that debug builds may have a smaller amount of debug information, but the code will be the same.
That's not my reading of the docs, which explicitly talk about folding. Also simple tests shows that it does indeed inline the call even in debug mode.
In addition to inlining it also does also remove debug info.
You may be right—I was reading the release notes, and the actual docs go into more detail about what the flag does.
There's also the `artificial` attribute which instructs the debugger to skip through marked functions.