diff --git a/libbb/lineedit.c b/libbb/lineedit.c
index 1d5fef5..fbabc6c 100644
--- a/libbb/lineedit.c
+++ b/libbb/lineedit.c
@@ -70,13 +70,20 @@
 #if ENABLE_UNICODE_SUPPORT
 # define BB_NUL ((wchar_t)0)
 # define CHAR_T wchar_t
-static bool BB_isspace(CHAR_T c) { return ((unsigned)c < 256 && isspace(c)); }
+static bool BB_isspace(CHAR_T c)
+{
+	return ((unsigned)c < 256 && isspace(c));
+}
 # if ENABLE_FEATURE_EDITING_VI
-static bool BB_isalnum_or_underscore(CHAR_T c) {
+static bool BB_isalnum_or_underscore(CHAR_T c)
+{
 	return ((unsigned)c < 256 && isalnum(c)) || c == '_';
 }
 # endif
-static bool BB_ispunct(CHAR_T c) { return ((unsigned)c < 256 && ispunct(c)); }
+static bool BB_ispunct(CHAR_T c)
+{
+	return ((unsigned)c < 256 && ispunct(c));
+}
 # undef isspace
 # undef isalnum
 # undef ispunct
diff --git a/modutils/lsmod.c b/modutils/lsmod.c
index 694205f..39dc8e6 100644
--- a/modutils/lsmod.c
+++ b/modutils/lsmod.c
@@ -66,7 +66,10 @@
 	}
 }
 #else
-static void check_tainted(void) { putchar('\n'); }
+static ALWAYS_INLINE void check_tainted(void)
+{
+	putchar('\n');
+}
 #endif
 
 int lsmod_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
diff --git a/networking/tc.c b/networking/tc.c
index 3e98083..2e1078d 100644
--- a/networking/tc.c
+++ b/networking/tc.c
@@ -124,7 +124,8 @@
 }
 
 /* Get a qdisc handle.  Return 0 on success, !0 otherwise.  */
-static int get_qdisc_handle(uint32_t *h, const char *str) {
+static int get_qdisc_handle(uint32_t *h, const char *str)
+{
 	uint32_t maj;
 	char *p;
 
@@ -143,7 +144,8 @@
 }
 
 /* Get class ID.  Return 0 on success, !0 otherwise.  */
-static int get_tc_classid(uint32_t *h, const char *str) {
+static int get_tc_classid(uint32_t *h, const char *str)
+{
 	uint32_t maj, min;
 	char *p;
 
diff --git a/networking/udhcp/dhcpd.c b/networking/udhcp/dhcpd.c
index c46e172..0642fc8 100644
--- a/networking/udhcp/dhcpd.c
+++ b/networking/udhcp/dhcpd.c
@@ -365,7 +365,8 @@
 	return 1;
 }
 
-static int FAST_FUNC read_optset(const char *line, void *arg) {
+static int FAST_FUNC read_optset(const char *line, void *arg)
+{
 	return udhcp_str2optset(line, arg,
 			dhcp_optflags, dhcp_option_strings,
 			/*dhcpv6:*/ 0
diff --git a/networking/wget.c b/networking/wget.c
index fa4d21a..b6f9d60 100644
--- a/networking/wget.c
+++ b/networking/wget.c
@@ -312,7 +312,7 @@
 	}
 }
 #else
-static ALWAYS_INLINE void progress_meter(int flag UNUSED_PARAM) { }
+static ALWAYS_INLINE void progress_meter(int flag UNUSED_PARAM) {}
 #endif
 
 
diff --git a/util-linux/mount.c b/util-linux/mount.c
index 526b413..e6bad7c 100644
--- a/util-linux/mount.c
+++ b/util-linux/mount.c
@@ -1194,7 +1194,10 @@
 	return 1;
 }
 #else
-static inline int daemonize(void) { return -ENOSYS; }
+static inline int daemonize(void)
+{
+	return -ENOSYS;
+}
 #endif
 
 /* TODO */
