Fix strict aliasing

Change-Id: Ic0d575888cb0d9b8d2305129da767f9288312f76
dalvik/libdex: Change to -O2 if we're building with -O3

This is a workaround for an apparent gcc bug.
https://bugs.launchpad.net/linaro-android/+bug/948255

Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>
dalvik/libdex: Don't reduce optimization level to -O2

Don't reduce optimization level to -O2: It's sufficient to disable
function inlining

Change-Id: Ie6d9978cf0bf0e49cfa296c09c4eba913f22c303
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>
dalvik: Fix for broswer-crashing bug

This applies the fix proposed by Olivier Cozette in
https://code.google.com/p/android/issues/detail?id=37561
and fixes our bug:
https://bugs.launchpad.net/linaro-android/+bug/978060

Change-Id: I54336c83650c1628fd1bb689148bc1dd8843d7c6
Signed-off-by: Jon Medhurst <tixy@linaro.org>

Conflicts:
	vm/compiler/codegen/arm/CodegenDriver.cpp
dalvik: Fix aliasing violation

Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>
Dalvik: Better compatibility with different compilers

This fixes building with clang, and possibly future versions of gcc:
- Don't error out on unused functions generated by gen-mterp.py
  even when we're using -Werror
- Eliminate some dead code (Word/kWordSize definition) clang warns about
- Add a return statement to a switch path causing a possible code path
  with uninitialized variables (if the compiler doesn't know what
  dvmAbort() is)
- Initialize a variable

Change-Id: I9a3c0a1ad4dce10445e2251e491f18511413ca50
Signed-off-by: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>
Readded Word/kWordSize definition.

Change-Id: I5768906cd5ee7c77a257f6cb2b80f0e743a0b695