diff --git a/include/proto/backend.h b/include/proto/backend.h
index 54ae057..e98df2b 100644
--- a/include/proto/backend.h
+++ b/include/proto/backend.h
@@ -58,7 +58,7 @@
 }
 
 /* set the time of last session on the backend */
-static void inline be_set_sess_last(struct proxy *be)
+static inline void be_set_sess_last(struct proxy *be)
 {
 	be->be_counters.last_sess = now.tv_sec;
 }
diff --git a/include/proto/proxy.h b/include/proto/proxy.h
index b509dff..172c3d5 100644
--- a/include/proto/proxy.h
+++ b/include/proto/proxy.h
@@ -119,7 +119,7 @@
 }
 
 /* increase the number of cumulated connections received on the designated frontend */
-static void inline proxy_inc_fe_conn_ctr(struct listener *l, struct proxy *fe)
+static inline void proxy_inc_fe_conn_ctr(struct listener *l, struct proxy *fe)
 {
 	_HA_ATOMIC_ADD(&fe->fe_counters.cum_conn, 1);
 	if (l->counters)
@@ -129,7 +129,7 @@
 }
 
 /* increase the number of cumulated connections accepted by the designated frontend */
-static void inline proxy_inc_fe_sess_ctr(struct listener *l, struct proxy *fe)
+static inline void proxy_inc_fe_sess_ctr(struct listener *l, struct proxy *fe)
 {
 
 	_HA_ATOMIC_ADD(&fe->fe_counters.cum_sess, 1);
@@ -140,7 +140,7 @@
 }
 
 /* increase the number of cumulated connections on the designated backend */
-static void inline proxy_inc_be_ctr(struct proxy *be)
+static inline void proxy_inc_be_ctr(struct proxy *be)
 {
 	_HA_ATOMIC_ADD(&be->be_counters.cum_conn, 1);
 	HA_ATOMIC_UPDATE_MAX(&be->be_counters.sps_max,
@@ -148,7 +148,7 @@
 }
 
 /* increase the number of cumulated requests on the designated frontend */
-static void inline proxy_inc_fe_req_ctr(struct proxy *fe)
+static inline void proxy_inc_fe_req_ctr(struct proxy *fe)
 {
 	_HA_ATOMIC_ADD(&fe->fe_counters.p.http.cum_req, 1);
 	HA_ATOMIC_UPDATE_MAX(&fe->fe_counters.p.http.rps_max,
diff --git a/include/proto/server.h b/include/proto/server.h
index cc6a699..77a5312 100644
--- a/include/proto/server.h
+++ b/include/proto/server.h
@@ -69,7 +69,7 @@
 struct task *srv_cleanup_toremove_connections(struct task *task, void *context, unsigned short state);
 
 /* increase the number of cumulated connections on the designated server */
-static void inline srv_inc_sess_ctr(struct server *s)
+static inline void srv_inc_sess_ctr(struct server *s)
 {
 	_HA_ATOMIC_ADD(&s->counters.cum_sess, 1);
 	HA_ATOMIC_UPDATE_MAX(&s->counters.sps_max,
@@ -77,7 +77,7 @@
 }
 
 /* set the time of last session on the designated server */
-static void inline srv_set_sess_last(struct server *s)
+static inline void srv_set_sess_last(struct server *s)
 {
 	s->counters.last_sess = now.tv_sec;
 }
diff --git a/include/proto/stream.h b/include/proto/stream.h
index 71ca849..d99079f 100644
--- a/include/proto/stream.h
+++ b/include/proto/stream.h
@@ -202,7 +202,7 @@
 }
 
 /* Increase the number of cumulated HTTP requests in the tracked counters */
-static void inline stream_inc_http_req_ctr(struct stream *s)
+static inline void stream_inc_http_req_ctr(struct stream *s)
 {
 	struct stksess *ts;
 	void *ptr;
@@ -240,7 +240,7 @@
 /* Increase the number of cumulated HTTP requests in the backend's tracked
  * counters. We don't look up the session since it cannot happen in the bakcend.
  */
-static void inline stream_inc_be_http_req_ctr(struct stream *s)
+static inline void stream_inc_be_http_req_ctr(struct stream *s)
 {
 	struct stksess *ts;
 	void *ptr;
@@ -280,7 +280,7 @@
  * Note that even 404 are interesting because they're generally caused by
  * vulnerability scans.
  */
-static void inline stream_inc_http_err_ctr(struct stream *s)
+static inline void stream_inc_http_err_ctr(struct stream *s)
 {
 	struct stksess *ts;
 	void *ptr;
@@ -315,20 +315,20 @@
 	}
 }
 
-static void inline __stream_add_srv_conn(struct stream *sess, struct server *srv)
+static inline void __stream_add_srv_conn(struct stream *sess, struct server *srv)
 {
 	sess->srv_conn = srv;
 	LIST_ADD(&srv->actconns, &sess->by_srv);
 }
 
-static void inline stream_add_srv_conn(struct stream *sess, struct server *srv)
+static inline void stream_add_srv_conn(struct stream *sess, struct server *srv)
 {
 	HA_SPIN_LOCK(SERVER_LOCK, &srv->lock);
 	__stream_add_srv_conn(sess, srv);
 	HA_SPIN_UNLOCK(SERVER_LOCK, &srv->lock);
 }
 
-static void inline stream_del_srv_conn(struct stream *sess)
+static inline void stream_del_srv_conn(struct stream *sess)
 {
 	struct server *srv = sess->srv_conn;
 
@@ -341,7 +341,7 @@
 	HA_SPIN_UNLOCK(SERVER_LOCK, &srv->lock);
 }
 
-static void inline stream_init_srv_conn(struct stream *sess)
+static inline void stream_init_srv_conn(struct stream *sess)
 {
 	sess->srv_conn = NULL;
 	LIST_INIT(&sess->by_srv);
