[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



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?

Cheers,

--
Julien Grall



 


Rackspace

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