Add 21.1 and 21.2, with a longer comment to explain how strategy with
leading underscores and why we think we are safe today.
Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
---
Changes in v2:
- remove R14.4
- update note section of 21.1
---
docs/misra/rules.rst | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst
index da343ab3ac..375a886607 100644
--- a/docs/misra/rules.rst
+++ b/docs/misra/rules.rst
@@ -519,6 +519,28 @@ maintainers if you want to suggest a change.
they are related
-
+ * - `Rule 21.1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_21_01.c>`_
+ - Required
+ - #define and #undef shall not be used on a reserved identifier or
+ reserved macro name
+ - Identifiers starting with an underscore followed by another underscore
+ or an upper-case letter are reserved. Today Xen uses many, such as
+ header guards and bitwise manipulation functions. Upon analysis it turns
+ out Xen identifiers do not clash with the identifiers used by modern
+ GCC, but that is not a guarantee that there won't be a naming clash in
+ the future or with another compiler. For these reasons we discourage
+ the introduction of new reserved identifiers in Xen, and we see it as
+ positive the reduction of reserved identifiers. At the same time,
+ certain identifiers starting with an underscore are also commonly used
+ in Linux (e.g. __set_bit) and we don't think it would be an improvement
+ to rename them.
+
+ * - `Rule 21.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_21_02.c>`_
+ - Required
+ - A reserved identifier or reserved macro name shall not be
+ declared
+ - See comment for Rule 21.1
+
* - `Rule 21.13 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_21_13.c>`_
- Mandatory
- Any value passed to a function in <ctype.h> shall be representable as an
--
2.25.1
On 14.11.2023 23:59, Stefano Stabellini wrote: > Add 21.1 and 21.2, with a longer comment to explain how strategy with > leading underscores and why we think we are safe today. > > Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com> Acked-by: Jan Beulich <jbeulich@suse.com> with one nit: > --- a/docs/misra/rules.rst > +++ b/docs/misra/rules.rst > @@ -519,6 +519,28 @@ maintainers if you want to suggest a change. > they are related > - > > + * - `Rule 21.1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_21_01.c>`_ > + - Required > + - #define and #undef shall not be used on a reserved identifier or > + reserved macro name > + - Identifiers starting with an underscore followed by another underscore > + or an upper-case letter are reserved. Today Xen uses many, such as > + header guards and bitwise manipulation functions. Upon analysis it turns > + out Xen identifiers do not clash with the identifiers used by modern > + GCC, but that is not a guarantee that there won't be a naming clash in > + the future or with another compiler. For these reasons we discourage > + the introduction of new reserved identifiers in Xen, and we see it as > + positive the reduction of reserved identifiers. At the same time, > + certain identifiers starting with an underscore are also commonly used > + in Linux (e.g. __set_bit) and we don't think it would be an improvement > + to rename them. I think this last sentence would also better say "two underscores". Jan
On Wed, 15 Nov 2023, Jan Beulich wrote: > On 14.11.2023 23:59, Stefano Stabellini wrote: > > Add 21.1 and 21.2, with a longer comment to explain how strategy with > > leading underscores and why we think we are safe today. > > > > Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com> > > Acked-by: Jan Beulich <jbeulich@suse.com> > with one nit: > > > --- a/docs/misra/rules.rst > > +++ b/docs/misra/rules.rst > > @@ -519,6 +519,28 @@ maintainers if you want to suggest a change. > > they are related > > - > > > > + * - `Rule 21.1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_21_01.c>`_ > > + - Required > > + - #define and #undef shall not be used on a reserved identifier or > > + reserved macro name > > + - Identifiers starting with an underscore followed by another underscore > > + or an upper-case letter are reserved. Today Xen uses many, such as > > + header guards and bitwise manipulation functions. Upon analysis it turns > > + out Xen identifiers do not clash with the identifiers used by modern > > + GCC, but that is not a guarantee that there won't be a naming clash in > > + the future or with another compiler. For these reasons we discourage > > + the introduction of new reserved identifiers in Xen, and we see it as > > + positive the reduction of reserved identifiers. At the same time, > > + certain identifiers starting with an underscore are also commonly used > > + in Linux (e.g. __set_bit) and we don't think it would be an improvement > > + to rename them. > > I think this last sentence would also better say "two underscores". Done on commit
© 2016 - 2024 Red Hat, Inc.