From 88b9bd396d5a1f83c49fa1b28745fd7feaca2b2e Mon Sep 17 00:00:00 2001 From: Antonio Borneo Date: Sun, 12 Oct 2025 12:10:46 +0200 Subject: [PATCH] target: cortex-m: fix support for armv8m caches Scan-build is unable to correctly follow the deferred loading of queued read, finalized by the atomic write, thus it incorrectly claims that the arrays d_u_ccsidr[] and i_ccsidr[] could carry not initialized values: armv7m_cache.c:154:31: warning: 1st function call argument is an uninitialized value [core.CallAndMessage] cache->arch[cl].d_u_size = decode_ccsidr(d_u_ccsidr[cl]); armv7m_cache.c:172:29: warning: 1st function call argument is an uninitialized value [core.CallAndMessage] cache->arch[cl].i_size = decode_ccsidr(i_ccsidr[cl]); Initialize the arrays to zero to hide these false positive. Change-Id: I6d1e88093cb8807848643139647a571c1b566aa8 Signed-off-by: Antonio Borneo Fixes: 04da6e2c6246 ("target: cortex-m: add support for armv8m caches") Reviewed-on: https://review.openocd.org/c/openocd/+/9167 Tested-by: jenkins Reviewed-by: Tomas Vanek --- src/target/armv7m_cache.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/target/armv7m_cache.c b/src/target/armv7m_cache.c index cb57c0e25..cc0c9d140 100644 --- a/src/target/armv7m_cache.c +++ b/src/target/armv7m_cache.c @@ -111,7 +111,7 @@ int armv7m_identify_cache(struct target *target) clidr, cache->loc); // retrieve all available inner caches - uint32_t d_u_ccsidr[8], i_ccsidr[8]; + uint32_t d_u_ccsidr[8] = {0}, i_ccsidr[8] = {0}; for (unsigned int cl = 0; cl < cache->loc; cl++) { unsigned int ctype = FIELD_GET(CLIDR_CTYPE_MASK(cl + 1), clidr);