Re: [PATCH] ACPICA: Silent warnings about empty body in if/else statement

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Monday, October 07, 2013 11:45:01 AM Jean Delvare wrote:
> When ACPI debugging is disabled, I see warnings like this one:
> 
> drivers/i2c/busses/i2c-scmi.c: In function "acpi_smbus_cmi_add_cap":
> drivers/i2c/busses/i2c-scmi.c:328:39: warning: suggest braces around empty body in an "else" statement [-Wempty-body]
> drivers/i2c/busses/i2c-scmi.c:338:12: warning: suggest braces around empty body in an "else" statement [-Wempty-body]
> 
> It is caused by ACPI_DEBUG_PRINT (or other similar macros) to resolve
> to nothing. Make them resolve to the classic "do {} while (0)" construct
> instead when the compiler likes that, to silent all such warnings.

The rule is that ACPICA patches need to go via upstream ACPICA, so I CCed
the ACPICA maintainers.

Thanks!

> Signed-off-by: Jean Delvare <jdelvare@xxxxxxx>
> Cc: Len Brown <lenb@xxxxxxxxxx>
> Cc: "Rafael J. Wysocki" <rjw@xxxxxxx>
> ---
>  include/acpi/acoutput.h |   40 +++++++++++++++++++++++++---------------
>  1 file changed, 25 insertions(+), 15 deletions(-)
> 
> --- linux-3.12-rc4.orig/include/acpi/acoutput.h	2013-09-24 00:41:09.000000000 +0200
> +++ linux-3.12-rc4/include/acpi/acoutput.h	2013-10-07 11:23:57.928436503 +0200
> @@ -427,22 +427,32 @@
>  /*
>   * This is the non-debug case -- make everything go away,
>   * leaving no executable debug code!
> + *
> + * Note: the ACPI_DO_WHILE0 macro is used to prevent some compilers from
> + * complaining about these constructs. On other compilers the do...while
> + * adds some extra code, so this feature is optional.
>   */
> -#define ACPI_DEBUG_PRINT(pl)
> -#define ACPI_DEBUG_PRINT_RAW(pl)
> -#define ACPI_DEBUG_EXEC(a)
> -#define ACPI_DEBUG_ONLY_MEMBERS(a)
> -#define ACPI_FUNCTION_NAME(a)
> -#define ACPI_FUNCTION_TRACE(a)
> -#define ACPI_FUNCTION_TRACE_PTR(a, b)
> -#define ACPI_FUNCTION_TRACE_U32(a, b)
> -#define ACPI_FUNCTION_TRACE_STR(a, b)
> -#define ACPI_FUNCTION_ENTRY()
> -#define ACPI_DUMP_STACK_ENTRY(a)
> -#define ACPI_DUMP_OPERANDS(a, b, c)
> -#define ACPI_DUMP_ENTRY(a, b)
> -#define ACPI_DUMP_PATHNAME(a, b, c, d)
> -#define ACPI_DUMP_BUFFER(a, b)
> +#ifdef ACPI_USE_DO_WHILE_0
> +#define ACPI_DO_WHILE0                  do {} while (0)
> +#else
> +#define ACPI_DO_WHILE0
> +#endif
> +
> +#define ACPI_DEBUG_PRINT(pl)            ACPI_DO_WHILE0
> +#define ACPI_DEBUG_PRINT_RAW(pl)        ACPI_DO_WHILE0
> +#define ACPI_DEBUG_EXEC(a)              ACPI_DO_WHILE0
> +#define ACPI_DEBUG_ONLY_MEMBERS(a)      ACPI_DO_WHILE0
> +#define ACPI_FUNCTION_NAME(a)           ACPI_DO_WHILE0
> +#define ACPI_FUNCTION_TRACE(a)          ACPI_DO_WHILE0
> +#define ACPI_FUNCTION_TRACE_PTR(a, b)   ACPI_DO_WHILE0
> +#define ACPI_FUNCTION_TRACE_U32(a, b)   ACPI_DO_WHILE0
> +#define ACPI_FUNCTION_TRACE_STR(a, b)   ACPI_DO_WHILE0
> +#define ACPI_FUNCTION_ENTRY()           ACPI_DO_WHILE0
> +#define ACPI_DUMP_STACK_ENTRY(a)        ACPI_DO_WHILE0
> +#define ACPI_DUMP_OPERANDS(a, b, c)     ACPI_DO_WHILE0
> +#define ACPI_DUMP_ENTRY(a, b)           ACPI_DO_WHILE0
> +#define ACPI_DUMP_PATHNAME(a, b, c, d)  ACPI_DO_WHILE0
> +#define ACPI_DUMP_BUFFER(a, b)          ACPI_DO_WHILE0
>  #define ACPI_IS_DEBUG_ENABLED(level, component) 0
>  
>  /* Return macros must have a return statement at the minimum */
> 
> 
> 
-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux