diff -Naur graphite2-1.3.12.orig/include/graphite2/Log.h graphite2-1.3.12/include/graphite2/Log.h
--- graphite2-1.3.12.orig/include/graphite2/Log.h	2018-08-18 07:34:50.066444100 -0400
+++ graphite2-1.3.12/include/graphite2/Log.h	2018-08-18 08:53:43.617826300 -0400
@@ -56,7 +56,7 @@
   * @param face     the gr_face whose segments you want to log to the given file
   * @param log_path a utf8 encoded file name and path to log to.
   */
-GR2_API bool gr_start_logging(gr_face * face, const char *log_path);
+GR2_API bool gr_start_logging(GR_MAYBE_UNUSED gr_face * face, const char *log_path);
 
 
 /** Stop logging on the given face.  This will close the log file created by
@@ -64,7 +64,7 @@
   *
   * @param face the gr_face whose segments you want to stop logging
   */
-GR2_API void gr_stop_logging(gr_face * face);
+GR2_API void gr_stop_logging(GR_MAYBE_UNUSED gr_face * face);
 
 /** Start logging to a FILE object.
   * This function is deprecated as of 1.2.0, use the _face versions instead.
diff -Naur graphite2-1.3.12.orig/include/graphite2/Types.h graphite2-1.3.12/include/graphite2/Types.h
--- graphite2-1.3.12.orig/include/graphite2/Types.h	2018-08-18 07:34:50.066444100 -0400
+++ graphite2-1.3.12/include/graphite2/Types.h	2018-08-18 08:55:11.931762800 -0400
@@ -40,6 +40,34 @@
   gr_utf8 = 1/*sizeof(uint8)*/, gr_utf16 = 2/*sizeof(uint16)*/, gr_utf32 = 4/*sizeof(uint32)*/
 };
 
+#if defined(__GNUC__)  || defined(__clang__)
+#define GR_MAYBE_UNUSED __attribute__((unused))
+#else
+#define GR_MAYBE_UNUSED
+#endif
+
+#ifndef __has_cpp_attribute
+#  define __has_cpp_attribute(x) 0
+#endif
+
+#if defined(__clang__) && __cplusplus >= 201103L
+   /* clang's fallthrough annotations are only available starting in C++11. */
+    #define GR_FALLTHROUGH [[clang::fallthrough]]
+#elif defined(_MSC_VER)
+   /*
+    * MSVC's __fallthrough annotations are checked by /analyze (Code Analysis):
+    * https://msdn.microsoft.com/en-us/library/ms235402%28VS.80%29.aspx
+    */
+    #include <sal.h>
+    #define GR_FALLTHROUGH __fallthrough
+#else
+    #define GR_FALLTHROUGH /* fallthrough */
+#endif
+
+#ifdef _MSC_VER
+#pragma warning(disable: 4800)
+#pragma warning(disable: 4355)
+#endif
 
 // Define API function declspec/attributes and how each supported compiler or OS
 // allows us to specify them.
diff -Naur graphite2-1.3.12.orig/src/inc/Main.h graphite2-1.3.12/src/inc/Main.h
--- graphite2-1.3.12.orig/src/inc/Main.h	2018-08-18 07:34:50.144511100 -0400
+++ graphite2-1.3.12/src/inc/Main.h	2018-08-18 08:55:44.159893000 -0400
@@ -165,35 +165,3 @@
     void operator delete   (void *, void *) throw() {} \
     void operator delete[] (void * p)throw() { free(p); } \
     void operator delete[] (void *, void *) throw() {}
-
-#if defined(__GNUC__)  || defined(__clang__)
-#define GR_MAYBE_UNUSED __attribute__((unused))
-#else
-#define GR_MAYBE_UNUSED
-#endif
-
-#ifndef __has_cpp_attribute
-#  define __has_cpp_attribute(x) 0
-#endif
-
-#if __has_cpp_attribute(clang::fallthrough)
-#  define GR_FALLTHROUGH [[clang::fallthrough]]
-#elif __has_cpp_attribute(gnu::fallthrough)
-#  define GR_FALLTHROUGH [[gnu::fallthrough]]
-#elif defined(_MSC_VER)
-   /*
-    * MSVC's __fallthrough annotations are checked by /analyze (Code Analysis):
-    * https://msdn.microsoft.com/en-us/library/ms235402%28VS.80%29.aspx
-    */
-    #include <sal.h>
-    #define GR_FALLTHROUGH __fallthrough
-#elif __GNUC__ >= 7
-    #define GR_FALLTHROUGH __attribute__ ((fallthrough))
-#else
-    #define GR_FALLTHROUGH /* fallthrough */
-#endif
-
-#ifdef _MSC_VER
-#pragma warning(disable: 4800)
-#pragma warning(disable: 4355)
-#endif
