Message ID | bb0e1f3d0d4067b597c7cdae5ed9fc3e059d17ae.1734452569.git.nicola.vetrini@bugseng.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [XEN] eclair-analysis: Add usage of varargs extension for C99 | expand |
On 17/12/2024 4:24 pm, Nicola Vetrini wrote: > This extension name is missing from the current list of extension used > by Xen, therefore is must be added to that configuration in order to > avoid violations for MISRA C Rule 1.1. > > Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com> Given CI is broken, I've put this in for testing: https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1592826906 But, a question: > --- > automation/eclair_analysis/ECLAIR/toolchain.ecl | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/automation/eclair_analysis/ECLAIR/toolchain.ecl b/automation/eclair_analysis/ECLAIR/toolchain.ecl > index 86e9a79b5231..9b419e562afa 100644 > --- a/automation/eclair_analysis/ECLAIR/toolchain.ecl > +++ b/automation/eclair_analysis/ECLAIR/toolchain.ecl > @@ -100,8 +100,8 @@ > ext_enum_value_not_int: non-documented GCC extension. > ext_gnu_array_range: see Section \"6.29 Designated Initializers\" of "GCC_MANUAL". > " > --config=STD.diag,behavior+={c99,GCC_ARM64,"^(ext_paste_comma|ext_missing_varargs_arg|ext_named_variadic_macro|ext_return_has_void_expr|ext_gnu_statement_expr_macro|ext_sizeof_alignof_void_type|ext_forward_ref_enum_def|ext_gnu_array_range)$"} > --config=STD.diag,behavior+={c99,GCC_X86_64,"^(ext_paste_comma|ext_missing_varargs_arg|ext_named_variadic_macro|ext_return_has_void_expr|ext_gnu_statement_expr_macro|ext_sizeof_alignof_void_type|ext_flexible_array_in_struct|ext_flexible_array_in_array|ext_enum_value_not_int|ext_gnu_array_range)$"} > +-config=STD.diag,behavior+={c99,GCC_ARM64,"^(ext_paste_comma|ext_c_missing_varargs_arg|ext_missing_varargs_arg|ext_named_variadic_macro|ext_return_has_void_expr|ext_gnu_statement_expr_macro|ext_sizeof_alignof_void_type|ext_forward_ref_enum_def|ext_gnu_array_range)$"} > +-config=STD.diag,behavior+={c99,GCC_X86_64,"^(ext_paste_comma|ext_c_missing_varargs_arg|ext_missing_varargs_arg|ext_named_variadic_macro|ext_return_has_void_expr|ext_gnu_statement_expr_macro|ext_sizeof_alignof_void_type|ext_flexible_array_in_struct|ext_flexible_array_in_array|ext_enum_value_not_int|ext_gnu_array_range)$"} > -doc_end We're adding ext_c_missing_varargs_arg to the list. But there's also ext_missing_varargs_arg. What's the difference between the two? ~Andrew
On 17.12.2024 17:24, Nicola Vetrini wrote: > This extension name is missing from the current list of extension used > by Xen, therefore is must be added to that configuration in order to > avoid violations for MISRA C Rule 1.1. Which extension are we talking about here? I'm afraid ... > --- a/automation/eclair_analysis/ECLAIR/toolchain.ecl > +++ b/automation/eclair_analysis/ECLAIR/toolchain.ecl > @@ -100,8 +100,8 @@ > ext_enum_value_not_int: non-documented GCC extension. > ext_gnu_array_range: see Section \"6.29 Designated Initializers\" of "GCC_MANUAL". > " > --config=STD.diag,behavior+={c99,GCC_ARM64,"^(ext_paste_comma|ext_missing_varargs_arg|ext_named_variadic_macro|ext_return_has_void_expr|ext_gnu_statement_expr_macro|ext_sizeof_alignof_void_type|ext_forward_ref_enum_def|ext_gnu_array_range)$"} > --config=STD.diag,behavior+={c99,GCC_X86_64,"^(ext_paste_comma|ext_missing_varargs_arg|ext_named_variadic_macro|ext_return_has_void_expr|ext_gnu_statement_expr_macro|ext_sizeof_alignof_void_type|ext_flexible_array_in_struct|ext_flexible_array_in_array|ext_enum_value_not_int|ext_gnu_array_range)$"} > +-config=STD.diag,behavior+={c99,GCC_ARM64,"^(ext_paste_comma|ext_c_missing_varargs_arg|ext_missing_varargs_arg|ext_named_variadic_macro|ext_return_has_void_expr|ext_gnu_statement_expr_macro|ext_sizeof_alignof_void_type|ext_forward_ref_enum_def|ext_gnu_array_range)$"} > +-config=STD.diag,behavior+={c99,GCC_X86_64,"^(ext_paste_comma|ext_c_missing_varargs_arg|ext_missing_varargs_arg|ext_named_variadic_macro|ext_return_has_void_expr|ext_gnu_statement_expr_macro|ext_sizeof_alignof_void_type|ext_flexible_array_in_struct|ext_flexible_array_in_array|ext_enum_value_not_int|ext_gnu_array_range)$"} > -doc_end ... ext_c_missing_varargs_arg doesn't tell me anything. Without this it's hard to tell whether C-language-toolchain.rst might also need an edit; a search for "varargs" in the file yields no hit. Jan
On 17.12.2024 17:40, Andrew Cooper wrote: > On 17/12/2024 4:24 pm, Nicola Vetrini wrote: >> This extension name is missing from the current list of extension used >> by Xen, therefore is must be added to that configuration in order to >> avoid violations for MISRA C Rule 1.1. >> >> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com> > > Given CI is broken, I've put this in for testing: > > https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1592826906 If this was fixing an earlier commit, shouldn't it come with a Fixes: tag anyway? Jan
On 17/12/2024 4:45 pm, Jan Beulich wrote: > On 17.12.2024 17:40, Andrew Cooper wrote: >> On 17/12/2024 4:24 pm, Nicola Vetrini wrote: >>> This extension name is missing from the current list of extension used >>> by Xen, therefore is must be added to that configuration in order to >>> avoid violations for MISRA C Rule 1.1. >>> >>> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com> >> Given CI is broken, I've put this in for testing: >> >> https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1592826906 > If this was fixing an earlier commit, shouldn't it come with a Fixes: tag > anyway? Yeah, it probably should have a Fixes, even if it is technically a combined one with also changing the runner. ~Andrew
On 2024-12-17 17:46, Andrew Cooper wrote: > On 17/12/2024 4:45 pm, Jan Beulich wrote: >> On 17.12.2024 17:40, Andrew Cooper wrote: >>> On 17/12/2024 4:24 pm, Nicola Vetrini wrote: >>>> This extension name is missing from the current list of extension >>>> used >>>> by Xen, therefore is must be added to that configuration in order to >>>> avoid violations for MISRA C Rule 1.1. >>>> >>>> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com> >>> Given CI is broken, I've put this in for testing: >>> >>> https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1592826906 >> If this was fixing an earlier commit, shouldn't it come with a Fixes: >> tag >> anyway? > > Yeah, it probably should have a Fixes, even if it is technically a > combined one with also changing the runner. > I agree. I did forget putting a fixes tag, that was a bit rushed. We can unmark R1.1 and R2.1 temporarily and then respin this to properly address both rules.
On 2024-12-17 17:40, Jan Beulich wrote: > On 17.12.2024 17:24, Nicola Vetrini wrote: >> This extension name is missing from the current list of extension used >> by Xen, therefore is must be added to that configuration in order to >> avoid violations for MISRA C Rule 1.1. > > Which extension are we talking about here? I'm afraid ... > >> --- a/automation/eclair_analysis/ECLAIR/toolchain.ecl >> +++ b/automation/eclair_analysis/ECLAIR/toolchain.ecl >> @@ -100,8 +100,8 @@ >> ext_enum_value_not_int: non-documented GCC extension. >> ext_gnu_array_range: see Section \"6.29 Designated Initializers\" >> of "GCC_MANUAL". >> " >> --config=STD.diag,behavior+={c99,GCC_ARM64,"^(ext_paste_comma|ext_missing_varargs_arg|ext_named_variadic_macro|ext_return_has_void_expr|ext_gnu_statement_expr_macro|ext_sizeof_alignof_void_type|ext_forward_ref_enum_def|ext_gnu_array_range)$"} >> --config=STD.diag,behavior+={c99,GCC_X86_64,"^(ext_paste_comma|ext_missing_varargs_arg|ext_named_variadic_macro|ext_return_has_void_expr|ext_gnu_statement_expr_macro|ext_sizeof_alignof_void_type|ext_flexible_array_in_struct|ext_flexible_array_in_array|ext_enum_value_not_int|ext_gnu_array_range)$"} >> +-config=STD.diag,behavior+={c99,GCC_ARM64,"^(ext_paste_comma|ext_c_missing_varargs_arg|ext_missing_varargs_arg|ext_named_variadic_macro|ext_return_has_void_expr|ext_gnu_statement_expr_macro|ext_sizeof_alignof_void_type|ext_forward_ref_enum_def|ext_gnu_array_range)$"} >> +-config=STD.diag,behavior+={c99,GCC_X86_64,"^(ext_paste_comma|ext_c_missing_varargs_arg|ext_missing_varargs_arg|ext_named_variadic_macro|ext_return_has_void_expr|ext_gnu_statement_expr_macro|ext_sizeof_alignof_void_type|ext_flexible_array_in_struct|ext_flexible_array_in_array|ext_enum_value_not_int|ext_gnu_array_range)$"} >> -doc_end > > ... ext_c_missing_varargs_arg doesn't tell me anything. Without this > it's > hard to tell whether C-language-toolchain.rst might also need an edit; > a > search for "varargs" in the file yields no hit. > It's related to section 6.21 of the gcc manual "Macros with a variable number of arguments". The GCC extension (well, technically CPP) allowing zero arguments to a variadic macro, so it's already present in the comment above the configuration (out of context).
On 2024-12-17 17:40, Andrew Cooper wrote: > On 17/12/2024 4:24 pm, Nicola Vetrini wrote: >> This extension name is missing from the current list of extension used >> by Xen, therefore is must be added to that configuration in order to >> avoid violations for MISRA C Rule 1.1. >> >> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com> > > Given CI is broken, I've put this in for testing: > > https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1592826906 > > But, a question: > >> --- >> automation/eclair_analysis/ECLAIR/toolchain.ecl | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/automation/eclair_analysis/ECLAIR/toolchain.ecl >> b/automation/eclair_analysis/ECLAIR/toolchain.ecl >> index 86e9a79b5231..9b419e562afa 100644 >> --- a/automation/eclair_analysis/ECLAIR/toolchain.ecl >> +++ b/automation/eclair_analysis/ECLAIR/toolchain.ecl >> @@ -100,8 +100,8 @@ >> ext_enum_value_not_int: non-documented GCC extension. >> ext_gnu_array_range: see Section \"6.29 Designated Initializers\" >> of "GCC_MANUAL". >> " >> --config=STD.diag,behavior+={c99,GCC_ARM64,"^(ext_paste_comma|ext_missing_varargs_arg|ext_named_variadic_macro|ext_return_has_void_expr|ext_gnu_statement_expr_macro|ext_sizeof_alignof_void_type|ext_forward_ref_enum_def|ext_gnu_array_range)$"} >> --config=STD.diag,behavior+={c99,GCC_X86_64,"^(ext_paste_comma|ext_missing_varargs_arg|ext_named_variadic_macro|ext_return_has_void_expr|ext_gnu_statement_expr_macro|ext_sizeof_alignof_void_type|ext_flexible_array_in_struct|ext_flexible_array_in_array|ext_enum_value_not_int|ext_gnu_array_range)$"} >> +-config=STD.diag,behavior+={c99,GCC_ARM64,"^(ext_paste_comma|ext_c_missing_varargs_arg|ext_missing_varargs_arg|ext_named_variadic_macro|ext_return_has_void_expr|ext_gnu_statement_expr_macro|ext_sizeof_alignof_void_type|ext_forward_ref_enum_def|ext_gnu_array_range)$"} >> +-config=STD.diag,behavior+={c99,GCC_X86_64,"^(ext_paste_comma|ext_c_missing_varargs_arg|ext_missing_varargs_arg|ext_named_variadic_macro|ext_return_has_void_expr|ext_gnu_statement_expr_macro|ext_sizeof_alignof_void_type|ext_flexible_array_in_struct|ext_flexible_array_in_array|ext_enum_value_not_int|ext_gnu_array_range)$"} >> -doc_end > > We're adding ext_c_missing_varargs_arg to the list. But there's also > ext_missing_varargs_arg. > > What's the difference between the two? > Actually on a closer look the second name can be dropped, so only "ext_c_missing_varargs_arg" is needed (and it's the same extension). I'll adjust the patch.
On 17/12/2024 6:14 pm, Nicola Vetrini wrote: > On 2024-12-17 17:40, Andrew Cooper wrote: >> On 17/12/2024 4:24 pm, Nicola Vetrini wrote: >>> This extension name is missing from the current list of extension used >>> by Xen, therefore is must be added to that configuration in order to >>> avoid violations for MISRA C Rule 1.1. >>> >>> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com> >> >> Given CI is broken, I've put this in for testing: >> >> https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1592826906 >> >> But, a question: >> >>> --- >>> automation/eclair_analysis/ECLAIR/toolchain.ecl | 4 ++-- >>> 1 file changed, 2 insertions(+), 2 deletions(-) >>> >>> diff --git a/automation/eclair_analysis/ECLAIR/toolchain.ecl >>> b/automation/eclair_analysis/ECLAIR/toolchain.ecl >>> index 86e9a79b5231..9b419e562afa 100644 >>> --- a/automation/eclair_analysis/ECLAIR/toolchain.ecl >>> +++ b/automation/eclair_analysis/ECLAIR/toolchain.ecl >>> @@ -100,8 +100,8 @@ >>> ext_enum_value_not_int: non-documented GCC extension. >>> ext_gnu_array_range: see Section \"6.29 Designated >>> Initializers\" of "GCC_MANUAL". >>> " >>> --config=STD.diag,behavior+={c99,GCC_ARM64,"^(ext_paste_comma|ext_missing_varargs_arg|ext_named_variadic_macro|ext_return_has_void_expr|ext_gnu_statement_expr_macro|ext_sizeof_alignof_void_type|ext_forward_ref_enum_def|ext_gnu_array_range)$"} >>> >>> --config=STD.diag,behavior+={c99,GCC_X86_64,"^(ext_paste_comma|ext_missing_varargs_arg|ext_named_variadic_macro|ext_return_has_void_expr|ext_gnu_statement_expr_macro|ext_sizeof_alignof_void_type|ext_flexible_array_in_struct|ext_flexible_array_in_array|ext_enum_value_not_int|ext_gnu_array_range)$"} >>> >>> +-config=STD.diag,behavior+={c99,GCC_ARM64,"^(ext_paste_comma|ext_c_missing_varargs_arg|ext_missing_varargs_arg|ext_named_variadic_macro|ext_return_has_void_expr|ext_gnu_statement_expr_macro|ext_sizeof_alignof_void_type|ext_forward_ref_enum_def|ext_gnu_array_range)$"} >>> >>> +-config=STD.diag,behavior+={c99,GCC_X86_64,"^(ext_paste_comma|ext_c_missing_varargs_arg|ext_missing_varargs_arg|ext_named_variadic_macro|ext_return_has_void_expr|ext_gnu_statement_expr_macro|ext_sizeof_alignof_void_type|ext_flexible_array_in_struct|ext_flexible_array_in_array|ext_enum_value_not_int|ext_gnu_array_range)$"} >>> >>> -doc_end >> >> We're adding ext_c_missing_varargs_arg to the list. But there's also >> ext_missing_varargs_arg. >> >> What's the difference between the two? >> > > Actually on a closer look the second name can be dropped, so only > "ext_c_missing_varargs_arg" is needed (and it's the same extension). > I'll adjust the patch. If you're adjusting this, could you start by splitting this into multiple lines like we have for the monitored and clean lists. It will make it far more clear when adjusting one option in the middle like this. ~Andrew
On 2024-12-17 19:19, Andrew Cooper wrote: > On 17/12/2024 6:14 pm, Nicola Vetrini wrote: >> On 2024-12-17 17:40, Andrew Cooper wrote: >>> On 17/12/2024 4:24 pm, Nicola Vetrini wrote: >>>> This extension name is missing from the current list of extension >>>> used >>>> by Xen, therefore is must be added to that configuration in order to >>>> avoid violations for MISRA C Rule 1.1. >>>> >>>> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com> >>> >>> Given CI is broken, I've put this in for testing: >>> >>> https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1592826906 >>> >>> But, a question: >>> >>>> --- >>>> automation/eclair_analysis/ECLAIR/toolchain.ecl | 4 ++-- >>>> 1 file changed, 2 insertions(+), 2 deletions(-) >>>> >>>> diff --git a/automation/eclair_analysis/ECLAIR/toolchain.ecl >>>> b/automation/eclair_analysis/ECLAIR/toolchain.ecl >>>> index 86e9a79b5231..9b419e562afa 100644 >>>> --- a/automation/eclair_analysis/ECLAIR/toolchain.ecl >>>> +++ b/automation/eclair_analysis/ECLAIR/toolchain.ecl >>>> @@ -100,8 +100,8 @@ >>>> ext_enum_value_not_int: non-documented GCC extension. >>>> ext_gnu_array_range: see Section \"6.29 Designated >>>> Initializers\" of "GCC_MANUAL". >>>> " >>>> --config=STD.diag,behavior+={c99,GCC_ARM64,"^(ext_paste_comma|ext_missing_varargs_arg|ext_named_variadic_macro|ext_return_has_void_expr|ext_gnu_statement_expr_macro|ext_sizeof_alignof_void_type|ext_forward_ref_enum_def|ext_gnu_array_range)$"} >>>> >>>> --config=STD.diag,behavior+={c99,GCC_X86_64,"^(ext_paste_comma|ext_missing_varargs_arg|ext_named_variadic_macro|ext_return_has_void_expr|ext_gnu_statement_expr_macro|ext_sizeof_alignof_void_type|ext_flexible_array_in_struct|ext_flexible_array_in_array|ext_enum_value_not_int|ext_gnu_array_range)$"} >>>> >>>> +-config=STD.diag,behavior+={c99,GCC_ARM64,"^(ext_paste_comma|ext_c_missing_varargs_arg|ext_missing_varargs_arg|ext_named_variadic_macro|ext_return_has_void_expr|ext_gnu_statement_expr_macro|ext_sizeof_alignof_void_type|ext_forward_ref_enum_def|ext_gnu_array_range)$"} >>>> >>>> +-config=STD.diag,behavior+={c99,GCC_X86_64,"^(ext_paste_comma|ext_c_missing_varargs_arg|ext_missing_varargs_arg|ext_named_variadic_macro|ext_return_has_void_expr|ext_gnu_statement_expr_macro|ext_sizeof_alignof_void_type|ext_flexible_array_in_struct|ext_flexible_array_in_array|ext_enum_value_not_int|ext_gnu_array_range)$"} >>>> >>>> -doc_end >>> >>> We're adding ext_c_missing_varargs_arg to the list. But there's also >>> ext_missing_varargs_arg. >>> >>> What's the difference between the two? >>> >> >> Actually on a closer look the second name can be dropped, so only >> "ext_c_missing_varargs_arg" is needed (and it's the same extension). >> I'll adjust the patch. > > If you're adjusting this, could you start by splitting this into > multiple lines like we have for the monitored and clean lists. > > It will make it far more clear when adjusting one option in the middle > like this. > Ack
diff --git a/automation/eclair_analysis/ECLAIR/toolchain.ecl b/automation/eclair_analysis/ECLAIR/toolchain.ecl index 86e9a79b5231..9b419e562afa 100644 --- a/automation/eclair_analysis/ECLAIR/toolchain.ecl +++ b/automation/eclair_analysis/ECLAIR/toolchain.ecl @@ -100,8 +100,8 @@ ext_enum_value_not_int: non-documented GCC extension. ext_gnu_array_range: see Section \"6.29 Designated Initializers\" of "GCC_MANUAL". " --config=STD.diag,behavior+={c99,GCC_ARM64,"^(ext_paste_comma|ext_missing_varargs_arg|ext_named_variadic_macro|ext_return_has_void_expr|ext_gnu_statement_expr_macro|ext_sizeof_alignof_void_type|ext_forward_ref_enum_def|ext_gnu_array_range)$"} --config=STD.diag,behavior+={c99,GCC_X86_64,"^(ext_paste_comma|ext_missing_varargs_arg|ext_named_variadic_macro|ext_return_has_void_expr|ext_gnu_statement_expr_macro|ext_sizeof_alignof_void_type|ext_flexible_array_in_struct|ext_flexible_array_in_array|ext_enum_value_not_int|ext_gnu_array_range)$"} +-config=STD.diag,behavior+={c99,GCC_ARM64,"^(ext_paste_comma|ext_c_missing_varargs_arg|ext_missing_varargs_arg|ext_named_variadic_macro|ext_return_has_void_expr|ext_gnu_statement_expr_macro|ext_sizeof_alignof_void_type|ext_forward_ref_enum_def|ext_gnu_array_range)$"} +-config=STD.diag,behavior+={c99,GCC_X86_64,"^(ext_paste_comma|ext_c_missing_varargs_arg|ext_missing_varargs_arg|ext_named_variadic_macro|ext_return_has_void_expr|ext_gnu_statement_expr_macro|ext_sizeof_alignof_void_type|ext_flexible_array_in_struct|ext_flexible_array_in_array|ext_enum_value_not_int|ext_gnu_array_range)$"} -doc_end -doc_begin="The maximum size of an object is defined in the MAX_SIZE macro, and for a 32 bit architecture is 8MB.
This extension name is missing from the current list of extension used by Xen, therefore is must be added to that configuration in order to avoid violations for MISRA C Rule 1.1. Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com> --- automation/eclair_analysis/ECLAIR/toolchain.ecl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -- 2.43.0