SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
Inline.hpp
1#pragma once
2
3// Macro which is put after the function definition (only in the header) to prevent the function from being inlined.
4// Example: void someFunction(int someArg) const NO_INLINE;
5#define NO_INLINE __attribute__((noinline))
6
7// Macros which should be used when a function is both inlined and not inlined (so it's auto-inlined by the compiler).
8// This is used to declare the inline version of the function. If not a constructor, the non-inline version
9// should call the inline version.
10// Example:
11// int someFunction(int SomeArg)
12// inline int INLINE_FUNC_DECL(someFunction, int someArg);
13// CALL_INLINE_FUNC(someFunction, 0);
14#define INLINE_FUNC_DECL(name, ...) name(void *****, __VA_ARGS__)
15#define INLINE_FUNC_DECL_NO_ARG(name) name(void *****)
16
17#define CALL_INLINE_FUNC(name, ...) name((void *****)0, __VA_ARGS__)
18#define CALL_INLINE_FUNC_NO_ARG(name) name((void *****)0)