diff --git a/configure.ac b/configure.ac index f2cec23fe..a3b716ef4 100644 --- a/configure.ac +++ b/configure.ac @@ -233,8 +233,8 @@ AC_PROG_LIBTOOL # -Wall CC, CXX # -PROSPECTIVE_CFLAGS="-Wall -Wextra -Wshadow -Wundef -Werror -Wno-error=undef -std=c99 -pedantic-errors" -PROSPECTIVE_CXXFLAGS="-Wall -Wextra -Wshadow -Wundef -Werror -Wno-error=undef -std=gnu++98 -Wno-c++14-compat -fno-exceptions" +PROSPECTIVE_CFLAGS="-Wall -Wextra -Wshadow -Wundef -Wcast-align -Werror -Wno-error=undef -std=c99 -pedantic-errors" +PROSPECTIVE_CXXFLAGS="-Wall -Wextra -Wshadow -Wundef -Wcast-align -Werror -Wno-error=undef -std=gnu++98 -Wno-c++14-compat -fno-exceptions" AC_CACHE_CHECK([whether $CC is Clang], [nl_cv_clang], diff --git a/examples/platforms/cc1352/Makefile.am b/examples/platforms/cc1352/Makefile.am index 1ac7eb721..b490b23fd 100644 --- a/examples/platforms/cc1352/Makefile.am +++ b/examples/platforms/cc1352/Makefile.am @@ -28,6 +28,10 @@ include $(abs_top_nlbuild_autotools_dir)/automake/pre.am +# Do not enable -Wcast-align for this platform +override CFLAGS := $(filter-out -Wcast-align,$(CFLAGS)) +override CXXFLAGS := $(filter-out -Wcast-align,$(CXXFLAGS)) + lib_LIBRARIES = libopenthread-cc1352.a libopenthread_cc1352_a_CPPFLAGS = \ diff --git a/examples/platforms/cc2538/Makefile.am b/examples/platforms/cc2538/Makefile.am index 0ab2cd194..fb802f211 100644 --- a/examples/platforms/cc2538/Makefile.am +++ b/examples/platforms/cc2538/Makefile.am @@ -28,6 +28,10 @@ include $(abs_top_nlbuild_autotools_dir)/automake/pre.am +# Do not enable -Wcast-align for this platform +override CFLAGS := $(filter-out -Wcast-align,$(CFLAGS)) +override CXXFLAGS := $(filter-out -Wcast-align,$(CXXFLAGS)) + lib_LIBRARIES = libopenthread-cc2538.a libopenthread_cc2538_a_CPPFLAGS = \ diff --git a/examples/platforms/cc2650/Makefile.am b/examples/platforms/cc2650/Makefile.am index 942c7ab8a..db1e8b61e 100644 --- a/examples/platforms/cc2650/Makefile.am +++ b/examples/platforms/cc2650/Makefile.am @@ -28,6 +28,10 @@ include $(abs_top_nlbuild_autotools_dir)/automake/pre.am +# Do not enable -Wcast-align for this platform +override CFLAGS := $(filter-out -Wcast-align,$(CFLAGS)) +override CXXFLAGS := $(filter-out -Wcast-align,$(CXXFLAGS)) + lib_LIBRARIES = libopenthread-cc2650.a libopenthread_cc2650_a_CPPFLAGS = \ diff --git a/examples/platforms/cc2652/Makefile.am b/examples/platforms/cc2652/Makefile.am index da0da80ac..03e2720f1 100644 --- a/examples/platforms/cc2652/Makefile.am +++ b/examples/platforms/cc2652/Makefile.am @@ -28,6 +28,10 @@ include $(abs_top_nlbuild_autotools_dir)/automake/pre.am +# Do not enable -Wcast-align for this platform +override CFLAGS := $(filter-out -Wcast-align,$(CFLAGS)) +override CXXFLAGS := $(filter-out -Wcast-align,$(CXXFLAGS)) + lib_LIBRARIES = libopenthread-cc2652.a libopenthread_cc2652_a_CPPFLAGS = \ diff --git a/examples/platforms/gp712/Makefile.am b/examples/platforms/gp712/Makefile.am index ea6ae722a..9009d4686 100644 --- a/examples/platforms/gp712/Makefile.am +++ b/examples/platforms/gp712/Makefile.am @@ -28,6 +28,10 @@ include $(abs_top_nlbuild_autotools_dir)/automake/pre.am +# Do not enable -Wcast-align for this platform +override CFLAGS := $(filter-out -Wcast-align,$(CFLAGS)) +override CXXFLAGS := $(filter-out -Wcast-align,$(CXXFLAGS)) + lib_LIBRARIES = libopenthread-gp712.a libopenthread_gp712_a_CPPFLAGS = \ diff --git a/examples/platforms/jn5189/Makefile.am b/examples/platforms/jn5189/Makefile.am index 5b472c303..8b408e6cc 100755 --- a/examples/platforms/jn5189/Makefile.am +++ b/examples/platforms/jn5189/Makefile.am @@ -34,13 +34,17 @@ lib_LIBRARIES $(NULL) # Do not enable -pedantic-errors for jn5189 driver library -override CFLAGS := $(filter-out -pedantic-errors,$(CFLAGS)) -override CXXFLAGS := $(filter-out -pedantic-errors,$(CXXFLAGS)) +override CFLAGS := $(filter-out -pedantic-errors,$(CFLAGS)) +override CXXFLAGS := $(filter-out -pedantic-errors,$(CXXFLAGS)) # Do not enable -Wundef for jn5189 driver library override CFLAGS := $(filter-out -Wundef,$(CFLAGS)) override CXXFLAGS := $(filter-out -Wundef,$(CXXFLAGS)) +# Do not enable -Wcast-align for this platform +override CFLAGS := $(filter-out -Wcast-align,$(CFLAGS)) +override CXXFLAGS := $(filter-out -Wcast-align,$(CXXFLAGS)) + LIB_FLAGS = \ -DCPU_JN518X \ -DCPU_JN518X_REV=2 \ diff --git a/examples/platforms/kw41z/Makefile.am b/examples/platforms/kw41z/Makefile.am index 87ee30b9e..3522d2b81 100644 --- a/examples/platforms/kw41z/Makefile.am +++ b/examples/platforms/kw41z/Makefile.am @@ -34,6 +34,10 @@ lib_LIBRARIES = libopenthread-kw41z.a override CFLAGS := $(filter-out -Wundef,$(CFLAGS)) override CXXFLAGS := $(filter-out -Wundef,$(CXXFLAGS)) +# Do not enable -Wcast-align for this platform +override CFLAGS := $(filter-out -Wcast-align,$(CFLAGS)) +override CXXFLAGS := $(filter-out -Wcast-align,$(CXXFLAGS)) + libopenthread_kw41z_a_CPPFLAGS = \ -DCPU_MKW41Z512VHT4 \ -I$(top_srcdir)/include \ diff --git a/examples/platforms/nrf528xx/nrf52811/Makefile.am b/examples/platforms/nrf528xx/nrf52811/Makefile.am index d49167014..386e1528b 100644 --- a/examples/platforms/nrf528xx/nrf52811/Makefile.am +++ b/examples/platforms/nrf528xx/nrf52811/Makefile.am @@ -42,6 +42,10 @@ override CXXFLAGS := $(filter-out -pedantic-e override CFLAGS := $(filter-out -Wundef,$(CFLAGS)) override CXXFLAGS := $(filter-out -Wundef,$(CXXFLAGS)) +# Do not enable -Wcast-align for nRF52811 driver library +override CFLAGS := $(filter-out -Wcast-align,$(CFLAGS)) +override CXXFLAGS := $(filter-out -Wcast-align,$(CXXFLAGS)) + COMMONCPPFLAGS = \ -DCONFIG_GPIO_AS_PINRESET \ -DNRF52811_XXAA \ diff --git a/examples/platforms/nrf528xx/nrf52833/Makefile.am b/examples/platforms/nrf528xx/nrf52833/Makefile.am index 27a20ae85..eb59eb5a7 100644 --- a/examples/platforms/nrf528xx/nrf52833/Makefile.am +++ b/examples/platforms/nrf528xx/nrf52833/Makefile.am @@ -43,6 +43,10 @@ override CXXFLAGS := $(filter-out -pedantic-e override CFLAGS := $(filter-out -Wundef,$(CFLAGS)) override CXXFLAGS := $(filter-out -Wundef,$(CXXFLAGS)) +# Do not enable -Wcast-align for nRF52833 driver library +override CFLAGS := $(filter-out -Wcast-align,$(CFLAGS)) +override CXXFLAGS := $(filter-out -Wcast-align,$(CXXFLAGS)) + COMMONCPPFLAGS = \ -DCONFIG_GPIO_AS_PINRESET \ -DNRF52833_XXAA \ diff --git a/examples/platforms/nrf528xx/nrf52840/Makefile.am b/examples/platforms/nrf528xx/nrf52840/Makefile.am index ba6323700..6062fa488 100644 --- a/examples/platforms/nrf528xx/nrf52840/Makefile.am +++ b/examples/platforms/nrf528xx/nrf52840/Makefile.am @@ -43,6 +43,10 @@ override CXXFLAGS := $(filter-out -pedantic-e override CFLAGS := $(filter-out -Wundef,$(CFLAGS)) override CXXFLAGS := $(filter-out -Wundef,$(CXXFLAGS)) +# Do not enable -Wcast-align for nRF52840 driver library +override CFLAGS := $(filter-out -Wcast-align,$(CFLAGS)) +override CXXFLAGS := $(filter-out -Wcast-align,$(CXXFLAGS)) + COMMONCPPFLAGS = \ -DCONFIG_GPIO_AS_PINRESET \ -DNRF52840_XXAA \ diff --git a/examples/platforms/qpg6095/Makefile.am b/examples/platforms/qpg6095/Makefile.am index 3b24ccafa..b9122d43b 100644 --- a/examples/platforms/qpg6095/Makefile.am +++ b/examples/platforms/qpg6095/Makefile.am @@ -28,6 +28,10 @@ include $(abs_top_nlbuild_autotools_dir)/automake/pre.am +# Do not enable -Wcast-align for this platform +override CFLAGS := $(filter-out -Wcast-align,$(CFLAGS)) +override CXXFLAGS := $(filter-out -Wcast-align,$(CXXFLAGS)) + lib_LIBRARIES = libopenthread-qpg6095.a libopenthread_qpg6095_a_CPPFLAGS = \ diff --git a/examples/platforms/samr21/Makefile.am b/examples/platforms/samr21/Makefile.am index 30991abdb..f7763c225 100644 --- a/examples/platforms/samr21/Makefile.am +++ b/examples/platforms/samr21/Makefile.am @@ -37,6 +37,10 @@ override CXXFLAGS := $(filter-out -pedantic-errors,$( override CFLAGS := $(filter-out -Wundef,$(CFLAGS)) override CXXFLAGS := $(filter-out -Wundef,$(CXXFLAGS)) +# Do not enable -Wcast-align for this platform +override CFLAGS := $(filter-out -Wcast-align,$(CFLAGS)) +override CXXFLAGS := $(filter-out -Wcast-align,$(CXXFLAGS)) + libopenthread_samr21_a_CPPFLAGS = \ -D ARM_MATH_CM0PLUS=true \ -D PHY_AT86RF233 \ diff --git a/examples/platforms/utils/settings_ram.c b/examples/platforms/utils/settings_ram.c index 4ac9e2cd3..bd20c001c 100644 --- a/examples/platforms/utils/settings_ram.c +++ b/examples/platforms/utils/settings_ram.c @@ -49,11 +49,12 @@ static uint8_t sSettingsBuf[SETTINGS_BUFFER_SIZE]; static uint16_t sSettingsBufLength; +OT_TOOL_PACKED_BEGIN struct settingsBlock { uint16_t key; uint16_t length; -}; +} OT_TOOL_PACKED_END; // settings API void otPlatSettingsInit(otInstance *aInstance) diff --git a/src/core/utils/heap.hpp b/src/core/utils/heap.hpp index 41f8edb83..13d58ada1 100644 --- a/src/core/utils/heap.hpp +++ b/src/core/utils/heap.hpp @@ -93,7 +93,8 @@ public: */ uint16_t GetNext(void) const { - return *reinterpret_cast(reinterpret_cast(this) + sizeof(mSize) + mSize); + return *reinterpret_cast( + reinterpret_cast(reinterpret_cast(this) + sizeof(mSize) + mSize)); } /** @@ -106,7 +107,8 @@ public: */ void SetNext(uint16_t aNext) { - *reinterpret_cast(reinterpret_cast(this) + sizeof(mSize) + mSize) = aNext; + *reinterpret_cast( + reinterpret_cast(reinterpret_cast(this) + sizeof(mSize) + mSize)) = aNext; } /** diff --git a/third_party/NordicSemiconductor/Makefile.am b/third_party/NordicSemiconductor/Makefile.am index 46e82b0f5..b657ca174 100644 --- a/third_party/NordicSemiconductor/Makefile.am +++ b/third_party/NordicSemiconductor/Makefile.am @@ -80,6 +80,10 @@ override CXXFLAGS := $(filter-out -pedantic-errors,$(CXXFLAGS)) override CFLAGS := $(filter-out -Wundef,$(CFLAGS)) override CXXFLAGS := $(filter-out -Wundef,$(CXXFLAGS)) +# Do not enable -Wcast-align for Nordic Semiconductor driver library +override CFLAGS := $(filter-out -Wcast-align,$(CFLAGS)) +override CXXFLAGS := $(filter-out -Wcast-align,$(CXXFLAGS)) + COMMONCPPFLAGS = \ -DCONFIG_GPIO_AS_PINRESET \ -DENABLE_FEM=1 \ diff --git a/third_party/jlink/Makefile.am b/third_party/jlink/Makefile.am index bdf2b048d..ac4f36d82 100644 --- a/third_party/jlink/Makefile.am +++ b/third_party/jlink/Makefile.am @@ -32,6 +32,10 @@ include $(abs_top_nlbuild_autotools_dir)/automake/pre.am override CFLAGS := $(filter-out -Wundef,$(CFLAGS)) override CXXFLAGS := $(filter-out -Wundef,$(CXXFLAGS)) +# Do not enable -Wcast-align for jlink library +override CFLAGS := $(filter-out -Wcast-align,$(CFLAGS)) +override CXXFLAGS := $(filter-out -Wcast-align,$(CXXFLAGS)) + lib_LIBRARIES = libjlinkrtt.a libjlinkrtt_a_CPPFLAGS = \ diff --git a/third_party/mbedtls/Makefile.am b/third_party/mbedtls/Makefile.am index 81b337a9b..0a84a1507 100644 --- a/third_party/mbedtls/Makefile.am +++ b/third_party/mbedtls/Makefile.am @@ -31,6 +31,10 @@ override CXXFLAGS := $(filter-out -Wconversion,$(CXXF override CFLAGS := $(filter-out -pedantic-errors,$(CFLAGS)) override CXXFLAGS := $(filter-out -pedantic-errors,$(CXXFLAGS)) +# Do not enable -Wcast-align for mbedtls +override CFLAGS := $(filter-out -Wcast-align,$(CFLAGS)) +override CXXFLAGS := $(filter-out -Wcast-align,$(CXXFLAGS)) + MBEDTLS_SRCDIR = $(top_srcdir)/third_party/mbedtls/repo libmbedcrypto_a_CPPFLAGS = \ diff --git a/third_party/silabs/Makefile.am b/third_party/silabs/Makefile.am index caf4aaac4..7d1e58daf 100644 --- a/third_party/silabs/Makefile.am +++ b/third_party/silabs/Makefile.am @@ -62,6 +62,10 @@ override CXXFLAGS := $(filter-out -Wshadow,$(CXXFLAGS)) override CFLAGS := $(filter-out -Wundef,$(CFLAGS)) override CXXFLAGS := $(filter-out -Wundef,$(CXXFLAGS)) +# Do not enable -Wcast-align for Silicon Labs SDK sources +override CFLAGS := $(filter-out -Wcast-align,$(CFLAGS)) +override CXXFLAGS := $(filter-out -Wcast-align,$(CXXFLAGS)) + EFR32_BOARD_DIR = $(shell echo $(BOARD) | tr A-Z a-z) SDK_SRC_DIR = $(top_srcdir)/third_party/silabs/gecko_sdk_suite/v2.7