diff --git a/install.cpp b/install.cpp
index 6c8d827..10a90a0 100644
--- a/install.cpp
+++ b/install.cpp
@@ -54,8 +54,8 @@
 static const float DEFAULT_IMAGE_PROGRESS_FRACTION = 0.1;
 
 // This function parses and returns the build.version.incremental
-static int parse_build_number(std::string str) {
-    size_t pos = str.find("=");
+static int parse_build_number(const std::string& str) {
+    size_t pos = str.find('=');
     if (pos != std::string::npos) {
         std::string num_string = android::base::Trim(str.substr(pos+1));
         int build_number;
diff --git a/tests/component/applypatch_test.cpp b/tests/component/applypatch_test.cpp
index b44ddd1..2f7cb02 100644
--- a/tests/component/applypatch_test.cpp
+++ b/tests/component/applypatch_test.cpp
@@ -65,7 +65,7 @@
     return c1 == c2;
 }
 
-static std::string from_testdata_base(const std::string fname) {
+static std::string from_testdata_base(const std::string& fname) {
     return android::base::StringPrintf("%s%s%s/%s",
             &DATA_PATH[0],
             &NATIVE_TEST_PATH[0],
diff --git a/wear_touch.cpp b/wear_touch.cpp
index f22d40b..51a1d31 100644
--- a/wear_touch.cpp
+++ b/wear_touch.cpp
@@ -122,7 +122,7 @@
     return NULL;
 }
 
-#define test_bit(bit, array)    (array[bit/8] & (1<<(bit%8)))
+#define test_bit(bit, array)    ((array)[(bit)/8] & (1<<((bit)%8)))
 
 int WearSwipeDetector::openDevice(const char *device) {
     int fd = open(device, O_RDONLY);
