Thread (4 messages) 4 messages, 3 authors, 2016-02-23

Re: [PATCH] clk: lpc32xx: fix compilation warning

From: Vladimir Zapolskiy <vz@mleia.com>
Date: 2016-02-22 20:54:44

Hi Sylvain,

On 22.02.2016 20:49, slemieux.tyco@gmail.com wrote:
From: Sylvain Lemieux <redacted>

This patch remove the following compilation warning:
- drivers/clk/nxp/clk-lpc32xx.c: In function 'lpc32xx_clk_register':
  warning: 'hw' may be used uninitialized in this function [-Wmaybe-uninitialized]
- drivers/clk/nxp/clk-lpc32xx.c: In function 'clk_hclk_pll_round_rate':
  warning: 'p' may be used uninitialized in this function [-Wmaybe-uninitialized]
  warning: 'n' may be used uninitialized in this function [-Wmaybe-uninitialized]
  warning: 'm' may be used uninitialized in this function [-Wmaybe-uninitialized]
All warnings are false positives, please explicitly mention this in the commit message.
quoted hunk ↗ jump to hunk
Tested using gcc version 4.7.3.

Signed-off-by: Sylvain Lemieux <redacted>
---
 drivers/clk/nxp/clk-lpc32xx.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/clk/nxp/clk-lpc32xx.c b/drivers/clk/nxp/clk-lpc32xx.c
index 48b3a11..331f91b 100644
--- a/drivers/clk/nxp/clk-lpc32xx.c
+++ b/drivers/clk/nxp/clk-lpc32xx.c
@@ -13,6 +13,7 @@
 #include <linux/clk-provider.h>
 #include <linux/of_address.h>
 #include <linux/regmap.h>
+#include <linux/compiler-gcc.h>
 
 #include <dt-bindings/clock/lpc32xx-clock.h>
 
@@ -588,7 +589,8 @@ static long clk_hclk_pll_round_rate(struct clk_hw *hw, unsigned long rate,
 				    unsigned long *parent_rate)
 {
 	struct lpc32xx_pll_clk *clk = to_lpc32xx_pll_clk(hw);
-	u64 m_i, m, n, p, o = rate, i = *parent_rate, d = (u64)rate << 6;
+	u64 m_i, o = rate, i = *parent_rate, d = (u64)rate << 6;
+	u64 uninitialized_var(m), uninitialized_var(n), uninitialized_var(p);
I think that dummy initialization is good enough here, i.e. assigning
the variables to 0, AFAIU that's a common way to deal with compiler's false
positives, usage of uninitialized_var() looks exotic.
quoted hunk ↗ jump to hunk
 	int p_i, n_i;
 
 	pr_debug("%s: %lu/%lu\n", clk_hw_get_name(hw), *parent_rate, rate);
@@ -1414,7 +1416,7 @@ static struct clk * __init lpc32xx_clk_register(u32 id)
 			.flags = lpc32xx_clk->flags,
 			.ops = clk_hw->hw0.ops,
 		};
-		struct clk_hw *hw;
+		struct clk_hw *uninitialized_var(hw);
Same as above, struct clk_hw *hw = NULL would be good enough here.
 		if (clk_hw->type == CLK_LPC32XX)
 			hw = &clk_hw->hw0.clk.hw;
--
With best wishes,
Vladimir
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help