[PATCH] perf tools: Replace zero-length array with flexible-array member

cgel.zte@gmail.com posted 1 patch 4 years, 4 months ago
tools/perf/util/event.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] perf tools: Replace zero-length array with flexible-array member
Posted by cgel.zte@gmail.com 4 years, 4 months ago
From: Changcheng Deng <deng.changcheng@zte.com.cn>

There is a regular need in the kernel to provide a way to declare having
a dynamically sized set of trailing elements in a structure. Kernel code
should always use "flexible array members" for these cases. The older
style of one-element or zero-length arrays should no longer be used.
Reference:
https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays

Reported-by: Zeal Robot <zealci@zte.com.cn>
Signed-off-by: Changcheng Deng <deng.changcheng@zte.com.cn>
---
 tools/perf/util/event.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/perf/util/event.h b/tools/perf/util/event.h
index cdd72e05fd28..320cbcd5b902 100644
--- a/tools/perf/util/event.h
+++ b/tools/perf/util/event.h
@@ -308,7 +308,7 @@ struct perf_synth_intel_evt {
 		};
 		u32	cfe;
 	};
-	struct perf_synth_intel_evd evd[0];
+	struct perf_synth_intel_evd evd[];
 };
 
 struct perf_synth_intel_iflag_chg {
-- 
2.25.1

Re: [PATCH] perf tools: Replace zero-length array with flexible-array member
Posted by Arnaldo Carvalho de Melo 4 years, 4 months ago
Em Fri, Feb 18, 2022 at 03:13:52AM +0000, cgel.zte@gmail.com escreveu:
> From: Changcheng Deng <deng.changcheng@zte.com.cn>
> 
> There is a regular need in the kernel to provide a way to declare having
> a dynamically sized set of trailing elements in a structure. Kernel code
> should always use "flexible array members" for these cases. The older
> style of one-element or zero-length arrays should no longer be used.
> Reference:
> https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays
> 
> Reported-by: Zeal Robot <zealci@zte.com.cn>
> Signed-off-by: Changcheng Deng <deng.changcheng@zte.com.cn>

You can't do that as this will break the build as explained in that
patch e-mail thread.

Adrian provided an alternative patch that I have to process.

Thanks for the patch anyway,

- Arnaldo

> ---
>  tools/perf/util/event.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/tools/perf/util/event.h b/tools/perf/util/event.h
> index cdd72e05fd28..320cbcd5b902 100644
> --- a/tools/perf/util/event.h
> +++ b/tools/perf/util/event.h
> @@ -308,7 +308,7 @@ struct perf_synth_intel_evt {
>  		};
>  		u32	cfe;
>  	};
> -	struct perf_synth_intel_evd evd[0];
> +	struct perf_synth_intel_evd evd[];
>  };
>  
>  struct perf_synth_intel_iflag_chg {
> -- 
> 2.25.1

-- 

- Arnaldo