--- lib/ext2fs/ext4_acl.h +++ lib/ext2fs/ext4_acl.h @@ -50,13 +50,17 @@ typedef struct { typedef struct { __le32 a_version; +#ifdef __GNUC_PREREQ #if __GNUC_PREREQ (4, 8) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wpedantic" +#endif #endif posix_acl_xattr_entry a_entries[0]; +#ifdef __GNUC_PREREQ #if __GNUC_PREREQ (4, 8) #pragma GCC diagnostic pop #endif +#endif } posix_acl_xattr_header; --- lib/ext2fs/fiemap.h +++ lib/ext2fs/fiemap.h @@ -31,14 +31,18 @@ struct fiemap { __u32 fm_mapped_extents;/* number of extents that were mapped (out) */ __u32 fm_extent_count; /* size of fm_extents array (in) */ __u32 fm_reserved; +#ifdef __GNUC_PREREQ #if __GNUC_PREREQ (4, 8) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wpedantic" +#endif #endif struct fiemap_extent fm_extents[0]; /* array of mapped extents (out) */ +#ifdef __GNUC_PREREQ #if __GNUC_PREREQ (4, 8) #pragma GCC diagnostic pop #endif +#endif }; #if defined(__linux__) && !defined(FS_IOC_FIEMAP) --- lib/ext2fs/mmp.c +++ lib/ext2fs/mmp.c @@ -34,8 +34,10 @@ #define O_DIRECT 0 #endif +#ifdef __GNUC_PREREQ #if __GNUC_PREREQ (4, 6) #pragma GCC diagnostic push +#endif #ifndef CONFIG_MMP #pragma GCC diagnostic ignored "-Wunused-parameter" #endif @@ -467,6 +469,8 @@ mmp_error: return EXT2_ET_OP_NOT_SUPPORTED; #endif } +#ifdef __GNUC_PREREQ #if __GNUC_PREREQ (4, 6) #pragma GCC diagnostic pop #endif +#endif --- lib/ext2fs/unix_io.c +++ lib/ext2fs/unix_io.c @@ -1127,10 +1127,12 @@ unimplemented: } /* parameters might not be used if OS doesn't support zeroout */ +#ifdef __GNUC_PREREQ #if __GNUC_PREREQ (4, 6) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-parameter" #endif +#endif static errcode_t unix_zeroout(io_channel channel, unsigned long long block, unsigned long long count) { @@ -1197,9 +1199,11 @@ err: unimplemented: return EXT2_ET_UNIMPLEMENTED; } +#ifdef __GNUC_PREREQ #if __GNUC_PREREQ (4, 6) #pragma GCC diagnostic pop #endif +#endif static struct struct_io_manager struct_unix_manager = { .magic = EXT2_ET_MAGIC_IO_MANAGER, --- lib/ext2fs/hashmap.h +++ lib/ext2fs/hashmap.h @@ -17,14 +17,18 @@ struct ext2fs_hashmap { struct ext2fs_hashmap_entry *next; struct ext2fs_hashmap_entry *list_next; struct ext2fs_hashmap_entry *list_prev; +#ifdef __GNUC_PREREQ #if __GNUC_PREREQ (4, 8) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wpedantic" +#endif #endif } *entries[0]; +#ifdef __GNUC_PREREQ #if __GNUC_PREREQ (4, 8) #pragma GCC diagnostic pop #endif +#endif }; struct ext2fs_hashmap *ext2fs_hashmap_create( --- lib/uuid/gen_uuid.c +++ lib/uuid/gen_uuid.c @@ -484,7 +484,9 @@ static void close_all_fds(void) } #endif /* defined(USE_UUIDD) && defined(HAVE_SYS_UN_H) */ +#ifdef __GNUC_PREREQ #if __GNUC_PREREQ (4, 6) +#endif #pragma GCC diagnostic push #if !defined(USE_UUIDD) || !defined(HAVE_SYS_UN_H) #pragma GCC diagnostic ignored "-Wunused-parameter" @@ -572,9 +574,11 @@ fail: #endif return -1; } +#ifdef __GNUC_PREREQ #if __GNUC_PREREQ (4, 6) #pragma GCC diagnostic pop #endif +#endif void uuid__generate_time(uuid_t out, int *num) { --- e2fsck/problem.c +++ e2fsck/problem.c @@ -99,10 +99,12 @@ static const char *preen_msg[] = { "", /* 20 */ }; +#ifdef __GNUC_PREREQ #if __GNUC_PREREQ (4, 6) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wmissing-field-initializers" #endif +#endif static struct e2fsck_problem problem_table[] = { @@ -2094,9 +2096,11 @@ static struct latch_descr pr_latch_info[] = { { PR_LATCH_OPTIMIZE_EXT, PR_1E_OPTIMIZE_EXT_HEADER, PR_1E_OPTIMIZE_EXT_END }, { -1, 0, 0 }, }; +#ifdef __GNUC_PREREQ #if __GNUC_PREREQ (4, 6) #pragma GCC diagnostic pop #endif +#endif static struct e2fsck_problem *find_problem(problem_t code) { --- misc/e2undo.c +++ misc/e2undo.c @@ -81,14 +81,18 @@ struct undo_key_block { __le32 magic; /* KEYBLOCK_MAGIC number */ __le32 crc; /* block checksum */ __le64 reserved; /* zero */ +#ifdef __GNUC_PREREQ #if __GNUC_PREREQ (4, 8) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wpedantic" +#endif #endif struct undo_key keys[0]; /* keys, which come immediately after */ +#ifdef __GNUC_PREREQ #if __GNUC_PREREQ (4, 8) #pragma GCC diagnostic pop #endif +#endif }; struct undo_key_info { --- misc/filefrag.c +++ misc/filefrag.c @@ -535,9 +535,11 @@ int main(int argc, char**argv) char *end; blocksize = strtoul(optarg, &end, 0); if (end) { +#ifdef __GNUC_PREREQ #if __GNUC_PREREQ (7, 0) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wimplicit-fallthrough" +#endif #endif switch (end[0]) { case 'g': @@ -555,8 +557,10 @@ int main(int argc, char**argv) default: break; } +#ifdef __GNUC_PREREQ #if __GNUC_PREREQ (7, 0) #pragma GCC diagnostic pop +#endif #endif } } else { /* Allow -b without argument for compat. Remove --- misc/fuse2fs.c +++ misc/fuse2fs.c @@ -118,14 +118,18 @@ typedef struct { typedef struct { u_int32_t a_version; +#ifdef __GNUC_PREREQ #if __GNUC_PREREQ (4, 8) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wpedantic" +#endif #endif acl_ea_entry a_entries[0]; +#ifdef __GNUC_PREREQ #if __GNUC_PREREQ (4, 8) #pragma GCC diagnostic pop #endif +#endif } acl_ea_header; static inline size_t acl_ea_size(int count) --- debugfs/set_fields.c +++ debugfs/set_fields.c @@ -74,11 +74,12 @@ static errcode_t parse_bmap(struct field_set_info *info, char *field, char *arg) static errcode_t parse_gd_csum(struct field_set_info *info, char *field, char *arg); static errcode_t parse_mmp_clear(struct field_set_info *info, char *field, char *arg); - +#ifdef __GNUC_PREREQ #if __GNUC_PREREQ (4, 6) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wmissing-field-initializers" #endif +#endif static struct field_set_info super_fields[] = { { "inodes_count", &set_sb.s_inodes_count, NULL, 4, parse_uint }, @@ -291,9 +292,11 @@ static struct field_set_info mmp_fields[] = { { "checksum", &set_mmp.mmp_checksum, NULL, 4, parse_uint }, { 0, 0, 0, 0 } }; +#ifdef __GNUC_PREREQ #if __GNUC_PREREQ (4, 6) #pragma GCC diagnostic pop #endif +#endif #ifdef UNITTEST