[PATCH 1/9] score: Add and use RTEMS_ZERO_LENGTH_ARRAY
Sebastian Huber
sebastian.huber at embedded-brains.de
Mon Apr 14 13:11:26 UTC 2014
---
cpukit/libblock/include/rtems/blkdev.h | 2 +-
cpukit/libblock/include/rtems/ide_part_table.h | 2 +-
cpukit/score/include/rtems/score/basedefs.h | 7 +++++++
3 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/cpukit/libblock/include/rtems/blkdev.h b/cpukit/libblock/include/rtems/blkdev.h
index f934871..d17cadc 100644
--- a/cpukit/libblock/include/rtems/blkdev.h
+++ b/cpukit/libblock/include/rtems/blkdev.h
@@ -142,7 +142,7 @@ typedef struct rtems_blkdev_request {
/**
* List of scatter or gather buffers.
*/
- rtems_blkdev_sg_buffer bufs[0];
+ rtems_blkdev_sg_buffer bufs[RTEMS_ZERO_LENGTH_ARRAY];
} rtems_blkdev_request;
/**
diff --git a/cpukit/libblock/include/rtems/ide_part_table.h b/cpukit/libblock/include/rtems/ide_part_table.h
index 3b4b8a5..261135c 100644
--- a/cpukit/libblock/include/rtems/ide_part_table.h
+++ b/cpukit/libblock/include/rtems/ide_part_table.h
@@ -78,7 +78,7 @@
typedef struct rtems_sector_data_s
{
uint32_t sector_num; /* sector number on the device */
- uint8_t data[0]; /* raw sector data */
+ uint8_t data[RTEMS_ZERO_LENGTH_ARRAY]; /* raw sector data */
} rtems_sector_data_t;
diff --git a/cpukit/score/include/rtems/score/basedefs.h b/cpukit/score/include/rtems/score/basedefs.h
index 2fc7caa..8f479fe 100644
--- a/cpukit/score/include/rtems/score/basedefs.h
+++ b/cpukit/score/include/rtems/score/basedefs.h
@@ -219,6 +219,13 @@
#define RTEMS_ARRAY_SIZE(array) (sizeof(array) / sizeof((array)[0]))
+/*
+ * Zero-length arrays are valid in C99 as flexible array members. C++11
+ * doesn't allow flexible array members. Use the GNU extension which is also
+ * supported by other compilers.
+ */
+#define RTEMS_ZERO_LENGTH_ARRAY 0
+
#ifndef ASM
#ifdef RTEMS_DEPRECATED_TYPES
typedef bool boolean;
--
1.7.7
More information about the devel
mailing list