Re: [PATCH] Regulator: Suppress compiler warnings

2015-09-01 Thread Keith Busch

On Tue, 1 Sep 2015, Mark Brown wrote:

On Tue, Sep 01, 2015 at 09:52:13AM +0900, Krzysztof Kozlowski wrote:

2015-09-01 1:41 GMT+09:00 Keith Busch :

 int regulator_is_enabled_regmap(struct regulator_dev *rdev)
 {
-   unsigned int val;
+   unsigned int uninitialized_var(val);
int ret;

ret = regmap_read(rdev->regmap, rdev->desc->enable_reg, );



This is quite common pattern so such work-around should be added to
many other functions leading to code obfuscation. Which compiler do
you have in mind?


Right, plus this will shut up valid compiler warnings which is poor
practice anyway.  I'd say this is a bug in the compiler.


Using gcc 4.7.2 with '-Os'. The warning does not happen when that option
is not used, i.e. disable CONFIG_CC_OPTIMIZE_FOR_SIZE.

I will certainly try other gcc versions with the same config and see
what happens.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] Regulator: Suppress compiler warnings

2015-09-01 Thread Mark Brown
On Tue, Sep 01, 2015 at 09:52:13AM +0900, Krzysztof Kozlowski wrote:
> 2015-09-01 1:41 GMT+09:00 Keith Busch :
> > Some compilers complain of possible uninitialized variable usage, like
> > the following:

> >   drivers/regulator/helpers.c: In function ‘regulator_get_bypass_regmap’:
> >   drivers/regulator/helpers.c:463:16: warning: ‘val’ may be used 
> > uninitialized in this function [-Wuninitialized]

> > The code is safe though, and only uses the variables if they were
> > successfully set, so suppressing the warning with uninitialized_val.

> >  int regulator_is_enabled_regmap(struct regulator_dev *rdev)
> >  {
> > -   unsigned int val;
> > +   unsigned int uninitialized_var(val);
> > int ret;
> >
> > ret = regmap_read(rdev->regmap, rdev->desc->enable_reg, );

> This is quite common pattern so such work-around should be added to
> many other functions leading to code obfuscation. Which compiler do
> you have in mind?

Right, plus this will shut up valid compiler warnings which is poor
practice anyway.  I'd say this is a bug in the compiler.


signature.asc
Description: Digital signature


Re: [PATCH] Regulator: Suppress compiler warnings

2015-09-01 Thread Keith Busch

On Tue, 1 Sep 2015, Mark Brown wrote:

On Tue, Sep 01, 2015 at 09:52:13AM +0900, Krzysztof Kozlowski wrote:

2015-09-01 1:41 GMT+09:00 Keith Busch :

 int regulator_is_enabled_regmap(struct regulator_dev *rdev)
 {
-   unsigned int val;
+   unsigned int uninitialized_var(val);
int ret;

ret = regmap_read(rdev->regmap, rdev->desc->enable_reg, );



This is quite common pattern so such work-around should be added to
many other functions leading to code obfuscation. Which compiler do
you have in mind?


Right, plus this will shut up valid compiler warnings which is poor
practice anyway.  I'd say this is a bug in the compiler.


Using gcc 4.7.2 with '-Os'. The warning does not happen when that option
is not used, i.e. disable CONFIG_CC_OPTIMIZE_FOR_SIZE.

I will certainly try other gcc versions with the same config and see
what happens.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] Regulator: Suppress compiler warnings

2015-09-01 Thread Mark Brown
On Tue, Sep 01, 2015 at 09:52:13AM +0900, Krzysztof Kozlowski wrote:
> 2015-09-01 1:41 GMT+09:00 Keith Busch :
> > Some compilers complain of possible uninitialized variable usage, like
> > the following:

> >   drivers/regulator/helpers.c: In function ‘regulator_get_bypass_regmap’:
> >   drivers/regulator/helpers.c:463:16: warning: ‘val’ may be used 
> > uninitialized in this function [-Wuninitialized]

> > The code is safe though, and only uses the variables if they were
> > successfully set, so suppressing the warning with uninitialized_val.

> >  int regulator_is_enabled_regmap(struct regulator_dev *rdev)
> >  {
> > -   unsigned int val;
> > +   unsigned int uninitialized_var(val);
> > int ret;
> >
> > ret = regmap_read(rdev->regmap, rdev->desc->enable_reg, );

> This is quite common pattern so such work-around should be added to
> many other functions leading to code obfuscation. Which compiler do
> you have in mind?

Right, plus this will shut up valid compiler warnings which is poor
practice anyway.  I'd say this is a bug in the compiler.


signature.asc
Description: Digital signature


Re: [PATCH] Regulator: Suppress compiler warnings

2015-08-31 Thread Krzysztof Kozlowski
2015-09-01 1:41 GMT+09:00 Keith Busch :
> Some compilers complain of possible uninitialized variable usage, like
> the following:
>
>   drivers/regulator/helpers.c: In function ‘regulator_get_bypass_regmap’:
>   drivers/regulator/helpers.c:463:16: warning: ‘val’ may be used 
> uninitialized in this function [-Wuninitialized]
>
> The code is safe though, and only uses the variables if they were
> successfully set, so suppressing the warning with uninitialized_val.
>
> Signed-off-by: Keith Busch 
> ---
>  drivers/regulator/helpers.c |6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/regulator/helpers.c b/drivers/regulator/helpers.c
> index 3bbb326..bb5b22a 100644
> --- a/drivers/regulator/helpers.c
> +++ b/drivers/regulator/helpers.c
> @@ -30,7 +30,7 @@
>   */
>  int regulator_is_enabled_regmap(struct regulator_dev *rdev)
>  {
> -   unsigned int val;
> +   unsigned int uninitialized_var(val);
> int ret;
>
> ret = regmap_read(rdev->regmap, rdev->desc->enable_reg, );

This is quite common pattern so such work-around should be added to
many other functions leading to code obfuscation. Which compiler do
you have in mind?

Best regards,
Krzysztof

> @@ -114,7 +114,7 @@ EXPORT_SYMBOL_GPL(regulator_disable_regmap);
>   */
>  int regulator_get_voltage_sel_regmap(struct regulator_dev *rdev)
>  {
> -   unsigned int val;
> +   unsigned int uninitialized_var(val);
> int ret;
>
> ret = regmap_read(rdev->regmap, rdev->desc->vsel_reg, );
> @@ -453,7 +453,7 @@ EXPORT_SYMBOL_GPL(regulator_set_bypass_regmap);
>   */
>  int regulator_get_bypass_regmap(struct regulator_dev *rdev, bool *enable)
>  {
> -   unsigned int val;
> +   unsigned int uninitialized_var(val);
> int ret;
>
> ret = regmap_read(rdev->regmap, rdev->desc->bypass_reg, );
> --
> 1.7.10.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH] Regulator: Suppress compiler warnings

2015-08-31 Thread Keith Busch
Some compilers complain of possible uninitialized variable usage, like
the following:

  drivers/regulator/helpers.c: In function ‘regulator_get_bypass_regmap’:
  drivers/regulator/helpers.c:463:16: warning: ‘val’ may be used uninitialized 
in this function [-Wuninitialized]

The code is safe though, and only uses the variables if they were
successfully set, so suppressing the warning with uninitialized_val.

Signed-off-by: Keith Busch 
---
 drivers/regulator/helpers.c |6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/regulator/helpers.c b/drivers/regulator/helpers.c
index 3bbb326..bb5b22a 100644
--- a/drivers/regulator/helpers.c
+++ b/drivers/regulator/helpers.c
@@ -30,7 +30,7 @@
  */
 int regulator_is_enabled_regmap(struct regulator_dev *rdev)
 {
-   unsigned int val;
+   unsigned int uninitialized_var(val);
int ret;
 
ret = regmap_read(rdev->regmap, rdev->desc->enable_reg, );
@@ -114,7 +114,7 @@ EXPORT_SYMBOL_GPL(regulator_disable_regmap);
  */
 int regulator_get_voltage_sel_regmap(struct regulator_dev *rdev)
 {
-   unsigned int val;
+   unsigned int uninitialized_var(val);
int ret;
 
ret = regmap_read(rdev->regmap, rdev->desc->vsel_reg, );
@@ -453,7 +453,7 @@ EXPORT_SYMBOL_GPL(regulator_set_bypass_regmap);
  */
 int regulator_get_bypass_regmap(struct regulator_dev *rdev, bool *enable)
 {
-   unsigned int val;
+   unsigned int uninitialized_var(val);
int ret;
 
ret = regmap_read(rdev->regmap, rdev->desc->bypass_reg, );
-- 
1.7.10.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH] Regulator: Suppress compiler warnings

2015-08-31 Thread Keith Busch
Some compilers complain of possible uninitialized variable usage, like
the following:

  drivers/regulator/helpers.c: In function ‘regulator_get_bypass_regmap’:
  drivers/regulator/helpers.c:463:16: warning: ‘val’ may be used uninitialized 
in this function [-Wuninitialized]

The code is safe though, and only uses the variables if they were
successfully set, so suppressing the warning with uninitialized_val.

Signed-off-by: Keith Busch 
---
 drivers/regulator/helpers.c |6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/regulator/helpers.c b/drivers/regulator/helpers.c
index 3bbb326..bb5b22a 100644
--- a/drivers/regulator/helpers.c
+++ b/drivers/regulator/helpers.c
@@ -30,7 +30,7 @@
  */
 int regulator_is_enabled_regmap(struct regulator_dev *rdev)
 {
-   unsigned int val;
+   unsigned int uninitialized_var(val);
int ret;
 
ret = regmap_read(rdev->regmap, rdev->desc->enable_reg, );
@@ -114,7 +114,7 @@ EXPORT_SYMBOL_GPL(regulator_disable_regmap);
  */
 int regulator_get_voltage_sel_regmap(struct regulator_dev *rdev)
 {
-   unsigned int val;
+   unsigned int uninitialized_var(val);
int ret;
 
ret = regmap_read(rdev->regmap, rdev->desc->vsel_reg, );
@@ -453,7 +453,7 @@ EXPORT_SYMBOL_GPL(regulator_set_bypass_regmap);
  */
 int regulator_get_bypass_regmap(struct regulator_dev *rdev, bool *enable)
 {
-   unsigned int val;
+   unsigned int uninitialized_var(val);
int ret;
 
ret = regmap_read(rdev->regmap, rdev->desc->bypass_reg, );
-- 
1.7.10.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] Regulator: Suppress compiler warnings

2015-08-31 Thread Krzysztof Kozlowski
2015-09-01 1:41 GMT+09:00 Keith Busch :
> Some compilers complain of possible uninitialized variable usage, like
> the following:
>
>   drivers/regulator/helpers.c: In function ‘regulator_get_bypass_regmap’:
>   drivers/regulator/helpers.c:463:16: warning: ‘val’ may be used 
> uninitialized in this function [-Wuninitialized]
>
> The code is safe though, and only uses the variables if they were
> successfully set, so suppressing the warning with uninitialized_val.
>
> Signed-off-by: Keith Busch 
> ---
>  drivers/regulator/helpers.c |6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/regulator/helpers.c b/drivers/regulator/helpers.c
> index 3bbb326..bb5b22a 100644
> --- a/drivers/regulator/helpers.c
> +++ b/drivers/regulator/helpers.c
> @@ -30,7 +30,7 @@
>   */
>  int regulator_is_enabled_regmap(struct regulator_dev *rdev)
>  {
> -   unsigned int val;
> +   unsigned int uninitialized_var(val);
> int ret;
>
> ret = regmap_read(rdev->regmap, rdev->desc->enable_reg, );

This is quite common pattern so such work-around should be added to
many other functions leading to code obfuscation. Which compiler do
you have in mind?

Best regards,
Krzysztof

> @@ -114,7 +114,7 @@ EXPORT_SYMBOL_GPL(regulator_disable_regmap);
>   */
>  int regulator_get_voltage_sel_regmap(struct regulator_dev *rdev)
>  {
> -   unsigned int val;
> +   unsigned int uninitialized_var(val);
> int ret;
>
> ret = regmap_read(rdev->regmap, rdev->desc->vsel_reg, );
> @@ -453,7 +453,7 @@ EXPORT_SYMBOL_GPL(regulator_set_bypass_regmap);
>   */
>  int regulator_get_bypass_regmap(struct regulator_dev *rdev, bool *enable)
>  {
> -   unsigned int val;
> +   unsigned int uninitialized_var(val);
> int ret;
>
> ret = regmap_read(rdev->regmap, rdev->desc->bypass_reg, );
> --
> 1.7.10.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/