diff --git a/bench/ChecksumBench.cpp b/bench/ChecksumBench.cpp
index 4158d94..8226ddd 100644
--- a/bench/ChecksumBench.cpp
+++ b/bench/ChecksumBench.cpp
@@ -11,8 +11,7 @@
 #include "SkMD5.h"
 #include "SkRandom.h"
 #include "SkSHA1.h"
-
-template<typename T> inline void sk_ignore_unused(const T&) { }
+#include "SkTemplates.h"
 
 enum ChecksumType {
     kChecksum_ChecksumType,
@@ -57,7 +56,7 @@
             case kChecksum_ChecksumType: {
                 for (int i = 0; i < N; i++) {
                     volatile uint32_t result = SkChecksum::Compute(fData, sizeof(fData));
-                    sk_ignore_unused(result);
+                    sk_ignore_unused_variable(result);
                 }
             } break;
             case kMD5_ChecksumType: {
@@ -66,7 +65,6 @@
                     md5.update(reinterpret_cast<uint8_t*>(fData), sizeof(fData));
                     SkMD5::Digest digest;
                     md5.finish(digest);
-                    sk_ignore_unused(digest);
                 }
             } break;
             case kSHA1_ChecksumType: {
@@ -75,19 +73,18 @@
                     sha1.update(reinterpret_cast<uint8_t*>(fData), sizeof(fData));
                     SkSHA1::Digest digest;
                     sha1.finish(digest);
-                    sk_ignore_unused(digest);
                 }
             } break;
             case kCityHash32: {
                 for (int i = 0; i < N; i++) {
                     volatile uint32_t result = SkCityHash::Compute32(reinterpret_cast<char*>(fData), sizeof(fData));
-                    sk_ignore_unused(result);
+                    sk_ignore_unused_variable(result);
                 }
             } break;
             case kCityHash64: {
                 for (int i = 0; i < N; i++) {
                     volatile uint64_t result = SkCityHash::Compute64(reinterpret_cast<char*>(fData), sizeof(fData));
-                    sk_ignore_unused(result);
+                    sk_ignore_unused_variable(result);
                 }
             } break;
         }
diff --git a/include/core/SkTemplates.h b/include/core/SkTemplates.h
index 42e9943..c4ba0e6 100644
--- a/include/core/SkTemplates.h
+++ b/include/core/SkTemplates.h
@@ -20,6 +20,12 @@
 */
 
 /**
+ *  Marks a local variable as known to be unused (to avoid warnings).
+ *  Note that this does *not* prevent the local variable from being optimized away.
+ */
+template<typename T> inline void sk_ignore_unused_variable(const T&) { }
+
+/**
  *  SkTIsConst<T>::value is true if the type T is const.
  *  The type T is constrained not to be an array or reference type.
  */
