diff --git a/rsov/compiler/Android.mk b/rsov/compiler/Android.mk
index 45d42e7..b18945c 100644
--- a/rsov/compiler/Android.mk
+++ b/rsov/compiler/Android.mk
@@ -100,6 +100,7 @@
 LOCAL_MODULE := Builtin_test
 LOCAL_MULTILIB := first
 LOCAL_MODULE_TAGS := tests
+LOCAL_CFLAGS := -Wall -Werror
 
 LOCAL_MODULE_CLASS := NATIVE_TESTS
 
diff --git a/rsov/compiler/spirit/Android.mk b/rsov/compiler/spirit/Android.mk
index ad1c647..29985e7 100644
--- a/rsov/compiler/spirit/Android.mk
+++ b/rsov/compiler/spirit/Android.mk
@@ -36,6 +36,8 @@
 SPIRV_CORE_GRAMMAR := $(SPIRV_HEADERS_PATH)/include/spirv/1.1/spirv.core.grammar.json
 GENERATOR := $(LOCAL_PATH)/generate.py
 
+LOCAL_CFLAGS := -Wall -Werror
+
 # Don't build for unbundled branches
 ifeq (,$(TARGET_BUILD_APPS))
 
@@ -69,6 +71,8 @@
 
 LOCAL_GENERATED_SOURCES := $(FULL_GEN)
 
+LOCAL_CFLAGS := -Wall -Werror
+
 LOCAL_C_INCLUDES += $(PATH_TO_GENERATED)
 
 LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH) $(PATH_TO_GENERATED)
@@ -107,6 +111,8 @@
 
 LOCAL_C_INCLUDES += $(PATH_TO_GENERATED)
 
+LOCAL_CFLAGS := -Wall -Werror
+
 include $(BUILD_HOST_NATIVE_TEST)
 
 #=====================================================================
@@ -145,6 +151,8 @@
 
 LOCAL_GENERATED_SOURCES := $(FULL_GEN)
 
+LOCAL_CFLAGS := -Wall -Werror
+
 LOCAL_C_INCLUDES += $(PATH_TO_GENERATED)
 
 include $(BUILD_HOST_NATIVE_TEST)
@@ -169,6 +177,7 @@
 LOCAL_MODULE_TAGS := tests
 LOCAL_MODULE_CLASS := NATIVE_TESTS
 LOCAL_IS_HOST_MODULE := true
+LOCAL_CFLAGS := -Wall -Werror
 
 include $(BUILD_HOST_NATIVE_TEST)
 
@@ -192,6 +201,7 @@
 LOCAL_MODULE_TAGS := tests
 LOCAL_MODULE_CLASS := NATIVE_TESTS
 LOCAL_IS_HOST_MODULE := true
+LOCAL_CFLAGS := -Wall -Werror
 
 include $(BUILD_HOST_NATIVE_TEST)
 
@@ -230,7 +240,7 @@
 
 LOCAL_C_INCLUDES += $(PATH_TO_GENERATED)
 
-LOCAL_CFLAGS := -Wno-error=non-virtual-dtor
+LOCAL_CFLAGS := -Wall -Werror -Wno-error=non-virtual-dtor
 
 LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH) $(PATH_TO_GENERATED)
 
diff --git a/rsov/compiler/spirit/builder_test.cpp b/rsov/compiler/spirit/builder_test.cpp
index bb935b6..4f21310 100644
--- a/rsov/compiler/spirit/builder_test.cpp
+++ b/rsov/compiler/spirit/builder_test.cpp
@@ -79,13 +79,12 @@
 
   auto UIntTy = m->getUnsignedIntType(32);
   auto V3UIntTy = m->getVectorType(UIntTy, 3);
-  auto V3UIntPtrTy = m->getPointerType(StorageClass::Input, V3UIntTy);
 
   auto InvocationID = m->getInvocationId();
 
-  auto ConstFour = m->getConstant(UIntTy, 4);
   auto ConstOne = m->getConstant(UIntTy, 1);
 #if 0
+  auto V3UIntPtrTy = m->getPointerType(StorageClass::Input, V3UIntTy);
   auto GSize = b.MakeVariable(V3UIntPtrTy, StorageClass::Input);
   GSize->decorate(Decoration::BuiltIn)->addExtraOperand(BuiltIn::WorkgroupSize);
   m->addVariable(GSize);
@@ -105,7 +104,6 @@
 
   Blk->addInstruction(b.MakeLabel());
 
-  auto IntTy = m->getIntType(32);
   auto ConstZero = m->getConstant(UIntTy, 0);
   auto UIntPtrTy = m->getPointerType(StorageClass::Input, UIntTy);
 
diff --git a/rsov/compiler/spirit/module.cpp b/rsov/compiler/spirit/module.cpp
index e73ded5..d480912 100644
--- a/rsov/compiler/spirit/module.cpp
+++ b/rsov/compiler/spirit/module.cpp
@@ -446,6 +446,7 @@
       mExecutionModel(execModel) {
   mName = strndup(name, strlen(name));
   mEntryPointInst = mBuilder->MakeEntryPoint(execModel, mFunction, mName);
+  (void)mExecutionModel; // suppress unused private field warning
 }
 
 bool EntryPointDefinition::DeserializeInternal(InputWordStream &IS) {
diff --git a/rsov/compiler/spirit/module_test.cpp b/rsov/compiler/spirit/module_test.cpp
index ed183cf..17d3134 100644
--- a/rsov/compiler/spirit/module_test.cpp
+++ b/rsov/compiler/spirit/module_test.cpp
@@ -171,7 +171,6 @@
   auto kernel = m->getFunctionDefinitionFromInstruction(i);
   ASSERT_NE(nullptr, kernel);
 
-  auto pt = static_cast<FunctionInst *>(m->lookupByName("greyscale(vf4;"));
   EXPECT_NE(nullptr, kernel->getParameter(0));
   EXPECT_NE(nullptr, kernel->getReturnType());
 
diff --git a/tests/java_api/HelloComputeNDK/libhellocomputendk/Android.mk b/tests/java_api/HelloComputeNDK/libhellocomputendk/Android.mk
index 1b6c349..3723964 100644
--- a/tests/java_api/HelloComputeNDK/libhellocomputendk/Android.mk
+++ b/tests/java_api/HelloComputeNDK/libhellocomputendk/Android.mk
@@ -25,7 +25,7 @@
 
 LOCAL_C_INCLUDES := $(JNI_H_INCLUDE)
 
-LOCAL_CFLAGS := -std=c++11
+LOCAL_CFLAGS := -std=c++11 -Wall -Werror
 LOCAL_LDFLAGS := -Wl,-Bsymbolic
 LOCAL_SHARED_LIBRARIES := libdl liblog libjnigraphics
 LOCAL_STATIC_LIBRARIES := libRScpp_static
diff --git a/tests/java_api/RsBLAS_Benchmark/libsgemm/Android.mk b/tests/java_api/RsBLAS_Benchmark/libsgemm/Android.mk
index b644cd2..6c86873 100644
--- a/tests/java_api/RsBLAS_Benchmark/libsgemm/Android.mk
+++ b/tests/java_api/RsBLAS_Benchmark/libsgemm/Android.mk
@@ -23,6 +23,7 @@
 LOCAL_SRC_FILES := test_data.cpp
 LOCAL_SDK_VERSION := current
 
+LOCAL_CFLAGS := -Wall -Werror
 LOCAL_C_INCLUDES := $(JNI_H_INCLUDE)
 
 include $(BUILD_SHARED_LIBRARY)
