Remove unnecessary casts.

Also turn up strict-aliasing warnings to the maximum (and default!) level.

Change-Id: I97f1d2c180ce515719f8c92d54b8a6ae6a6942c4
diff --git a/build/Android.common.mk b/build/Android.common.mk
index f7e97a1..ac477a2 100644
--- a/build/Android.common.mk
+++ b/build/Android.common.mk
@@ -40,7 +40,7 @@
 	-Werror \
 	-Wextra \
 	-Wno-unused-parameter \
-	-Wstrict-aliasing=2 \
+	-Wstrict-aliasing=3 \
 	-fno-align-jumps \
 	-fstrict-aliasing
 
diff --git a/src/object.h b/src/object.h
index 9f87015..5977977 100644
--- a/src/object.h
+++ b/src/object.h
@@ -2032,11 +2032,11 @@
   static PrimitiveArray<T>* Alloc(size_t length);
 
   const T* GetData() const {
-    return reinterpret_cast<const T*>(&elements_);
+    return &elements_[0];
   }
 
   T* GetData() {
-    return reinterpret_cast<T*>(&elements_);
+    return &elements_[0];
   }
 
   T Get(int32_t i) const {