diff mbox series

[XEN] eclair-analysis: Add usage of varargs extension for C99

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

Commit Message

Nicola Vetrini Dec. 17, 2024, 4:24 p.m. UTC
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

Comments

Andrew Cooper Dec. 17, 2024, 4:40 p.m. UTC | #1
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
Jan Beulich Dec. 17, 2024, 4:40 p.m. UTC | #2
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
Jan Beulich Dec. 17, 2024, 4:45 p.m. UTC | #3
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
Andrew Cooper Dec. 17, 2024, 4:46 p.m. UTC | #4
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
Nicola Vetrini Dec. 17, 2024, 6 p.m. UTC | #5
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.
Nicola Vetrini Dec. 17, 2024, 6:03 p.m. UTC | #6
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).
Nicola Vetrini Dec. 17, 2024, 6:14 p.m. UTC | #7
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.
Andrew Cooper Dec. 17, 2024, 6:19 p.m. UTC | #8
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
Nicola Vetrini Dec. 17, 2024, 6:25 p.m. UTC | #9
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 mbox series

Patch

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.