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

Re: [PATCH v2] docs/misra: document gcc-specific behavior with shifting signed integers



On Tue, 22 Aug 2023, Julien Grall wrote:
> Hi Stefano,
> 
> On 22/08/2023 02:02, Stefano Stabellini wrote:
> > From: Stefano Stabellini <stefano.stabellini@xxxxxxx>
> > 
> > Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxx>
> > ---
> > v2:
> > - split << and >>
> > - do not use the word "shift" instead of << or >>
> > ---
> >   docs/misra/C-language-toolchain.rst | 9 +++++++++
> >   1 file changed, 9 insertions(+)
> > 
> > diff --git a/docs/misra/C-language-toolchain.rst
> > b/docs/misra/C-language-toolchain.rst
> > index 785aed1eaf..4c4942a113 100644
> > --- a/docs/misra/C-language-toolchain.rst
> > +++ b/docs/misra/C-language-toolchain.rst
> > @@ -200,6 +200,15 @@ The table columns are as follows:
> >        - ARM64, X86_64
> >        - See Section "6.29 Designated Initializers" of GCC_MANUAL
> >   +   * - Signed << compiler-defined behavior
> > +     - All architectures
> > +     - See Section "4.5 Integers" of GCC_MANUAL. As an extension to the
> > +       C language, GCC does not use the latitude given in C99 and C11
> > +       only to treat certain aspects of signed << as undefined.
> > +
> > +   * - Signed >> acts on negative numbers by sign extension
> > +     - All architectures
> > +     - See Section "4.5 Integers" of GCC_MANUAL.
> 
> I noticed that all this document is referring to GCC. But we also support
> CLang. Did you confirm that CLang abide with this behavior?

Hi Julien,

No, only GCC. The analysis and documentation so far has been done only
for GCC, as you can see from all the various mentions and pointers to
the GCC manual scattered through C-language-toolchain.rst. Actually I
think it would be very useful for our users to do the same also for
CLang, given that some safety compilers are based on CLang. And it would
be very useful to know if there are any difference. If collectively we
start to find corresponding references to the CLang manual we could add
them one by one to C-language-toolchain.rst as we find them.



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.