From dc18190be4bdfa5b0fc297760f64e7915c131ff3 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Mon, 14 Apr 2014 12:41:57 +0200 Subject: score: Add and use RTEMS_ZERO_LENGTH_ARRAY --- 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 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; -- cgit v1.2.3