I do not claim I understand why clang complains, but this patch does fix it.
fs/xfs.c:452:25: error: cast from 'struct grub_xfs_btree_node *' to 'grub_uint64_t *' (aka 'unsigned long long *') increases required alignment from 1 to 8 [-Werror,-Wcast-align] grub_uint64_t *keys = (grub_uint64_t *)(leaf + 1); ^~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 error generated. --- Jan, do you have any idea what's wrong and whether this is proper fix? Or should I raise it with clang? grub-core/fs/xfs.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/grub-core/fs/xfs.c b/grub-core/fs/xfs.c index 7249291..ea8cf7e 100644 --- a/grub-core/fs/xfs.c +++ b/grub-core/fs/xfs.c @@ -445,14 +445,14 @@ grub_xfs_next_de(struct grub_xfs_data *data, struct grub_xfs_dir2_entry *de) return (struct grub_xfs_dir2_entry *)(((char *)de) + ALIGN_UP(size, 8)); } -static grub_uint64_t * +static void * grub_xfs_btree_keys(struct grub_xfs_data *data, struct grub_xfs_btree_node *leaf) { - grub_uint64_t *keys = (grub_uint64_t *)(leaf + 1); + char *keys = (char *)leaf + sizeof (*leaf); if (data->hascrc) - keys += 6; /* skip crc, uuid, ... */ + keys += 6 * sizeof (grub_uint64_t); /* skip crc, uuid, ... */ return keys; } -- tg: (7a21030..) u/xfs-clang-align (depends on: master) _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel