in reply to Re^3: XS debugging "failed to extend arg stack"
in thread [Solved] XS debugging "failed to extend arg stack"
In general, the more complex expression you put in a macro the more likely it is to trigger some syntax mishap in the expansion of the macro. The main danger is if you use expressions with side effects, and then the macro evaluates it twice, which wasn't a factor here. But in general, macros are fragile, unlike inline functions which evaluate the expression once and then apply the rest of the inlined logic to those values. If you only ever pass bare variable names as arguments to a macro, it is least likely to give problems.