Fix C/C++ compiler generated warnings

 * Remove unused functions: -Wno-unused-function
 * Fix logical operations that are missing parentheses:
   -Wno-logical-not-parentheses, -Wno-parentheses
 * Add missing braces in initializers: -Wno-missing-braces
 * Remove unused variables: -Wno-unused-variable
 * Fix printf()-like formatting issues: -Wno-format
 * Avoid using unitialized variables:
   -Wno-maybe-uninitialized, -Wno-uninitialized
 * Fix a bug inside bta_gattc_get_gatt_db_impl()
   when the processed GATT DB attribute type is unknown.
 * Fix warnings about missing field initializers:
   -Wno-missing-field-initializers
 * Re-implement macro COMPILE_ASSERT(COND) to fix a compilation warning:
   -Wno-non-literal-null-conversion
 * Fix sign mismatch comparison warnings:
   -Wno-sign-compare
 * Fix warnings related to enum conversion:
   -Wno-enum-conversion
 * Fix warnings related to incompatible pointer types:
   -Wno-incompatible-pointer-types
 * Fix warnings related to enum conversion:
   -Wno-enum-conversion

Bug: 26879229
Change-Id: I522931fe156aeab23ae841051a9e25ceab00b1c2
diff --git a/Android.mk b/Android.mk
index 5849e14..3b89e29 100644
--- a/Android.mk
+++ b/Android.mk
@@ -22,33 +22,25 @@
 #
 # Common C/C++ compiler flags.
 #
-# - gnu-variable-sized-type-not-at-end is needed for a variable-size header in
-#   a struct.
-# - constant-logical-operand is needed for code in l2c_utils.c that looks
-#   intentional.
+# -Wno-constant-logical-operand is needed for code in l2c_utils.c that is
+#  intentional.
+# -Wno-gnu-variable-sized-type-not-at-end is needed, because struct BT_HDR
+#  is defined as a variable-size header in a struct.
+# -Wno-typedef-redefinition is needed because of the way the struct typedef
+#  is done in osi/include header files. This issue can be obsoleted by
+#  switching to C11 or C++.
+# -Wno-unused-parameter is needed, because there are too many unused
+#  parameters in all the code.
 #
 bluetooth_CFLAGS += \
   -fvisibility=hidden \
   -Wall \
   -Wextra \
   -Werror \
-  -Wno-typedef-redefinition \
-  -Wno-gnu-variable-sized-type-not-at-end \
-  -Wno-unused-parameter \
-  -Wno-maybe-uninitialized \
-  -Wno-uninitialized \
-  -Wno-missing-field-initializers \
-  -Wno-unused-variable \
-  -Wno-non-literal-null-conversion \
-  -Wno-sign-compare \
-  -Wno-incompatible-pointer-types \
-  -Wno-unused-function \
-  -Wno-missing-braces \
-  -Wno-enum-conversion \
-  -Wno-logical-not-parentheses \
-  -Wno-parentheses \
   -Wno-constant-logical-operand \
-  -Wno-format \
+  -Wno-gnu-variable-sized-type-not-at-end \
+  -Wno-typedef-redefinition \
+  -Wno-unused-parameter \
   -UNDEBUG \
   -DLOG_NDEBUG=1