All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] zfs: fix compilation failure with clang due to alignment
@ 2015-07-03 19:05 Andrei Borzenkov
  2015-07-07 17:17 ` Leif Lindholm
  2015-07-15 15:49 ` Vladimir 'φ-coder/phcoder' Serbinenko
  0 siblings, 2 replies; 11+ messages in thread
From: Andrei Borzenkov @ 2015-07-03 19:05 UTC (permalink / raw)
  To: grub-devel; +Cc: jack

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)


^ permalink raw reply related	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2015-07-16 16:04 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-07-03 19:05 [PATCH] zfs: fix compilation failure with clang due to alignment Andrei Borzenkov
2015-07-07 17:17 ` Leif Lindholm
2015-07-15 15:47   ` Vladimir 'φ-coder/phcoder' Serbinenko
2015-07-15 16:52     ` Leif Lindholm
2015-07-15 17:43       ` Vladimir 'φ-coder/phcoder' Serbinenko
2015-07-16 10:07       ` Vladimir 'φ-coder/phcoder' Serbinenko
2015-07-16 16:04         ` Leif Lindholm
2015-07-16 10:47       ` Vladimir 'φ-coder/phcoder' Serbinenko
2015-07-15 15:49 ` Vladimir 'φ-coder/phcoder' Serbinenko
2015-07-16  3:46   ` Andrei Borzenkov
2015-07-16  8:04     ` Vladimir 'φ-coder/phcoder' Serbinenko

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.