More -Wcast-error fixes
diff --git a/src/hb-font.cc b/src/hb-font.cc
index b9d7555..ec09c09 100644
--- a/src/hb-font.cc
+++ b/src/hb-font.cc
@@ -244,7 +244,7 @@
 #pragma GCC diagnostic push
 #pragma GCC diagnostic ignored "-Wcast-align"
       first_glyph = (hb_codepoint_t *) &StructAtOffset<char> (first_glyph, glyph_stride);
-      first_advance = &StructAtOffset<hb_position_t> (first_advance, advance_stride);
+      first_advance = (hb_position_t *) &StructAtOffset<char> (first_advance, advance_stride);
 #pragma GCC diagnostic pop
     }
     return;
@@ -258,7 +258,7 @@
     *first_advance = font->parent_scale_x_distance (*first_advance);
 #pragma GCC diagnostic push
 #pragma GCC diagnostic ignored "-Wcast-align"
-    first_advance = &StructAtOffset<hb_position_t> (first_advance, advance_stride);
+    first_advance = (hb_position_t *) &StructAtOffset<char> (first_advance, advance_stride);
 #pragma GCC diagnostic pop
   }
 }
@@ -282,7 +282,7 @@
 #pragma GCC diagnostic push
 #pragma GCC diagnostic ignored "-Wcast-align"
       first_glyph = (hb_codepoint_t *) &StructAtOffset<char> (first_glyph, glyph_stride);
-      first_advance = &StructAtOffset<hb_position_t> (first_advance, advance_stride);
+      first_advance = (hb_position_t *) &StructAtOffset<char> (first_advance, advance_stride);
 #pragma GCC diagnostic pop
     }
     return;
@@ -296,7 +296,7 @@
     *first_advance = font->parent_scale_y_distance (*first_advance);
 #pragma GCC diagnostic push
 #pragma GCC diagnostic ignored "-Wcast-align"
-    first_advance = &StructAtOffset<hb_position_t> (first_advance, advance_stride);
+    first_advance = (hb_position_t *) &StructAtOffset<char> (first_advance, advance_stride);
 #pragma GCC diagnostic pop
   }
 }
diff --git a/src/hb-ft.cc b/src/hb-ft.cc
index 728fa5e..653d437 100644
--- a/src/hb-ft.cc
+++ b/src/hb-ft.cc
@@ -298,7 +298,7 @@
 #pragma GCC diagnostic push
 #pragma GCC diagnostic ignored "-Wcast-align"
     first_glyph = (hb_codepoint_t *) &StructAtOffset<char> (first_glyph, glyph_stride);
-    first_advance = &StructAtOffset<hb_position_t> (first_advance, advance_stride);
+    first_advance = (hb_position_t *) &StructAtOffset<char> (first_advance, advance_stride);
 #pragma GCC diagnostic pop
   }
 }
diff --git a/src/hb-ot-font.cc b/src/hb-ot-font.cc
index 8ac1a2c..7084d55 100644
--- a/src/hb-ot-font.cc
+++ b/src/hb-ot-font.cc
@@ -115,7 +115,7 @@
 #pragma GCC diagnostic push
 #pragma GCC diagnostic ignored "-Wcast-align"
     first_glyph = (hb_codepoint_t *) &StructAtOffset<char> (first_glyph, glyph_stride);
-    first_advance = &StructAtOffset<hb_position_t> (first_advance, advance_stride);
+    first_advance = (hb_position_t *) &StructAtOffset<char> (first_advance, advance_stride);
 #pragma GCC diagnostic pop
   }
 }
@@ -138,7 +138,7 @@
 #pragma GCC diagnostic push
 #pragma GCC diagnostic ignored "-Wcast-align"
     first_glyph = (hb_codepoint_t *) &StructAtOffset<char> (first_glyph, glyph_stride);
-    first_advance = &StructAtOffset<hb_position_t> (first_advance, advance_stride);
+    first_advance = (hb_position_t *) &StructAtOffset<char> (first_advance, advance_stride);
 #pragma GCC diagnostic pop
   }
 }