]> sourceware.org Git - lvm2.git/commitdiff
gcc: zero-sized array to fexlible array C99
authorZdenek Kabelac <zkabelac@redhat.com>
Fri, 28 Aug 2020 17:15:01 +0000 (19:15 +0200)
committerZdenek Kabelac <zkabelac@redhat.com>
Tue, 1 Sep 2020 15:57:50 +0000 (17:57 +0200)
Switch remaining zero sized struct to flexible arrays to be C99
complient.

These simple rules should apply:

- The incomplete array type must be the last element within the structure.
- There cannot be an array of structures that contain a flexible array member.
- Structures that contain a flexible array member cannot be used as a member of another structure.
- The structure must contain at least one named member in addition to the flexible array member.

Although some of the code pieces should be still improved.

15 files changed:
WHATS_NEW
base/data-struct/hash.c
base/data-struct/radix-tree-adaptive.c
daemons/lvmlockd/lvmlockd-internal.h
device_mapper/all.h
device_mapper/misc/dm-ioctl.h
lib/device/dev-cache.c
lib/format_text/layout.h
lib/label/label.c
lib/metadata/lv_manip.c
libdm/datastruct/hash.c
libdm/libdevmapper.h
libdm/libdm-stats.c
libdm/misc/dm-ioctl.h
tools/tools.h

index 3c84ea867f0a079ff052329111dec984d20cb592..1fffbb5d7c5b85daa206cdfa4fa9826afd6cba8a 100644 (file)
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
 Version 2.03.11 - 
 ==================================
+  Switch code base to use flexible array syntax.
   Fix 64bit math when calculation cachevol size.
   Preserve uint32_t for seqno handling.
   Switch from mmap to plain read when loading regular files.
index 0a0541d2e99d16a2f8dcdd03552c6b5b716c3d83..5ef5ed276c53883cb23c101eef897ede9bdf97d4 100644 (file)
@@ -22,7 +22,7 @@ struct dm_hash_node {
        void *data;
        unsigned data_len;
        unsigned keylen;
-       char key[0];
+       char key[];
 };
 
 struct dm_hash_table {
index b9ba4179f3882d5fd2fca0c6e15743f70c889f2a..3a46cc14b25cbb5faa1b7b15e40ddce567ccaab1 100644 (file)
@@ -47,7 +47,7 @@ struct value_chain {
 struct prefix_chain {
        struct value child;
        unsigned len;
-       uint8_t prefix[0];
+       uint8_t prefix[];
 };
 
 struct node4 {
index 191c44926a31c9ffe70d175885273d02796787c2..14bdfeed04a0d1f170757e2aa1ebc9635c00b312 100644 (file)
@@ -158,7 +158,7 @@ struct resource {
        struct list_head locks;
        struct list_head actions;
        char lv_args[MAX_ARGS+1];
-       char lm_data[0];                /* lock manager specific data */
+       char lm_data[];                 /* lock manager specific data */
 };
 
 #define LD_LF_PERSISTENT 0x00000001
index c3c6219e3c3fa9e7afdf96d67f1777dc7781470e..ace3b69a0ecdd5a402430b49b065aa632a0972a7 100644 (file)
@@ -164,20 +164,20 @@ struct dm_info {
 struct dm_deps {
        uint32_t count;
        uint32_t filler;
-       uint64_t device[0];
+       uint64_t device[];
 };
 
 struct dm_names {
        uint64_t dev;
        uint32_t next;          /* Offset to next struct from start of this struct */
-       char name[0];
+       char name[];
 };
 
 struct dm_versions {
        uint32_t next;          /* Offset to next struct from start of this struct */
        uint32_t version[3];
 
-       char name[0];
+       char name[];
 };
 
 int dm_get_library_version(char *version, size_t size);
index cc2374c366a4591f4e50bc799afd1456460523bf..49954a764d4d3e18c8cd5e0e9f544d954b3123d4 100644 (file)
@@ -183,7 +183,7 @@ struct dm_target_spec {
 struct dm_target_deps {
        uint32_t count; /* Array size */
        uint32_t padding;       /* unused */
-       uint64_t dev[0];        /* out */
+       uint64_t dev[];         /* out */
 };
 
 /*
@@ -193,7 +193,7 @@ struct dm_name_list {
        uint64_t dev;
        uint32_t next;          /* offset to the next record from
                                   the _start_ of this */
-       char name[0];
+       char name[];
 };
 
 /*
@@ -203,7 +203,7 @@ struct dm_target_versions {
         uint32_t next;
         uint32_t version[3];
 
-        char name[0];
+        char name[];
 };
 
 /*
@@ -212,7 +212,7 @@ struct dm_target_versions {
 struct dm_target_msg {
        uint64_t sector;        /* Device sector */
 
-       char message[0];
+       char message[];
 };
 
 /*
index c3f7c49befaa2af857713f325ddcb01355a36d8c..d4e2658aae411597f13f94dc03d87f60ec224447 100644 (file)
@@ -35,7 +35,7 @@ struct dev_iter {
 
 struct dir_list {
        struct dm_list list;
-       char dir[0];
+       char dir[];
 };
 
 static struct {
index c3dfe8e7a65e839ce1da36ca6b7999acbe02efb3..df7ed3a780310265409d871e6d3c0e2864887618 100644 (file)
@@ -33,7 +33,7 @@ struct pv_header_extension {
        uint32_t version;
        uint32_t flags;
        /* NULL-terminated list of bootloader areas */
-       struct disk_locn bootloader_areas_xl[0];
+       struct disk_locn bootloader_areas_xl[];
 } __attribute__ ((packed));
 
 /* Fields with the suffix _xl should be xlate'd wherever they appear */
@@ -46,7 +46,7 @@ struct pv_header {
 
        /* NULL-terminated list of data areas followed by */
        /* NULL-terminated list of metadata area headers */
-       struct disk_locn disk_areas_xl[0];      /* Two lists */
+       struct disk_locn disk_areas_xl[];       /* Two lists */
 } __attribute__ ((packed));
 
 /*
@@ -76,7 +76,7 @@ struct mda_header {
        uint64_t start;         /* Absolute start byte of mda_header */
        uint64_t size;          /* Size of metadata area */
 
-       struct raw_locn raw_locns[0];   /* NULL-terminated list */
+       struct raw_locn raw_locns[];    /* NULL-terminated list */
 } __attribute__ ((packed));
 
 struct mda_header *raw_read_mda_header(const struct format_type *fmt,
index 4d369d4f14bd92cd57327c0dca302357f84520a0..8e68f9303a4acd533afc472601f339c970a44a27 100644 (file)
@@ -43,7 +43,7 @@ struct labeller_i {
        struct dm_list list;
 
        struct labeller *l;
-       char name[0];
+       char name[];
 };
 
 static struct dm_list _labellers;
index c47ec72e2ea0bb3844c10e0d43fbc8d6dc7c196c..95ca2df393b08550ca251cbef37bb855e3936476 100644 (file)
@@ -1798,7 +1798,7 @@ struct alloc_handle {
         * Contains area_count lists of areas allocated to data stripes
         * followed by log_area_count lists of areas allocated to log stripes.
         */
-       struct dm_list alloced_areas[0];
+       struct dm_list alloced_areas[];
 };
 
 /*
index 4c940039a6b5322b3f8f92e8d2586f4889ab180c..726347ea229c00bad3dd4cd513ee9d80e7aef548 100644 (file)
@@ -20,7 +20,7 @@ struct dm_hash_node {
        void *data;
        unsigned data_len;
        unsigned keylen;
-       char key[0];
+       char key[];
 };
 
 struct dm_hash_table {
index e9b140563a015c657413f9d7fa9e022e53e23d29..059b96f0b8dacf12c0b61e7d390c06b52b5f3abf 100644 (file)
@@ -165,20 +165,20 @@ struct dm_info {
 struct dm_deps {
        uint32_t count;
        uint32_t filler;
-       uint64_t device[0];
+       uint64_t device[];
 };
 
 struct dm_names {
        uint64_t dev;
        uint32_t next;          /* Offset to next struct from start of this struct */
-       char name[0];
+       char name[];
 };
 
 struct dm_versions {
        uint32_t next;          /* Offset to next struct from start of this struct */
        uint32_t version[3];
 
-       char name[0];
+       char name[];
 };
 
 int dm_get_library_version(char *version, size_t size);
index 5379bed5ee6e05cb8f4c480c97451032855187fc..f8d79d8072420e781e436c54ab9fe1eeb22c32f7 100644 (file)
@@ -65,7 +65,7 @@ struct dm_histogram {
        const struct dm_stats_region *region;
        uint64_t sum; /* Sum of histogram bin counts. */
        int nr_bins; /* Number of histogram bins assigned. */
-       struct dm_histogram_bin bins[0];
+       struct dm_histogram_bin bins[];
 };
 
 /*
index 52a7a93d1b2360d38a650c4c70a14ee686d5d86a..55dee21481b3dc1153c233311ed1c0fe36e7931e 100644 (file)
@@ -183,7 +183,7 @@ struct dm_target_spec {
 struct dm_target_deps {
        uint32_t count; /* Array size */
        uint32_t padding;       /* unused */
-       uint64_t dev[0];        /* out */
+       uint64_t dev[];         /* out */
 };
 
 /*
@@ -193,7 +193,7 @@ struct dm_name_list {
        uint64_t dev;
        uint32_t next;          /* offset to the next record from
                                   the _start_ of this */
-       char name[0];
+       char name[];
 };
 
 /*
@@ -203,7 +203,7 @@ struct dm_target_versions {
         uint32_t next;
         uint32_t version[3];
 
-        char name[0];
+        char name[];
 };
 
 /*
@@ -212,7 +212,7 @@ struct dm_target_versions {
 struct dm_target_msg {
        uint64_t sector;        /* Device sector */
 
-       char message[0];
+       char message[];
 };
 
 /*
index 4b944e2fdcc34563a6e146490d1b45b5ba152e13..befff57080acaea1e2b796028bc5ed53eea02c3c 100644 (file)
@@ -110,7 +110,7 @@ struct arg_values {
 struct arg_value_group_list {
         struct dm_list list;
        uint32_t prio;
-        struct arg_values arg_values[0];
+       struct arg_values arg_values[];
 };
 
 #define PERMITTED_READ_ONLY    0x00000002
This page took 0.064598 seconds and 5 git commands to generate.