diff options
author | Jeremy Bettis <jbettis@google.com> | 2021-09-20 16:08:14 -0600 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-09-24 16:13:29 +0000 |
commit | a4056238da1d6bc6327b8d090845db9a44fe5f34 (patch) | |
tree | 184b992f1f674f0c55e862801cccdebcc6cc167f | |
parent | 2caf7b2cadb5dd12bee3442565f02abfb76f9077 (diff) | |
download | chrome-ec-a4056238da1d6bc6327b8d090845db9a44fe5f34.tar.gz |
ec: Fail on uninitialized variables
The zephyr toolchain has -Werror=maybe-uninitialized enabled by default,
so enable it for all gcc EC builds to prevent possible uninitialized
vars from sneaking into the codebase. For clang builds, use
-Werror=uninitialized instead.
BRANCH=None
BUG=None
TEST=in docker: make -j CRYPTOC_DIR="${MODULES_DIR}/cryptoc" \
FTDIVERSION=1 HOSTGCOV='gcov' \
CROSS_COMPILE_arm=/opt/zephyr-sdk/arm-zephyr-eabi/bin/arm-zephyr-eabi- \
coverage
in chroot; make try_build_boards buildall_only
Change-Id: I3efb4b2958f2037606195743d768870e1d0b18b9
Signed-off-by: Jeremy Bettis <jbettis@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3171939
Tested-by: Jeremy Bettis <jbettis@chromium.org>
Auto-Submit: Jeremy Bettis <jbettis@chromium.org>
Commit-Queue: Jack Rosenthal <jrosenth@chromium.org>
Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
-rw-r--r-- | Makefile.toolchain | 6 | ||||
-rw-r--r-- | test/vpd_api.c | 4 | ||||
-rw-r--r-- | util/genvif.c | 4 |
3 files changed, 10 insertions, 4 deletions
diff --git a/Makefile.toolchain b/Makefile.toolchain index e39a1c3016..29e0beca08 100644 --- a/Makefile.toolchain +++ b/Makefile.toolchain @@ -52,6 +52,12 @@ C_WARN = -Wstrict-prototypes -Wdeclaration-after-statement -Wno-pointer-sign COMMON_WARN = -Wall -Wundef -Werror -Werror-implicit-function-declaration \ -Wno-trigraphs -Wno-format-security -Wno-address-of-packed-member \ -fno-common -fno-strict-aliasing -fno-strict-overflow +ifeq ($(cc-name),clang) +COMMON_WARN+=-Werror=uninitialized +endif +ifeq ($(cc-name),gcc) +COMMON_WARN+=-Werror=maybe-uninitialized +endif UBSAN_FLAGS=-fsanitize=array-bounds,vla-bound \ -fno-sanitize=vptr \ diff --git a/test/vpd_api.c b/test/vpd_api.c index 960c0c664b..65e86adb96 100644 --- a/test/vpd_api.c +++ b/test/vpd_api.c @@ -324,8 +324,8 @@ void vpd_ct_set_pull(int pull, int rp_value) void vpd_ct_get_cc(int *cc1, int *cc2) { - int cc1_v; - int cc2_v; + int cc1_v = 0; + int cc2_v = 0; switch (ct_cc_pull) { case TYPEC_CC_RP: diff --git a/util/genvif.c b/util/genvif.c index a8b7f24ec4..6722df9349 100644 --- a/util/genvif.c +++ b/util/genvif.c @@ -2791,7 +2791,7 @@ static void init_vif_component_general_pd_fields( * to NO, then this field shall be set to YES. */ { - bool supports_to_dfp; + bool supports_to_dfp = false; switch (type) { case SRC: @@ -2833,7 +2833,7 @@ static void init_vif_component_general_pd_fields( * 5 (eMarker) then this field shall be ignored by Testers. */ { - bool supports_to_ufp; + bool supports_to_ufp = false; switch (type) { case SRC: |