DEV: Add static modifier to inline declarations. by jvkersch · Pull Request #12123 · pandas-dev/pandas (original) (raw)

It is currently impossible to build a debug version of Pandas on Mac OS, since some of the C function declarations are declared as inline, and compiling in debug mode turns off optimizations and hence inlining. While this could be solved by adding a compile argument to setup.py to use the C89 behavior for inline as in #10510, I believe an ultimately cleaner solution may consist of declaring inlined functions as static, so that the code is properly C99-compliant.

For the implementation, I added the static keyword to the definitions of PANDAS_INLINE and P_INLINE (and removed duplicate occurrences of static from some function declarations), so that future implementations that use those defines are automatically compliant. This is slightly different from e.g. Cython, which defines CYTHON_INLINE as inline and declares everything as static CYTHON_INLINE.