When I try to flag a function as inline in C, gcc doesn't inline it.
Maybe it needs special flags to get functions inlined. I thought I passed all of them: -O3 -finline-functions. Maybe inline should be defined as a gcc attribute. Maybe past some threshold gcc doesn't do what it's told because it knows better.
After gcc I tried Clang. It couldn't link the code. I think it gets confused by macros when the last parameter passed to the macro is blank.
Surprised I tried tcc. It breaks with macros too.
Please fix this. If something as powerful as macros in C is broken, it's a sign of a bigger problem with programming languages.