summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2014-04-14 12:41:57 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2014-04-15 08:37:11 +0200
commitdc18190be4bdfa5b0fc297760f64e7915c131ff3 (patch)
treef7845c41cbc9ab8f1292571eabec07f33fc5126a
parentsp74.doc: Correct minor typos (diff)
downloadrtems-dc18190be4bdfa5b0fc297760f64e7915c131ff3.tar.bz2
score: Add and use RTEMS_ZERO_LENGTH_ARRAY
-rw-r--r--cpukit/libblock/include/rtems/blkdev.h2
-rw-r--r--cpukit/libblock/include/rtems/ide_part_table.h2
-rw-r--r--cpukit/score/include/rtems/score/basedefs.h7
3 files changed, 9 insertions, 2 deletions
diff --git a/cpukit/libblock/include/rtems/blkdev.h b/cpukit/libblock/include/rtems/blkdev.h
index f934871412..d17cadc796 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 3b4b8a5a3c..261135cccd 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 c6f639b8d5..a0bebddc0e 100644
--- a/cpukit/score/include/rtems/score/basedefs.h
+++ b/cpukit/score/include/rtems/score/basedefs.h
@@ -208,6 +208,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;