Fix implicit string cast to boolean warning (treated as error)

Change-Id: I94a2fd3a900fb1e2c625eaa76dcce8fa785360cd
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/28850
Presubmit-Ready: Nicolas Capens <nicolascapens@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Tested-by: Nicolas Capens <nicolascapens@google.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 48e9d49..a922c4a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -226,6 +226,7 @@
     if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND
        CLANG_VERSION_STRING VERSION_GREATER_EQUAL 5)
         set_cpp_flag("-Werror=unused-lambda-capture")
+        set_cpp_flag("-Werror=string-conversion")
     endif()
 
     # Remove xor, and, or and friends from the list of keywords, they are used
diff --git a/src/Reactor/SubzeroReactor.cpp b/src/Reactor/SubzeroReactor.cpp
index d0fa433..27604a8 100644
--- a/src/Reactor/SubzeroReactor.cpp
+++ b/src/Reactor/SubzeroReactor.cpp
@@ -3374,7 +3374,7 @@
 	#ifdef UNIMPLEMENTED
 	#undef UNIMPLEMENTED
 	#endif
-	#define UNIMPLEMENTED(msg) assert(!msg)
+	#define UNIMPLEMENTED(msg) assert(((void)(msg), false))
 
 	RValue<Float4> Sin(RValue<Float4> x) { UNIMPLEMENTED("Subzero Sin()"); return Float4(0); }
 	RValue<Float4> Cos(RValue<Float4> x) { UNIMPLEMENTED("Subzero Cos()"); return Float4(0); }