aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmake.config/iwyu/mapping.imp17
-rw-r--r--src/nvim/api/autocmd.c1
-rw-r--r--src/nvim/api/buffer.c1
-rw-r--r--src/nvim/api/command.c1
-rw-r--r--src/nvim/api/deprecated.c1
-rw-r--r--src/nvim/api/extmark.c1
-rw-r--r--src/nvim/api/options.c1
-rw-r--r--src/nvim/api/private/converter.c1
-rw-r--r--src/nvim/api/private/helpers.c1
-rw-r--r--src/nvim/api/tabpage.c1
-rw-r--r--src/nvim/api/ui.c1
-rw-r--r--src/nvim/api/vim.c1
-rw-r--r--src/nvim/api/vimscript.c1
-rw-r--r--src/nvim/api/win_config.c1
-rw-r--r--src/nvim/api/window.c1
-rw-r--r--src/nvim/arabic.c1
-rw-r--r--src/nvim/arglist.c1
-rw-r--r--src/nvim/autocmd.c1
-rw-r--r--src/nvim/buffer_updates.c1
-rw-r--r--src/nvim/bufwrite.c1
-rw-r--r--src/nvim/change.c1
-rw-r--r--src/nvim/cmdexpand.c1
-rw-r--r--src/nvim/cmdhist.c1
-rw-r--r--src/nvim/context.c1
-rw-r--r--src/nvim/cursor_shape.c1
-rw-r--r--src/nvim/debugger.c1
-rw-r--r--src/nvim/diff.c1
-rw-r--r--src/nvim/digraph.c1
-rw-r--r--src/nvim/drawscreen.c1
-rw-r--r--src/nvim/edit.c1
-rw-r--r--src/nvim/eval.c1
-rw-r--r--src/nvim/eval/buffer.c1
-rw-r--r--src/nvim/eval/decode.c1
-rw-r--r--src/nvim/eval/executor.c1
-rw-r--r--src/nvim/eval/funcs.c1
-rw-r--r--src/nvim/eval/userfunc.c1
-rw-r--r--src/nvim/eval/vars.c1
-rw-r--r--src/nvim/event/libuv_process.c1
-rw-r--r--src/nvim/event/multiqueue.c1
-rw-r--r--src/nvim/event/process.c1
-rw-r--r--src/nvim/event/rstream.c1
-rw-r--r--src/nvim/event/signal.c1
-rw-r--r--src/nvim/event/socket.c1
-rw-r--r--src/nvim/event/stream.c1
-rw-r--r--src/nvim/event/time.c1
-rw-r--r--src/nvim/event/wstream.c1
-rw-r--r--src/nvim/ex_cmds.c1
-rw-r--r--src/nvim/ex_docmd.c1
-rw-r--r--src/nvim/ex_eval.c1
-rw-r--r--src/nvim/ex_getln.c1
-rw-r--r--src/nvim/ex_session.c1
-rw-r--r--src/nvim/fileio.c1
-rw-r--r--src/nvim/fold.c1
-rw-r--r--src/nvim/garray.c1
-rw-r--r--src/nvim/getchar.c1
-rw-r--r--src/nvim/hashtab.c1
-rw-r--r--src/nvim/help.c1
-rw-r--r--src/nvim/highlight_group.c1
-rw-r--r--src/nvim/indent.c1
-rw-r--r--src/nvim/indent_c.c1
-rw-r--r--src/nvim/input.c1
-rw-r--r--src/nvim/insexpand.c1
-rw-r--r--src/nvim/keycodes.c2
-rw-r--r--src/nvim/log.c1
-rw-r--r--src/nvim/lua/converter.c1
-rw-r--r--src/nvim/lua/stdlib.c1
-rw-r--r--src/nvim/main.c1
-rw-r--r--src/nvim/mapping.c1
-rw-r--r--src/nvim/match.c1
-rw-r--r--src/nvim/memline.c1
-rw-r--r--src/nvim/memory.c1
-rw-r--r--src/nvim/menu.c1
-rw-r--r--src/nvim/message.c1
-rw-r--r--src/nvim/mouse.c1
-rw-r--r--src/nvim/move.c1
-rw-r--r--src/nvim/msgpack_rpc/channel.c1
-rw-r--r--src/nvim/msgpack_rpc/helpers.c2
-rw-r--r--src/nvim/msgpack_rpc/server.c1
-rw-r--r--src/nvim/normal.c1
-rw-r--r--src/nvim/option.c1
-rw-r--r--src/nvim/optionstr.c1
-rw-r--r--src/nvim/os/env.c1
-rw-r--r--src/nvim/os/fs.c1
-rw-r--r--src/nvim/os/input.c1
-rw-r--r--src/nvim/os/pty_process_unix.c1
-rw-r--r--src/nvim/os/shell.c1
-rw-r--r--src/nvim/os/signal.c1
-rw-r--r--src/nvim/os/stdpaths.c1
-rw-r--r--src/nvim/os/time.c1
-rw-r--r--src/nvim/path.c1
-rw-r--r--src/nvim/plines.c1
-rw-r--r--src/nvim/profile.c1
-rw-r--r--src/nvim/quickfix.c1
-rw-r--r--src/nvim/rbuffer.c1
-rw-r--r--src/nvim/regexp.c1
-rw-r--r--src/nvim/runtime.c1
-rw-r--r--src/nvim/search.c1
-rw-r--r--src/nvim/shada.c1
-rw-r--r--src/nvim/sign.c1
-rw-r--r--src/nvim/spell.c1
-rw-r--r--src/nvim/spellfile.c1
-rw-r--r--src/nvim/spellsuggest.c1
-rw-r--r--src/nvim/syntax.c1
-rw-r--r--src/nvim/tag.c1
-rw-r--r--src/nvim/terminal.c1
-rw-r--r--src/nvim/testing.c1
-rw-r--r--src/nvim/textformat.c1
-rw-r--r--src/nvim/textobject.c1
-rw-r--r--src/nvim/tui/input.c1
-rw-r--r--src/nvim/tui/tui.c1
-rw-r--r--src/nvim/ui_client.c1
-rw-r--r--src/nvim/undo.c1
-rw-r--r--src/nvim/usercmd.c1
-rw-r--r--src/nvim/version.c1
-rw-r--r--src/nvim/viml/parser/expressions.c1
-rw-r--r--src/nvim/window.c1
-rw-r--r--src/nvim/winfloat.c1
117 files changed, 132 insertions, 3 deletions
diff --git a/cmake.config/iwyu/mapping.imp b/cmake.config/iwyu/mapping.imp
index 8c693fecda..401322f948 100644
--- a/cmake.config/iwyu/mapping.imp
+++ b/cmake.config/iwyu/mapping.imp
@@ -15,6 +15,23 @@
{ include: [ '"ui_events_remote.h.generated.h"', private, '"nvim/api/ui.h"', public ] },
# Symbols
+ { symbol: [ "FUNC_ATTR_ALLOC_ALIGN", private, '"nvim/func_attr.h"', public ] },
+ { symbol: [ "FUNC_ATTR_ALLOC_SIZE", private, '"nvim/func_attr.h"', public ] },
+ { symbol: [ "FUNC_ATTR_ALLOC_SIZE_PROD", private, '"nvim/func_attr.h"', public ] },
+ { symbol: [ "FUNC_ATTR_ALWAYS_INLINE", private, '"nvim/func_attr.h"', public ] },
+ { symbol: [ "FUNC_ATTR_CONST", private, '"nvim/func_attr.h"', public ] },
+ { symbol: [ "FUNC_ATTR_MALLOC", private, '"nvim/func_attr.h"', public ] },
+ { symbol: [ "FUNC_ATTR_NONNULL_ALL", private, '"nvim/func_attr.h"', public ] },
+ { symbol: [ "FUNC_ATTR_NONNULL_ARG", private, '"nvim/func_attr.h"', public ] },
+ { symbol: [ "FUNC_ATTR_NONNULL_RET", private, '"nvim/func_attr.h"', public ] },
+ { symbol: [ "FUNC_ATTR_NORETURN", private, '"nvim/func_attr.h"', public ] },
+ { symbol: [ "FUNC_ATTR_NO_SANITIZE_ADDRESS", private, '"nvim/func_attr.h"', public ] },
+ { symbol: [ "FUNC_ATTR_NO_SANITIZE_UNDEFINED", private, '"nvim/func_attr.h"', public ] },
+ { symbol: [ "FUNC_ATTR_PRINTF", private, '"nvim/func_attr.h"', public ] },
+ { symbol: [ "FUNC_ATTR_PURE", private, '"nvim/func_attr.h"', public ] },
+ { symbol: [ "FUNC_ATTR_UNUSED", private, '"nvim/func_attr.h"', public ] },
+ { symbol: [ "FUNC_ATTR_WARN_UNUSED_RESULT", private, '"nvim/func_attr.h"', public ] },
+
{ symbol: [ "MAX", private, '"nvim/macros.h"', public ] },
{ symbol: [ "MIN", private, '"nvim/macros.h"', public ] },
{ symbol: [ "extern_proc", private, '<uv.h>', public ] },
diff --git a/src/nvim/api/autocmd.c b/src/nvim/api/autocmd.c
index 15a76cb8b0..ab33bc6801 100644
--- a/src/nvim/api/autocmd.c
+++ b/src/nvim/api/autocmd.c
@@ -16,6 +16,7 @@
#include "nvim/buffer.h"
#include "nvim/eval/typval.h"
#include "nvim/ex_cmds_defs.h"
+#include "nvim/func_attr.h"
#include "nvim/globals.h"
#include "nvim/lua/executor.h"
#include "nvim/memory.h"
diff --git a/src/nvim/api/buffer.c b/src/nvim/api/buffer.c
index 0444deff40..5a9ddaae41 100644
--- a/src/nvim/api/buffer.c
+++ b/src/nvim/api/buffer.c
@@ -24,6 +24,7 @@
#include "nvim/drawscreen.h"
#include "nvim/ex_cmds.h"
#include "nvim/extmark.h"
+#include "nvim/func_attr.h"
#include "nvim/globals.h"
#include "nvim/lua/executor.h"
#include "nvim/mapping.h"
diff --git a/src/nvim/api/command.c b/src/nvim/api/command.c
index 5e46797ca4..4af475d400 100644
--- a/src/nvim/api/command.c
+++ b/src/nvim/api/command.c
@@ -18,6 +18,7 @@
#include "nvim/ex_cmds.h"
#include "nvim/ex_docmd.h"
#include "nvim/ex_eval.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/globals.h"
#include "nvim/lua/executor.h"
diff --git a/src/nvim/api/deprecated.c b/src/nvim/api/deprecated.c
index 47d3e1146c..b57cf80c9f 100644
--- a/src/nvim/api/deprecated.c
+++ b/src/nvim/api/deprecated.c
@@ -14,6 +14,7 @@
#include "nvim/buffer_defs.h"
#include "nvim/decoration.h"
#include "nvim/extmark.h"
+#include "nvim/func_attr.h"
#include "nvim/globals.h"
#include "nvim/highlight.h"
#include "nvim/highlight_group.h"
diff --git a/src/nvim/api/extmark.c b/src/nvim/api/extmark.c
index 28fcf7dd0f..b7bc57e52c 100644
--- a/src/nvim/api/extmark.c
+++ b/src/nvim/api/extmark.c
@@ -16,6 +16,7 @@
#include "nvim/decoration_provider.h"
#include "nvim/drawscreen.h"
#include "nvim/extmark.h"
+#include "nvim/func_attr.h"
#include "nvim/highlight_group.h"
#include "nvim/marktree.h"
#include "nvim/mbyte.h"
diff --git a/src/nvim/api/options.c b/src/nvim/api/options.c
index 4cd5359cab..f151a635ab 100644
--- a/src/nvim/api/options.c
+++ b/src/nvim/api/options.c
@@ -10,6 +10,7 @@
#include "nvim/autocmd.h"
#include "nvim/buffer.h"
#include "nvim/eval/window.h"
+#include "nvim/func_attr.h"
#include "nvim/globals.h"
#include "nvim/macros.h"
#include "nvim/memory.h"
diff --git a/src/nvim/api/private/converter.c b/src/nvim/api/private/converter.c
index 6e6d054374..228172fd28 100644
--- a/src/nvim/api/private/converter.c
+++ b/src/nvim/api/private/converter.c
@@ -11,6 +11,7 @@
#include "nvim/eval/typval.h"
#include "nvim/eval/typval_defs.h"
#include "nvim/eval/userfunc.h"
+#include "nvim/func_attr.h"
#include "nvim/lua/executor.h"
#include "nvim/memory.h"
#include "nvim/types.h"
diff --git a/src/nvim/api/private/helpers.c b/src/nvim/api/private/helpers.c
index 828362c10e..fac23dfaaa 100644
--- a/src/nvim/api/private/helpers.c
+++ b/src/nvim/api/private/helpers.c
@@ -20,6 +20,7 @@
#include "nvim/eval/typval_defs.h"
#include "nvim/eval/vars.h"
#include "nvim/ex_eval.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/globals.h"
#include "nvim/highlight_group.h"
diff --git a/src/nvim/api/tabpage.c b/src/nvim/api/tabpage.c
index d6bbff6747..c854a22477 100644
--- a/src/nvim/api/tabpage.c
+++ b/src/nvim/api/tabpage.c
@@ -6,6 +6,7 @@
#include "nvim/api/tabpage.h"
#include "nvim/api/vim.h"
#include "nvim/buffer_defs.h"
+#include "nvim/func_attr.h"
#include "nvim/globals.h"
#include "nvim/memory.h"
#include "nvim/window.h"
diff --git a/src/nvim/api/ui.c b/src/nvim/api/ui.c
index 52165420b2..7366e24703 100644
--- a/src/nvim/api/ui.c
+++ b/src/nvim/api/ui.c
@@ -17,6 +17,7 @@
#include "nvim/eval.h"
#include "nvim/event/loop.h"
#include "nvim/event/wstream.h"
+#include "nvim/func_attr.h"
#include "nvim/globals.h"
#include "nvim/grid.h"
#include "nvim/highlight.h"
diff --git a/src/nvim/api/vim.c b/src/nvim/api/vim.c
index 7279cb9b1a..2823319b06 100644
--- a/src/nvim/api/vim.c
+++ b/src/nvim/api/vim.c
@@ -31,6 +31,7 @@
#include "nvim/ex_docmd.h"
#include "nvim/ex_eval.h"
#include "nvim/fold.h"
+#include "nvim/func_attr.h"
#include "nvim/getchar.h"
#include "nvim/globals.h"
#include "nvim/grid.h"
diff --git a/src/nvim/api/vimscript.c b/src/nvim/api/vimscript.c
index 63c1f39fb7..b68eba1005 100644
--- a/src/nvim/api/vimscript.c
+++ b/src/nvim/api/vimscript.c
@@ -15,6 +15,7 @@
#include "nvim/eval/typval.h"
#include "nvim/eval/userfunc.h"
#include "nvim/ex_docmd.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/globals.h"
#include "nvim/memory.h"
diff --git a/src/nvim/api/win_config.c b/src/nvim/api/win_config.c
index 8b9f73ae87..72a1c952b0 100644
--- a/src/nvim/api/win_config.c
+++ b/src/nvim/api/win_config.c
@@ -12,6 +12,7 @@
#include "nvim/buffer_defs.h"
#include "nvim/decoration.h"
#include "nvim/drawscreen.h"
+#include "nvim/func_attr.h"
#include "nvim/globals.h"
#include "nvim/grid.h"
#include "nvim/highlight_group.h"
diff --git a/src/nvim/api/window.c b/src/nvim/api/window.c
index 9a788e9ce4..08cd6f881f 100644
--- a/src/nvim/api/window.c
+++ b/src/nvim/api/window.c
@@ -14,6 +14,7 @@
#include "nvim/drawscreen.h"
#include "nvim/eval/window.h"
#include "nvim/ex_docmd.h"
+#include "nvim/func_attr.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
#include "nvim/lua/executor.h"
diff --git a/src/nvim/arabic.c b/src/nvim/arabic.c
index 226b042471..e5ebd84cb3 100644
--- a/src/nvim/arabic.c
+++ b/src/nvim/arabic.c
@@ -22,6 +22,7 @@
#include "nvim/arabic.h"
#include "nvim/ascii.h"
+#include "nvim/func_attr.h"
#include "nvim/macros.h"
#include "nvim/option_vars.h"
diff --git a/src/nvim/arglist.c b/src/nvim/arglist.c
index 634f90bacf..7895dc8333 100644
--- a/src/nvim/arglist.c
+++ b/src/nvim/arglist.c
@@ -20,6 +20,7 @@
#include "nvim/ex_cmds_defs.h"
#include "nvim/ex_getln.h"
#include "nvim/fileio.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
diff --git a/src/nvim/autocmd.c b/src/nvim/autocmd.c
index 1fd22f7060..ac88b19fb9 100644
--- a/src/nvim/autocmd.c
+++ b/src/nvim/autocmd.c
@@ -23,6 +23,7 @@
#include "nvim/ex_docmd.h"
#include "nvim/ex_eval.h"
#include "nvim/fileio.h"
+#include "nvim/func_attr.h"
#include "nvim/getchar.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
diff --git a/src/nvim/buffer_updates.c b/src/nvim/buffer_updates.c
index 0f5d64cc62..2d1c568cb3 100644
--- a/src/nvim/buffer_updates.c
+++ b/src/nvim/buffer_updates.c
@@ -12,6 +12,7 @@
#include "nvim/buffer_defs.h"
#include "nvim/buffer_updates.h"
#include "nvim/extmark.h"
+#include "nvim/func_attr.h"
#include "nvim/globals.h"
#include "nvim/log.h"
#include "nvim/lua/executor.h"
diff --git a/src/nvim/bufwrite.c b/src/nvim/bufwrite.c
index ab57d5d754..8569e3b281 100644
--- a/src/nvim/bufwrite.c
+++ b/src/nvim/bufwrite.c
@@ -23,6 +23,7 @@
#include "nvim/ex_cmds_defs.h"
#include "nvim/ex_eval.h"
#include "nvim/fileio.h"
+#include "nvim/func_attr.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
#include "nvim/highlight_defs.h"
diff --git a/src/nvim/change.c b/src/nvim/change.c
index f9eeab38c8..c0380b57df 100644
--- a/src/nvim/change.c
+++ b/src/nvim/change.c
@@ -21,6 +21,7 @@
#include "nvim/ex_cmds_defs.h"
#include "nvim/extmark.h"
#include "nvim/fold.h"
+#include "nvim/func_attr.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
#include "nvim/highlight_defs.h"
diff --git a/src/nvim/cmdexpand.c b/src/nvim/cmdexpand.c
index 58ec3d31bf..71f0afe604 100644
--- a/src/nvim/cmdexpand.c
+++ b/src/nvim/cmdexpand.c
@@ -26,6 +26,7 @@
#include "nvim/ex_cmds.h"
#include "nvim/ex_docmd.h"
#include "nvim/ex_getln.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/garray_defs.h"
#include "nvim/getchar.h"
diff --git a/src/nvim/cmdhist.c b/src/nvim/cmdhist.c
index f3359dcc22..cfd43119e1 100644
--- a/src/nvim/cmdhist.c
+++ b/src/nvim/cmdhist.c
@@ -15,6 +15,7 @@
#include "nvim/ex_cmds.h"
#include "nvim/ex_cmds_defs.h"
#include "nvim/ex_getln.h"
+#include "nvim/func_attr.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
#include "nvim/macros.h"
diff --git a/src/nvim/context.c b/src/nvim/context.c
index 857f26af37..6d08c38f61 100644
--- a/src/nvim/context.c
+++ b/src/nvim/context.c
@@ -16,6 +16,7 @@
#include "nvim/eval/typval.h"
#include "nvim/eval/userfunc.h"
#include "nvim/ex_docmd.h"
+#include "nvim/func_attr.h"
#include "nvim/hashtab.h"
#include "nvim/keycodes.h"
#include "nvim/memory.h"
diff --git a/src/nvim/cursor_shape.c b/src/nvim/cursor_shape.c
index 7fd4151f54..970b84029f 100644
--- a/src/nvim/cursor_shape.c
+++ b/src/nvim/cursor_shape.c
@@ -8,6 +8,7 @@
#include "nvim/charset.h"
#include "nvim/cursor_shape.h"
#include "nvim/ex_getln.h"
+#include "nvim/func_attr.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
#include "nvim/highlight_group.h"
diff --git a/src/nvim/debugger.c b/src/nvim/debugger.c
index 843f8399f0..1568418df4 100644
--- a/src/nvim/debugger.c
+++ b/src/nvim/debugger.c
@@ -18,6 +18,7 @@
#include "nvim/ex_docmd.h"
#include "nvim/ex_getln.h"
#include "nvim/fileio.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/getchar.h"
#include "nvim/gettext.h"
diff --git a/src/nvim/diff.c b/src/nvim/diff.c
index 03103ecd65..36e2678cbe 100644
--- a/src/nvim/diff.c
+++ b/src/nvim/diff.c
@@ -32,6 +32,7 @@
#include "nvim/extmark.h"
#include "nvim/fileio.h"
#include "nvim/fold.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
diff --git a/src/nvim/digraph.c b/src/nvim/digraph.c
index 1bff78f90a..65e410cca0 100644
--- a/src/nvim/digraph.c
+++ b/src/nvim/digraph.c
@@ -17,6 +17,7 @@
#include "nvim/ex_cmds_defs.h"
#include "nvim/ex_docmd.h"
#include "nvim/ex_getln.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/getchar.h"
#include "nvim/gettext.h"
diff --git a/src/nvim/drawscreen.c b/src/nvim/drawscreen.c
index b3d38cec0a..d6301da4b0 100644
--- a/src/nvim/drawscreen.c
+++ b/src/nvim/drawscreen.c
@@ -76,6 +76,7 @@
#include "nvim/eval.h"
#include "nvim/ex_getln.h"
#include "nvim/fold.h"
+#include "nvim/func_attr.h"
#include "nvim/getchar.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
diff --git a/src/nvim/edit.c b/src/nvim/edit.c
index 23a246dcf5..1020b34795 100644
--- a/src/nvim/edit.c
+++ b/src/nvim/edit.c
@@ -24,6 +24,7 @@
#include "nvim/extmark.h"
#include "nvim/fileio.h"
#include "nvim/fold.h"
+#include "nvim/func_attr.h"
#include "nvim/getchar.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index d48e126229..701e6dd32d 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -36,6 +36,7 @@
#include "nvim/ex_eval.h"
#include "nvim/ex_getln.h"
#include "nvim/ex_session.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/getchar.h"
#include "nvim/gettext.h"
diff --git a/src/nvim/eval/buffer.c b/src/nvim/eval/buffer.c
index 93e4f14980..0a36107596 100644
--- a/src/nvim/eval/buffer.c
+++ b/src/nvim/eval/buffer.c
@@ -14,6 +14,7 @@
#include "nvim/eval/funcs.h"
#include "nvim/eval/typval.h"
#include "nvim/eval/typval_defs.h"
+#include "nvim/func_attr.h"
#include "nvim/globals.h"
#include "nvim/macros.h"
#include "nvim/memline.h"
diff --git a/src/nvim/eval/decode.c b/src/nvim/eval/decode.c
index c090d1c9fe..0f896ba531 100644
--- a/src/nvim/eval/decode.c
+++ b/src/nvim/eval/decode.c
@@ -14,6 +14,7 @@
#include "nvim/eval/encode.h"
#include "nvim/eval/typval.h"
#include "nvim/eval/typval_defs.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/gettext.h"
#include "nvim/macros.h"
diff --git a/src/nvim/eval/executor.c b/src/nvim/eval/executor.c
index 62c59db932..79069bbafd 100644
--- a/src/nvim/eval/executor.c
+++ b/src/nvim/eval/executor.c
@@ -5,6 +5,7 @@
#include "nvim/eval/executor.h"
#include "nvim/eval/typval.h"
#include "nvim/eval/typval_defs.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
diff --git a/src/nvim/eval/funcs.c b/src/nvim/eval/funcs.c
index 53fad45d04..6ed992941a 100644
--- a/src/nvim/eval/funcs.c
+++ b/src/nvim/eval/funcs.c
@@ -58,6 +58,7 @@
#include "nvim/ex_getln.h"
#include "nvim/file_search.h"
#include "nvim/fileio.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/getchar.h"
#include "nvim/gettext.h"
diff --git a/src/nvim/eval/userfunc.c b/src/nvim/eval/userfunc.c
index 13d1290fa2..1597f0a524 100644
--- a/src/nvim/eval/userfunc.c
+++ b/src/nvim/eval/userfunc.c
@@ -23,6 +23,7 @@
#include "nvim/ex_docmd.h"
#include "nvim/ex_eval.h"
#include "nvim/ex_getln.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/garray_defs.h"
#include "nvim/getchar.h"
diff --git a/src/nvim/eval/vars.c b/src/nvim/eval/vars.c
index cf02bbe224..9464e71b87 100644
--- a/src/nvim/eval/vars.c
+++ b/src/nvim/eval/vars.c
@@ -25,6 +25,7 @@
#include "nvim/ex_cmds_defs.h"
#include "nvim/ex_docmd.h"
#include "nvim/ex_eval.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
diff --git a/src/nvim/event/libuv_process.c b/src/nvim/event/libuv_process.c
index 8264adb1fc..be48b39af1 100644
--- a/src/nvim/event/libuv_process.c
+++ b/src/nvim/event/libuv_process.c
@@ -7,6 +7,7 @@
#include "nvim/event/libuv_process.h"
#include "nvim/event/process.h"
#include "nvim/event/stream.h"
+#include "nvim/func_attr.h"
#include "nvim/log.h"
#include "nvim/os/os.h"
#include "nvim/ui_client.h"
diff --git a/src/nvim/event/multiqueue.c b/src/nvim/event/multiqueue.c
index 677b7e8e6a..3ab41bd299 100644
--- a/src/nvim/event/multiqueue.c
+++ b/src/nvim/event/multiqueue.c
@@ -48,6 +48,7 @@
#include "nvim/event/defs.h"
#include "nvim/event/multiqueue.h"
+#include "nvim/func_attr.h"
#include "nvim/lib/queue.h"
#include "nvim/memory.h"
diff --git a/src/nvim/event/process.c b/src/nvim/event/process.c
index b69612337c..864fc2c1d8 100644
--- a/src/nvim/event/process.c
+++ b/src/nvim/event/process.c
@@ -7,6 +7,7 @@
#include "nvim/event/libuv_process.h"
#include "nvim/event/loop.h"
#include "nvim/event/process.h"
+#include "nvim/func_attr.h"
#include "nvim/globals.h"
#include "nvim/log.h"
#include "nvim/main.h"
diff --git a/src/nvim/event/rstream.c b/src/nvim/event/rstream.c
index 7745cd8fcc..da6d595741 100644
--- a/src/nvim/event/rstream.c
+++ b/src/nvim/event/rstream.c
@@ -8,6 +8,7 @@
#include "nvim/event/loop.h"
#include "nvim/event/rstream.h"
#include "nvim/event/stream.h"
+#include "nvim/func_attr.h"
#include "nvim/log.h"
#include "nvim/macros.h"
#include "nvim/main.h"
diff --git a/src/nvim/event/signal.c b/src/nvim/event/signal.c
index 07223be987..e64d526856 100644
--- a/src/nvim/event/signal.c
+++ b/src/nvim/event/signal.c
@@ -3,6 +3,7 @@
#include "nvim/event/loop.h"
#include "nvim/event/signal.h"
+#include "nvim/func_attr.h"
#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "event/signal.c.generated.h"
diff --git a/src/nvim/event/socket.c b/src/nvim/event/socket.c
index 6fe6548f99..f6a950d4ef 100644
--- a/src/nvim/event/socket.c
+++ b/src/nvim/event/socket.c
@@ -10,6 +10,7 @@
#include "nvim/event/loop.h"
#include "nvim/event/socket.h"
#include "nvim/event/stream.h"
+#include "nvim/func_attr.h"
#include "nvim/gettext.h"
#include "nvim/log.h"
#include "nvim/main.h"
diff --git a/src/nvim/event/stream.c b/src/nvim/event/stream.c
index 17c1b0a072..aff116bad9 100644
--- a/src/nvim/event/stream.c
+++ b/src/nvim/event/stream.c
@@ -6,6 +6,7 @@
#include "nvim/event/loop.h"
#include "nvim/event/stream.h"
+#include "nvim/func_attr.h"
#include "nvim/log.h"
#include "nvim/rbuffer.h"
#ifdef MSWIN
diff --git a/src/nvim/event/time.c b/src/nvim/event/time.c
index 0b624d9547..f678f25f3f 100644
--- a/src/nvim/event/time.c
+++ b/src/nvim/event/time.c
@@ -3,6 +3,7 @@
#include "nvim/event/loop.h"
#include "nvim/event/time.h"
+#include "nvim/func_attr.h"
#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "event/time.c.generated.h"
diff --git a/src/nvim/event/wstream.c b/src/nvim/event/wstream.c
index b19ff0c7d3..d7e5d7a9f3 100644
--- a/src/nvim/event/wstream.c
+++ b/src/nvim/event/wstream.c
@@ -5,6 +5,7 @@
#include "nvim/event/loop.h"
#include "nvim/event/stream.h"
#include "nvim/event/wstream.h"
+#include "nvim/func_attr.h"
#include "nvim/macros.h"
#include "nvim/memory.h"
diff --git a/src/nvim/ex_cmds.c b/src/nvim/ex_cmds.c
index d77bd47fcf..996d88e1f8 100644
--- a/src/nvim/ex_cmds.c
+++ b/src/nvim/ex_cmds.c
@@ -43,6 +43,7 @@
#include "nvim/extmark.h"
#include "nvim/fileio.h"
#include "nvim/fold.h"
+#include "nvim/func_attr.h"
#include "nvim/getchar.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c
index 12aeb509fb..8337990540 100644
--- a/src/nvim/ex_docmd.c
+++ b/src/nvim/ex_docmd.c
@@ -39,6 +39,7 @@
#include "nvim/file_search.h"
#include "nvim/fileio.h"
#include "nvim/fold.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/getchar.h"
#include "nvim/gettext.h"
diff --git a/src/nvim/ex_eval.c b/src/nvim/ex_eval.c
index 424ccb57c3..16bfdc1dc0 100644
--- a/src/nvim/ex_eval.c
+++ b/src/nvim/ex_eval.c
@@ -18,6 +18,7 @@
#include "nvim/ex_docmd.h"
#include "nvim/ex_eval.h"
#include "nvim/ex_eval_defs.h"
+#include "nvim/func_attr.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
#include "nvim/memory.h"
diff --git a/src/nvim/ex_getln.c b/src/nvim/ex_getln.c
index 005966fa75..0d2247ead8 100644
--- a/src/nvim/ex_getln.c
+++ b/src/nvim/ex_getln.c
@@ -34,6 +34,7 @@
#include "nvim/ex_eval.h"
#include "nvim/ex_getln.h"
#include "nvim/extmark.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/getchar.h"
#include "nvim/gettext.h"
diff --git a/src/nvim/ex_session.c b/src/nvim/ex_session.c
index 903170a43c..f63d236b39 100644
--- a/src/nvim/ex_session.c
+++ b/src/nvim/ex_session.c
@@ -20,6 +20,7 @@
#include "nvim/file_search.h"
#include "nvim/fileio.h"
#include "nvim/fold.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
diff --git a/src/nvim/fileio.c b/src/nvim/fileio.c
index dcc1b8eea5..fa9e8d74ff 100644
--- a/src/nvim/fileio.c
+++ b/src/nvim/fileio.c
@@ -31,6 +31,7 @@
#include "nvim/ex_eval.h"
#include "nvim/fileio.h"
#include "nvim/fold.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/garray_defs.h"
#include "nvim/getchar.h"
diff --git a/src/nvim/fold.c b/src/nvim/fold.c
index 1cd57946a6..61c67991cd 100644
--- a/src/nvim/fold.c
+++ b/src/nvim/fold.c
@@ -27,6 +27,7 @@
#include "nvim/ex_session.h"
#include "nvim/extmark.h"
#include "nvim/fold.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/garray_defs.h"
#include "nvim/gettext.h"
diff --git a/src/nvim/garray.c b/src/nvim/garray.c
index 013d7b3fb0..24b6fb0007 100644
--- a/src/nvim/garray.c
+++ b/src/nvim/garray.c
@@ -5,6 +5,7 @@
#include <stdint.h>
#include <string.h>
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/log.h"
#include "nvim/memory.h"
diff --git a/src/nvim/getchar.c b/src/nvim/getchar.c
index 6c08987cdd..4a9f861d77 100644
--- a/src/nvim/getchar.c
+++ b/src/nvim/getchar.c
@@ -26,6 +26,7 @@
#include "nvim/ex_cmds.h"
#include "nvim/ex_docmd.h"
#include "nvim/ex_getln.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/getchar.h"
#include "nvim/gettext.h"
diff --git a/src/nvim/hashtab.c b/src/nvim/hashtab.c
index e6fcd46021..10ce5a083a 100644
--- a/src/nvim/hashtab.c
+++ b/src/nvim/hashtab.c
@@ -24,6 +24,7 @@
#include <string.h>
#include "nvim/ascii.h"
+#include "nvim/func_attr.h"
#include "nvim/gettext.h"
#include "nvim/hashtab.h"
#include "nvim/memory.h"
diff --git a/src/nvim/help.c b/src/nvim/help.c
index b1b2feb587..bf8adff2a9 100644
--- a/src/nvim/help.c
+++ b/src/nvim/help.c
@@ -16,6 +16,7 @@
#include "nvim/ex_docmd.h"
#include "nvim/extmark_defs.h"
#include "nvim/fileio.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
diff --git a/src/nvim/highlight_group.c b/src/nvim/highlight_group.c
index 660e37adc2..e3f5987bd6 100644
--- a/src/nvim/highlight_group.c
+++ b/src/nvim/highlight_group.c
@@ -23,6 +23,7 @@
#include "nvim/eval/typval_defs.h"
#include "nvim/eval/vars.h"
#include "nvim/ex_docmd.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
diff --git a/src/nvim/indent.c b/src/nvim/indent.c
index 0b5606acae..35252cf7e4 100644
--- a/src/nvim/indent.c
+++ b/src/nvim/indent.c
@@ -17,6 +17,7 @@
#include "nvim/ex_cmds_defs.h"
#include "nvim/ex_docmd.h"
#include "nvim/extmark.h"
+#include "nvim/func_attr.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
#include "nvim/indent.h"
diff --git a/src/nvim/indent_c.c b/src/nvim/indent_c.c
index d79dea4d83..be4aa6bad3 100644
--- a/src/nvim/indent_c.c
+++ b/src/nvim/indent_c.c
@@ -9,6 +9,7 @@
#include "nvim/charset.h"
#include "nvim/cursor.h"
#include "nvim/edit.h"
+#include "nvim/func_attr.h"
#include "nvim/globals.h"
#include "nvim/indent.h"
#include "nvim/indent_c.h"
diff --git a/src/nvim/input.c b/src/nvim/input.c
index d3ac180ffc..08116c5e4f 100644
--- a/src/nvim/input.c
+++ b/src/nvim/input.c
@@ -8,7 +8,6 @@
#include "nvim/ascii.h"
#include "nvim/event/multiqueue.h"
-#include "nvim/func_attr.h"
#include "nvim/getchar.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
diff --git a/src/nvim/insexpand.c b/src/nvim/insexpand.c
index de479e8ee2..92fc6c6906 100644
--- a/src/nvim/insexpand.c
+++ b/src/nvim/insexpand.c
@@ -24,6 +24,7 @@
#include "nvim/ex_eval.h"
#include "nvim/ex_getln.h"
#include "nvim/fileio.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/getchar.h"
#include "nvim/gettext.h"
diff --git a/src/nvim/keycodes.c b/src/nvim/keycodes.c
index aa61b40476..dcca3d6caf 100644
--- a/src/nvim/keycodes.c
+++ b/src/nvim/keycodes.c
@@ -10,6 +10,7 @@
#include "nvim/charset.h"
#include "nvim/eval/typval_defs.h"
#include "nvim/eval/vars.h"
+#include "nvim/func_attr.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
#include "nvim/keycodes.h"
@@ -18,7 +19,6 @@
#include "nvim/memory.h"
#include "nvim/message.h"
#include "nvim/mouse.h"
-#include "nvim/strings.h"
#include "nvim/vim.h"
#ifdef INCLUDE_GENERATED_DECLARATIONS
diff --git a/src/nvim/log.c b/src/nvim/log.c
index c6efdaeb49..ebe119164f 100644
--- a/src/nvim/log.c
+++ b/src/nvim/log.c
@@ -19,6 +19,7 @@
#include "auto/config.h"
#include "nvim/ascii.h"
#include "nvim/eval.h"
+#include "nvim/func_attr.h"
#include "nvim/globals.h"
#include "nvim/log.h"
#include "nvim/memory.h"
diff --git a/src/nvim/lua/converter.c b/src/nvim/lua/converter.c
index fc39fb48b6..ed8cc3a612 100644
--- a/src/nvim/lua/converter.c
+++ b/src/nvim/lua/converter.c
@@ -19,6 +19,7 @@
#include "nvim/eval/typval_defs.h"
#include "nvim/eval/typval_encode.h"
#include "nvim/eval/userfunc.h"
+#include "nvim/func_attr.h"
#include "nvim/gettext.h"
#include "nvim/lua/converter.h"
#include "nvim/lua/executor.h"
diff --git a/src/nvim/lua/stdlib.c b/src/nvim/lua/stdlib.c
index a200b0a32f..dafc24fea1 100644
--- a/src/nvim/lua/stdlib.c
+++ b/src/nvim/lua/stdlib.c
@@ -22,6 +22,7 @@
#include "nvim/eval/vars.h"
#include "nvim/ex_eval.h"
#include "nvim/fold.h"
+#include "nvim/func_attr.h"
#include "nvim/globals.h"
#include "nvim/lua/base64.h"
#include "nvim/lua/converter.h"
diff --git a/src/nvim/main.c b/src/nvim/main.c
index 68659d8a54..bcf390ec4c 100644
--- a/src/nvim/main.c
+++ b/src/nvim/main.c
@@ -48,6 +48,7 @@
#include "nvim/ex_getln.h"
#include "nvim/fileio.h"
#include "nvim/fold.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/getchar.h"
#include "nvim/gettext.h"
diff --git a/src/nvim/mapping.c b/src/nvim/mapping.c
index 6fcade82e0..0b71569c89 100644
--- a/src/nvim/mapping.c
+++ b/src/nvim/mapping.c
@@ -24,6 +24,7 @@
#include "nvim/eval/typval_defs.h"
#include "nvim/ex_cmds_defs.h"
#include "nvim/ex_session.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/getchar.h"
#include "nvim/gettext.h"
diff --git a/src/nvim/match.c b/src/nvim/match.c
index 743dfb9953..670cf6ea16 100644
--- a/src/nvim/match.c
+++ b/src/nvim/match.c
@@ -16,6 +16,7 @@
#include "nvim/ex_cmds_defs.h"
#include "nvim/ex_docmd.h"
#include "nvim/fold.h"
+#include "nvim/func_attr.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
#include "nvim/highlight.h"
diff --git a/src/nvim/memline.c b/src/nvim/memline.c
index f9169030a6..de2ab5b8b3 100644
--- a/src/nvim/memline.c
+++ b/src/nvim/memline.c
@@ -56,6 +56,7 @@
#include "nvim/eval/typval.h"
#include "nvim/ex_cmds_defs.h"
#include "nvim/fileio.h"
+#include "nvim/func_attr.h"
#include "nvim/getchar.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
diff --git a/src/nvim/memory.c b/src/nvim/memory.c
index eee8e25086..c6b741fd00 100644
--- a/src/nvim/memory.c
+++ b/src/nvim/memory.c
@@ -16,6 +16,7 @@
#include "nvim/decoration_provider.h"
#include "nvim/drawline.h"
#include "nvim/eval.h"
+#include "nvim/func_attr.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
#include "nvim/highlight.h"
diff --git a/src/nvim/menu.c b/src/nvim/menu.c
index b5a92fbb22..d15fc7e7bc 100644
--- a/src/nvim/menu.c
+++ b/src/nvim/menu.c
@@ -15,6 +15,7 @@
#include "nvim/eval/typval.h"
#include "nvim/ex_cmds_defs.h"
#include "nvim/ex_docmd.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/getchar.h"
#include "nvim/gettext.h"
diff --git a/src/nvim/message.c b/src/nvim/message.c
index 641ceff2e8..01ca361d5e 100644
--- a/src/nvim/message.c
+++ b/src/nvim/message.c
@@ -24,6 +24,7 @@
#include "nvim/ex_cmds_defs.h"
#include "nvim/ex_eval.h"
#include "nvim/fileio.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/getchar.h"
#include "nvim/gettext.h"
diff --git a/src/nvim/mouse.c b/src/nvim/mouse.c
index 0b4cd5dd14..2c7438df48 100644
--- a/src/nvim/mouse.c
+++ b/src/nvim/mouse.c
@@ -15,6 +15,7 @@
#include "nvim/eval/typval.h"
#include "nvim/ex_docmd.h"
#include "nvim/fold.h"
+#include "nvim/func_attr.h"
#include "nvim/getchar.h"
#include "nvim/globals.h"
#include "nvim/grid.h"
diff --git a/src/nvim/move.c b/src/nvim/move.c
index 6724ded9d8..94711c64d5 100644
--- a/src/nvim/move.c
+++ b/src/nvim/move.c
@@ -22,6 +22,7 @@
#include "nvim/eval/typval.h"
#include "nvim/eval/window.h"
#include "nvim/fold.h"
+#include "nvim/func_attr.h"
#include "nvim/getchar.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
diff --git a/src/nvim/msgpack_rpc/channel.c b/src/nvim/msgpack_rpc/channel.c
index 382fdca8fa..25c58b7a83 100644
--- a/src/nvim/msgpack_rpc/channel.c
+++ b/src/nvim/msgpack_rpc/channel.c
@@ -20,6 +20,7 @@
#include "nvim/event/rstream.h"
#include "nvim/event/stream.h"
#include "nvim/event/wstream.h"
+#include "nvim/func_attr.h"
#include "nvim/globals.h"
#include "nvim/log.h"
#include "nvim/main.h"
diff --git a/src/nvim/msgpack_rpc/helpers.c b/src/nvim/msgpack_rpc/helpers.c
index d8a33895d5..294ce0e298 100644
--- a/src/nvim/msgpack_rpc/helpers.c
+++ b/src/nvim/msgpack_rpc/helpers.c
@@ -10,7 +10,7 @@
#include "msgpack/pack.h"
#include "nvim/api/private/helpers.h"
#include "nvim/assert.h"
-#include "nvim/event/wstream.h"
+#include "nvim/func_attr.h"
#include "nvim/memory.h"
#include "nvim/msgpack_rpc/helpers.h"
#include "nvim/types.h"
diff --git a/src/nvim/msgpack_rpc/server.c b/src/nvim/msgpack_rpc/server.c
index e60c1b88a5..f3627eaa61 100644
--- a/src/nvim/msgpack_rpc/server.c
+++ b/src/nvim/msgpack_rpc/server.c
@@ -7,6 +7,7 @@
#include "nvim/channel.h"
#include "nvim/eval.h"
#include "nvim/event/socket.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/log.h"
#include "nvim/main.h"
diff --git a/src/nvim/normal.c b/src/nvim/normal.c
index 77ad6d0f89..10463aacb7 100644
--- a/src/nvim/normal.c
+++ b/src/nvim/normal.c
@@ -34,6 +34,7 @@
#include "nvim/ex_getln.h"
#include "nvim/fileio.h"
#include "nvim/fold.h"
+#include "nvim/func_attr.h"
#include "nvim/getchar.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
diff --git a/src/nvim/option.c b/src/nvim/option.c
index d4e8328ddd..23569c4584 100644
--- a/src/nvim/option.c
+++ b/src/nvim/option.c
@@ -49,6 +49,7 @@
#include "nvim/ex_getln.h"
#include "nvim/ex_session.h"
#include "nvim/fold.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
diff --git a/src/nvim/optionstr.c b/src/nvim/optionstr.c
index 6c6fac84bf..97c4fd4393 100644
--- a/src/nvim/optionstr.c
+++ b/src/nvim/optionstr.c
@@ -19,6 +19,7 @@
#include "nvim/eval/vars.h"
#include "nvim/ex_getln.h"
#include "nvim/fold.h"
+#include "nvim/func_attr.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
#include "nvim/highlight_group.h"
diff --git a/src/nvim/os/env.c b/src/nvim/os/env.c
index deb3117f3c..2b1907b025 100644
--- a/src/nvim/os/env.c
+++ b/src/nvim/os/env.c
@@ -14,6 +14,7 @@
#include "nvim/charset.h"
#include "nvim/cmdexpand.h"
#include "nvim/eval.h"
+#include "nvim/func_attr.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
#include "nvim/log.h"
diff --git a/src/nvim/os/fs.c b/src/nvim/os/fs.c
index 4721bc3f1c..4e320a79c4 100644
--- a/src/nvim/os/fs.c
+++ b/src/nvim/os/fs.c
@@ -17,6 +17,7 @@
#endif
#include "auto/config.h"
+#include "nvim/func_attr.h"
#include "nvim/os/fs.h"
#if defined(HAVE_ACL)
diff --git a/src/nvim/os/input.c b/src/nvim/os/input.c
index 5c26a94196..296433d782 100644
--- a/src/nvim/os/input.c
+++ b/src/nvim/os/input.c
@@ -12,6 +12,7 @@
#include "nvim/event/multiqueue.h"
#include "nvim/event/rstream.h"
#include "nvim/event/stream.h"
+#include "nvim/func_attr.h"
#include "nvim/getchar.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
diff --git a/src/nvim/os/pty_process_unix.c b/src/nvim/os/pty_process_unix.c
index d4be3086ea..f801646967 100644
--- a/src/nvim/os/pty_process_unix.c
+++ b/src/nvim/os/pty_process_unix.c
@@ -35,6 +35,7 @@
#include "nvim/event/loop.h"
#include "nvim/event/process.h"
#include "nvim/event/stream.h"
+#include "nvim/func_attr.h"
#include "nvim/log.h"
#include "nvim/os/fs.h"
#include "nvim/os/os_defs.h"
diff --git a/src/nvim/os/shell.c b/src/nvim/os/shell.c
index 2fd4c732fc..2d4f58e45e 100644
--- a/src/nvim/os/shell.c
+++ b/src/nvim/os/shell.c
@@ -20,6 +20,7 @@
#include "nvim/event/wstream.h"
#include "nvim/ex_cmds.h"
#include "nvim/fileio.h"
+#include "nvim/func_attr.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
#include "nvim/macros.h"
diff --git a/src/nvim/os/signal.c b/src/nvim/os/signal.c
index 3a861b87b4..c920cb655e 100644
--- a/src/nvim/os/signal.c
+++ b/src/nvim/os/signal.c
@@ -9,6 +9,7 @@
#include "nvim/autocmd.h"
#include "nvim/eval.h"
#include "nvim/event/signal.h"
+#include "nvim/func_attr.h"
#include "nvim/globals.h"
#include "nvim/log.h"
#include "nvim/main.h"
diff --git a/src/nvim/os/stdpaths.c b/src/nvim/os/stdpaths.c
index 5aeecb8cda..3bb23dcfdc 100644
--- a/src/nvim/os/stdpaths.c
+++ b/src/nvim/os/stdpaths.c
@@ -4,6 +4,7 @@
#include "nvim/ascii.h"
#include "nvim/fileio.h"
+#include "nvim/func_attr.h"
#include "nvim/globals.h"
#include "nvim/memory.h"
#include "nvim/os/os.h"
diff --git a/src/nvim/os/time.c b/src/nvim/os/time.c
index be95412c01..49b43af6c0 100644
--- a/src/nvim/os/time.c
+++ b/src/nvim/os/time.c
@@ -8,6 +8,7 @@
#include "auto/config.h"
#include "nvim/event/loop.h"
+#include "nvim/func_attr.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
#include "nvim/log.h"
diff --git a/src/nvim/path.c b/src/nvim/path.c
index 805b361bb1..c7ec8eccd6 100644
--- a/src/nvim/path.c
+++ b/src/nvim/path.c
@@ -15,6 +15,7 @@
#include "nvim/ex_docmd.h"
#include "nvim/file_search.h"
#include "nvim/fileio.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/garray_defs.h"
#include "nvim/gettext.h"
diff --git a/src/nvim/plines.c b/src/nvim/plines.c
index acbb9637a4..bd1351b490 100644
--- a/src/nvim/plines.c
+++ b/src/nvim/plines.c
@@ -10,6 +10,7 @@
#include "nvim/decoration.h"
#include "nvim/diff.h"
#include "nvim/fold.h"
+#include "nvim/func_attr.h"
#include "nvim/globals.h"
#include "nvim/indent.h"
#include "nvim/macros.h"
diff --git a/src/nvim/profile.c b/src/nvim/profile.c
index 0c771d2dfe..d42f2aceeb 100644
--- a/src/nvim/profile.c
+++ b/src/nvim/profile.c
@@ -15,6 +15,7 @@
#include "nvim/eval/userfunc.h"
#include "nvim/ex_cmds_defs.h"
#include "nvim/fileio.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
diff --git a/src/nvim/quickfix.c b/src/nvim/quickfix.c
index fdc01e0a01..c35e35916d 100644
--- a/src/nvim/quickfix.c
+++ b/src/nvim/quickfix.c
@@ -29,6 +29,7 @@
#include "nvim/ex_getln.h"
#include "nvim/fileio.h"
#include "nvim/fold.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
diff --git a/src/nvim/rbuffer.c b/src/nvim/rbuffer.c
index dd6402a70d..5745f303aa 100644
--- a/src/nvim/rbuffer.c
+++ b/src/nvim/rbuffer.c
@@ -3,6 +3,7 @@
#include <stddef.h>
#include <string.h>
+#include "nvim/func_attr.h"
#include "nvim/macros.h"
#include "nvim/memory.h"
#include "nvim/rbuffer.h"
diff --git a/src/nvim/regexp.c b/src/nvim/regexp.c
index 496b93106d..1bab1bf2d5 100644
--- a/src/nvim/regexp.c
+++ b/src/nvim/regexp.c
@@ -21,6 +21,7 @@
#include "nvim/eval.h"
#include "nvim/eval/typval.h"
#include "nvim/eval/userfunc.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
diff --git a/src/nvim/runtime.c b/src/nvim/runtime.c
index e6720a9211..dd560fd292 100644
--- a/src/nvim/runtime.c
+++ b/src/nvim/runtime.c
@@ -25,6 +25,7 @@
#include "nvim/ex_cmds_defs.h"
#include "nvim/ex_docmd.h"
#include "nvim/ex_eval.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/getchar.h"
#include "nvim/gettext.h"
diff --git a/src/nvim/search.c b/src/nvim/search.c
index d3d10a35b6..f40705ff5d 100644
--- a/src/nvim/search.c
+++ b/src/nvim/search.c
@@ -24,6 +24,7 @@
#include "nvim/ex_getln.h"
#include "nvim/fileio.h"
#include "nvim/fold.h"
+#include "nvim/func_attr.h"
#include "nvim/getchar.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
diff --git a/src/nvim/shada.c b/src/nvim/shada.c
index 9a0d322a9a..fbb5d835a5 100644
--- a/src/nvim/shada.c
+++ b/src/nvim/shada.c
@@ -25,6 +25,7 @@
#include "nvim/ex_cmds.h"
#include "nvim/ex_docmd.h"
#include "nvim/fileio.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
diff --git a/src/nvim/sign.c b/src/nvim/sign.c
index 87b02aacae..7d0db18970 100644
--- a/src/nvim/sign.c
+++ b/src/nvim/sign.c
@@ -26,6 +26,7 @@
#include "nvim/ex_docmd.h"
#include "nvim/extmark.h"
#include "nvim/fold.h"
+#include "nvim/func_attr.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
#include "nvim/highlight_defs.h"
diff --git a/src/nvim/spell.c b/src/nvim/spell.c
index c58284eafc..7c2d58c82b 100644
--- a/src/nvim/spell.c
+++ b/src/nvim/spell.c
@@ -73,6 +73,7 @@
#include "nvim/ex_cmds.h"
#include "nvim/ex_cmds_defs.h"
#include "nvim/ex_docmd.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
diff --git a/src/nvim/spellfile.c b/src/nvim/spellfile.c
index 0d76ad631e..0df00aceee 100644
--- a/src/nvim/spellfile.c
+++ b/src/nvim/spellfile.c
@@ -241,6 +241,7 @@
#include "nvim/drawscreen.h"
#include "nvim/ex_cmds_defs.h"
#include "nvim/fileio.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
diff --git a/src/nvim/spellsuggest.c b/src/nvim/spellsuggest.c
index 48c7c7e4a8..98feb6e5d3 100644
--- a/src/nvim/spellsuggest.c
+++ b/src/nvim/spellsuggest.c
@@ -17,6 +17,7 @@
#include "nvim/eval.h"
#include "nvim/eval/typval.h"
#include "nvim/fileio.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/garray_defs.h"
#include "nvim/getchar.h"
diff --git a/src/nvim/syntax.c b/src/nvim/syntax.c
index 68b4382443..7243cc9881 100644
--- a/src/nvim/syntax.c
+++ b/src/nvim/syntax.c
@@ -20,6 +20,7 @@
#include "nvim/ex_cmds_defs.h"
#include "nvim/ex_docmd.h"
#include "nvim/fold.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
diff --git a/src/nvim/tag.c b/src/nvim/tag.c
index 90bd2f8fad..67453b40eb 100644
--- a/src/nvim/tag.c
+++ b/src/nvim/tag.c
@@ -23,6 +23,7 @@
#include "nvim/file_search.h"
#include "nvim/fileio.h"
#include "nvim/fold.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
diff --git a/src/nvim/terminal.c b/src/nvim/terminal.c
index ca9777f1d6..025efce7c8 100644
--- a/src/nvim/terminal.c
+++ b/src/nvim/terminal.c
@@ -59,6 +59,7 @@
#include "nvim/event/multiqueue.h"
#include "nvim/event/time.h"
#include "nvim/ex_docmd.h"
+#include "nvim/func_attr.h"
#include "nvim/getchar.h"
#include "nvim/globals.h"
#include "nvim/highlight.h"
diff --git a/src/nvim/testing.c b/src/nvim/testing.c
index 3c78a1ab0e..31addfc1e3 100644
--- a/src/nvim/testing.c
+++ b/src/nvim/testing.c
@@ -12,6 +12,7 @@
#include "nvim/eval/typval.h"
#include "nvim/eval/typval_defs.h"
#include "nvim/ex_docmd.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
diff --git a/src/nvim/textformat.c b/src/nvim/textformat.c
index bf7044c663..c28aea0216 100644
--- a/src/nvim/textformat.c
+++ b/src/nvim/textformat.c
@@ -14,6 +14,7 @@
#include "nvim/eval.h"
#include "nvim/eval/typval_defs.h"
#include "nvim/ex_cmds_defs.h"
+#include "nvim/func_attr.h"
#include "nvim/getchar.h"
#include "nvim/globals.h"
#include "nvim/indent.h"
diff --git a/src/nvim/textobject.c b/src/nvim/textobject.c
index a0a33b17a3..11db5697f0 100644
--- a/src/nvim/textobject.c
+++ b/src/nvim/textobject.c
@@ -11,6 +11,7 @@
#include "nvim/edit.h"
#include "nvim/eval/funcs.h"
#include "nvim/fold.h"
+#include "nvim/func_attr.h"
#include "nvim/globals.h"
#include "nvim/indent.h"
#include "nvim/macros.h"
diff --git a/src/nvim/tui/input.c b/src/nvim/tui/input.c
index 92856d6d8c..923421b00d 100644
--- a/src/nvim/tui/input.c
+++ b/src/nvim/tui/input.c
@@ -7,6 +7,7 @@
#include "nvim/api/private/defs.h"
#include "nvim/api/private/helpers.h"
#include "nvim/event/defs.h"
+#include "nvim/func_attr.h"
#include "nvim/macros.h"
#include "nvim/main.h"
#include "nvim/map.h"
diff --git a/src/nvim/tui/tui.c b/src/nvim/tui/tui.c
index 0272c974d5..dbc1187273 100644
--- a/src/nvim/tui/tui.c
+++ b/src/nvim/tui/tui.c
@@ -18,6 +18,7 @@
#include "nvim/event/loop.h"
#include "nvim/event/signal.h"
#include "nvim/event/stream.h"
+#include "nvim/func_attr.h"
#include "nvim/globals.h"
#include "nvim/grid.h"
#include "nvim/highlight_defs.h"
diff --git a/src/nvim/ui_client.c b/src/nvim/ui_client.c
index 13756ace3c..3012d6fbee 100644
--- a/src/nvim/ui_client.c
+++ b/src/nvim/ui_client.c
@@ -11,6 +11,7 @@
#include "nvim/eval.h"
#include "nvim/eval/typval_defs.h"
#include "nvim/event/loop.h"
+#include "nvim/func_attr.h"
#include "nvim/globals.h"
#include "nvim/highlight.h"
#include "nvim/log.h"
diff --git a/src/nvim/undo.c b/src/nvim/undo.c
index 288b23f56c..50e2b18c31 100644
--- a/src/nvim/undo.c
+++ b/src/nvim/undo.c
@@ -99,6 +99,7 @@
#include "nvim/extmark.h"
#include "nvim/fileio.h"
#include "nvim/fold.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/getchar.h"
#include "nvim/gettext.h"
diff --git a/src/nvim/usercmd.c b/src/nvim/usercmd.c
index 69fed19388..c7b09ff299 100644
--- a/src/nvim/usercmd.c
+++ b/src/nvim/usercmd.c
@@ -16,6 +16,7 @@
#include "nvim/cmdexpand_defs.h"
#include "nvim/eval.h"
#include "nvim/ex_docmd.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
diff --git a/src/nvim/version.c b/src/nvim/version.c
index 0f50fa1ff8..22ba6523a4 100644
--- a/src/nvim/version.c
+++ b/src/nvim/version.c
@@ -20,6 +20,7 @@
#include "nvim/charset.h"
#include "nvim/drawscreen.h"
#include "nvim/ex_cmds_defs.h"
+#include "nvim/func_attr.h"
#include "nvim/gettext.h"
#include "nvim/globals.h"
#include "nvim/grid.h"
diff --git a/src/nvim/viml/parser/expressions.c b/src/nvim/viml/parser/expressions.c
index d4e850eaa6..82e01f7d9c 100644
--- a/src/nvim/viml/parser/expressions.c
+++ b/src/nvim/viml/parser/expressions.c
@@ -58,6 +58,7 @@
#include "nvim/ascii.h"
#include "nvim/assert.h"
#include "nvim/charset.h"
+#include "nvim/func_attr.h"
#include "nvim/gettext.h"
#include "nvim/keycodes.h"
#include "nvim/macros.h"
diff --git a/src/nvim/window.c b/src/nvim/window.c
index af29a2c2d1..fe30ccacf9 100644
--- a/src/nvim/window.c
+++ b/src/nvim/window.c
@@ -33,6 +33,7 @@
#include "nvim/file_search.h"
#include "nvim/fileio.h"
#include "nvim/fold.h"
+#include "nvim/func_attr.h"
#include "nvim/garray.h"
#include "nvim/getchar.h"
#include "nvim/gettext.h"
diff --git a/src/nvim/winfloat.c b/src/nvim/winfloat.c
index 7fff17e1c4..25c6e2a15f 100644
--- a/src/nvim/winfloat.c
+++ b/src/nvim/winfloat.c
@@ -9,6 +9,7 @@
#include "nvim/ascii.h"
#include "nvim/buffer_defs.h"
#include "nvim/drawscreen.h"
+#include "nvim/func_attr.h"
#include "nvim/globals.h"
#include "nvim/grid.h"
#include "nvim/macros.h"