<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Aug 3, 2020 at 3:45 AM Sebastian Huber <<a href="mailto:sebastian.huber@embedded-brains.de">sebastian.huber@embedded-brains.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">This addresses compiler warnings like this:<br>
<br>
warning: array subscript 0 is outside the bounds of an interior<br>
zero-length array 'abc[0]' [-Wzero-length-bounds]<br>
---<br>
 cpukit/include/rtems/score/basedefs.h | 6 +++++-<br>
 1 file changed, 5 insertions(+), 1 deletion(-)<br>
<br>
diff --git a/cpukit/include/rtems/score/basedefs.h b/cpukit/include/rtems/score/basedefs.h<br>
index a934507d80..5a7e4e4f31 100644<br>
--- a/cpukit/include/rtems/score/basedefs.h<br>
+++ b/cpukit/include/rtems/score/basedefs.h<br>
@@ -430,7 +430,11 @@<br>
  * doesn't allow flexible array members.  Use the GNU extension which is also<br>
  * supported by other compilers.<br>
  */<br>
-#define RTEMS_ZERO_LENGTH_ARRAY 0<br>
+#if __STDC_VERSION__ >= 199409L<br>
+  #define RTEMS_ZERO_LENGTH_ARRAY<br>
+#else<br>
+  #define RTEMS_ZERO_LENGTH_ARRAY 0<br>
+#endif<br></blockquote><div><br></div><div>I'm not disagreeing with this change since it moves to the C99 feature rather than</div><div>a GNU extension but any use of it violates a rule in various safety standards. Google</div><div>randomly found the CodeSonar manual which cites:</div><div><br></div><div><ul style="box-sizing:inherit;margin:0px 0px 11px;padding:0px;font-family:"Helvetica Neue",Arial,sans-serif;line-height:1.5;font-size:12px;color:rgb(68,68,68)"><li style="box-sizing:inherit;margin:0px 0px 0px 22px;padding:0px">MISRA C:2004, 8.12 - When an array is declared with external linkage, its size shall be stated explicitly or defined implicitly by initialisation</li><li style="box-sizing:inherit;margin:0px 0px 0px 22px;padding:0px">MISRA C++:2008, 3-1-3 - When an array is declared, its size shall either be stated explicitly or defined implicitly by initialization</li><li style="box-sizing:inherit;margin:0px 0px 0px 22px;padding:0px">MISRA C:2012, 8.11 - When an array with external linkage is declared, its size should be explicitely specified</li><li style="box-sizing:inherit;margin:0px 0px 0px 22px;padding:0px">MISRA C:2012, 9.5 - Where designated initializers are used to initialize an array object the size of the array shall be specified explicitly</li><li style="box-sizing:inherit;margin:0px 0px 0px 22px;padding:0px"><a href="https://www.securecoding.cert.org/confluence/x/HQEOAQ" style="box-sizing:inherit;margin:0px;padding:0px;color:rgb(201,35,44);border-bottom:1px solid rgba(117,19,17,0.3);outline:none;text-decoration-line:none">CERT, ARR02-C.</a> - Explicitly specify array bounds, even if implicitly defined by an initializer</li></ul><br><a href="https://rules.sonarsource.com/c/RSPEC-834">https://rules.sonarsource.com/c/RSPEC-834</a>   </div><div><br></div><div>We should definitely limit the use of this.</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
 /**<br>
  * @brief Returns a pointer to the container of a specified member pointer.<br>
-- <br>
2.26.2<br>
<br>
_______________________________________________<br>
devel mailing list<br>
<a href="mailto:devel@rtems.org" target="_blank">devel@rtems.org</a><br>
<a href="http://lists.rtems.org/mailman/listinfo/devel" rel="noreferrer" target="_blank">http://lists.rtems.org/mailman/listinfo/devel</a><br>
</blockquote></div></div>