forked from gap-system/gap
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
kernel: change
static inline
to EXPORT_INLINE
... which is #defined to `inline` in `system.h` by default, unless it is already defined differently. And we do define it differently in one place, namely in debug.c, where we set it to `extern inline`. This ensures all these functions have external linkage, and are emitted at least once as an actual function (even if all calls to them are inlined). They thus can be referenced from clients of libgap, which so far had to manually write wrappers for any of our static inline functions. It also prevents the compiler from emitting multiple instances of the same function, which can confuse lldb when debugging (as a result, I was no longer able to use functions like TNAM_OBJ, IS_INTOBJ etc. in lldb, which made debugging MUCH harder than it used to be; the immediate cause for this was that we now also compile some code as C++, which resulted in two slightly different versions of these functions to be emitted, namely one with the original name, and one with a C++ mangled name). Finally, we can get rid of the `debug_func_pointers` array in debug.c, whose maintenance was a bit of a nuisance.
- Loading branch information
Showing
39 changed files
with
410 additions
and
724 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.