Module Name: src Committed By: riastradh Date: Mon Sep 7 02:28:12 UTC 2020
Modified Files: src/sys/ufs/lfs: lfs_accessors.h Log Message: Suppress -Waddress-of-packed-member just for lfs_accessors.h. We can remove -Wno-error=address-of-packed-member from various makefiles now. To generate a diff of this commit: cvs rdiff -u -r1.49 -r1.50 src/sys/ufs/lfs/lfs_accessors.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/ufs/lfs/lfs_accessors.h diff -u src/sys/ufs/lfs/lfs_accessors.h:1.49 src/sys/ufs/lfs/lfs_accessors.h:1.50 --- src/sys/ufs/lfs/lfs_accessors.h:1.49 Sat Mar 21 06:11:05 2020 +++ src/sys/ufs/lfs/lfs_accessors.h Mon Sep 7 02:28:12 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: lfs_accessors.h,v 1.49 2020/03/21 06:11:05 riastradh Exp $ */ +/* $NetBSD: lfs_accessors.h,v 1.50 2020/09/07 02:28:12 riastradh Exp $ */ /* from NetBSD: lfs.h,v 1.165 2015/07/24 06:59:32 dholland Exp */ /* from NetBSD: dinode.h,v 1.25 2016/01/22 23:06:10 dholland Exp */ @@ -218,6 +218,31 @@ /* + * Suppress spurious warnings -- we use + * + * type *foo = &obj->member; + * + * in macros to verify that obj->member has the right type. When the + * object is a packed structure with misaligned members, this causes + * some compiles to squeal that taking the address might lead to + * undefined behaviour later on -- which is helpful in general, not + * relevant in this case, because we don't do anything with foo + * afterward; we only declare it to get a type check and then we + * discard it. + */ +#ifdef __GNUC__ +#if defined(__clang__) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Waddress-of-packed-member" +#elif __GNUC_PREREQ__(9,0) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Waddress-of-packed-member" +#endif +#endif + + + +/* * directories */ @@ -1508,5 +1533,16 @@ lfs_blocks_sub(STRUCT_LFS *fs, union lfs #define LFS_NRESERVE(F) (lfs_btofsb((F), (2 * ULFS_NIADDR + 3) << lfs_sb_getbshift(F))) +/* + * Suppress spurious clang warnings + */ +#ifdef __GNUC__ +#if defined(__clang__) +#pragma clang diagnostic pop +#elif __GNUC_PREREQ__(9,0) +#pragma GCC diagnostic pop +#endif +#endif + #endif /* _UFS_LFS_LFS_ACCESSORS_H_ */