diff --git a/client/tarantar/indexate.c b/client/tarantar/indexate.c
index 0899cd8d66a8c46b9e73d2bc275c309ff9869f54..33ea08ad6420a3571ca26371042bb66beae57a16 100644
--- a/client/tarantar/indexate.c
+++ b/client/tarantar/indexate.c
@@ -359,7 +359,7 @@ xlog_process(struct ts_spaces *s, char *wal_dir, uint64_t file_lsn,
 static int
 waldir_processof(struct ts_spaces *s, struct tnt_dir *wal_dir, int i)
 {
-	int rc;
+	int rc = 0;
 	if (i < wal_dir->count) {
 		rc = xlog_process(s, wal_dir->path, wal_dir->files[i].lsn,
 		                  tss.last_snap_lsn, &tss.last_xlog_lsn);
diff --git a/src/box/index.cc b/src/box/index.cc
index 05c79c90892ee2d0adff88ccada47078826a484a..25c6c6cbefd7de715a43af10acbe0cb50a49c6f8 100644
--- a/src/box/index.cc
+++ b/src/box/index.cc
@@ -120,6 +120,7 @@ Index::factory(struct key_def *key_def)
 		return new BitsetIndex(key_def);
 	default:
 		assert(false);
+		return NULL; /* silent compiler warning. */
 	}
 }
 
diff --git a/src/box/tuple.cc b/src/box/tuple.cc
index f3471fd4ba5f24ef1105a8cadf5a4388b6a9aea0..c18e66b7ecfacb92adcd4ff580779b163d32451a 100644
--- a/src/box/tuple.cc
+++ b/src/box/tuple.cc
@@ -499,7 +499,7 @@ tuple_new(struct tuple_format *format, uint32_t field_count,
 		char *base64_buf = (char *) malloc(base64_buflen);
 		int len = base64_encode(end - tuple_len, tuple_len,
 					base64_buf, base64_buflen);
-		write(STDERR_FILENO, base64_buf, len);
+		(void) write(STDERR_FILENO, base64_buf, len);
 		free(base64_buf);
 		tnt_raise(IllegalParams, "tuple_new(): incorrect tuple format");
 	}
diff --git a/src/lua/init.cc b/src/lua/init.cc
index 03aa12b44ad1dbfc9dd40c5d9275a43c3e23e171..f7f71fdf633c24544fe3eda25c9a7f5f7d13eddd 100644
--- a/src/lua/init.cc
+++ b/src/lua/init.cc
@@ -467,7 +467,7 @@ tarantool_plugin_dir(struct lua_State *L, const char *dir)
 		if (dent->d_type != DT_REG)
 			continue;
 		char *path;
-		asprintf(&path, "%s/%s", dir, dent->d_name);
+		(void) asprintf(&path, "%s/%s", dir, dent->d_name);
 		if (!path) {
 			say_error("Can't allocate memory for %s plugin dir",
 				 dir);
diff --git a/src/salloc.cc b/src/salloc.cc
index 4a15de7392d72c27fe8b5a90de901e606c107122..d37e60aa0d538b185467d9dd18146e95f4fbf01f 100644
--- a/src/salloc.cc
+++ b/src/salloc.cc
@@ -340,6 +340,7 @@ sfree_delayed(void *ptr)
 		return;
 	struct slab_item *item = (struct slab_item *)ptr;
 	struct slab *slab = slab_header(item);
+	(void) slab;
 	assert(valid_item(slab, item));
 	SLIST_INSERT_HEAD(&free_delayed, item, next);
 	arena.delayed_free_count++;
diff --git a/third_party/lua-yaml/lyaml.c b/third_party/lua-yaml/lyaml.c
index 51b2c8d041981e48c76acc862a3071081bbf1c0a..04c80d62224f57e2de29ee952b85c75a85c7bad0 100644
--- a/third_party/lua-yaml/lyaml.c
+++ b/third_party/lua-yaml/lyaml.c
@@ -407,8 +407,9 @@ static int dump_node(struct lua_yaml_dumper *dumper);
   111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
   1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
 */
-static int is_utf8(const unsigned char *str, size_t len)
+static int is_utf8(const char *data, size_t len)
 {
+    const unsigned char *str = (const unsigned char *) data;
     size_t i = 0;
     size_t continuation_bytes = 0;