OSDN Git Service

Fix another error of -Werror=address-of-packed-member
authorChih-Wei Huang <cwhuang@linux.org.tw>
Tue, 26 Feb 2019 10:42:20 +0000 (18:42 +0800)
committerPeter Jones <pjones@redhat.com>
Tue, 5 Mar 2019 18:13:26 +0000 (13:13 -0500)
Android 9 clang complains:

external/efivar/src/dp-message.c:367:24: error: taking address of packed member '' of class or structure 'efidp_infiniband' may result in an unaligned pointer value [-Werror,-Waddress-of-packed-member]
                                    (efi_guid_t *)&dp->infiniband.ioc_guid);
                                                   ^~~~~~~~~~~~~~~~~~~~~~~
external/efivar/src/dp.h:76:19: note: expanded from macro 'format_guid'
                memmove(&_guid, guid, sizeof(_guid));                   \
                                ^~~~
1 error generated.

Since commit c3c553d the fifth parameter of format_guid() is treated as
a const void *. The casting is unnecessary.

Signed-off-by: Chih-Wei Huang <cwhuang@linux.org.tw>
src/dp-media.c
src/dp-message.c

index 96a576f..be691c4 100644 (file)
@@ -46,8 +46,7 @@ _format_media_dn(char *buf, size_t size, const_efidp dp)
                        break;
                case EFIDP_HD_SIGNATURE_GUID:
                        format(buf, size, off, "HD", "GPT,");
-                       format_guid(buf, size, off, "HD",
-                                   (efi_guid_t *)dp->hd.signature);
+                       format_guid(buf, size, off, "HD", dp->hd.signature);
                        format(buf, size, off, "HD",
                               ",0x%"PRIx64",0x%"PRIx64")",
                               dp->hd.start, dp->hd.size);
index 9f96466..6b8e907 100644 (file)
@@ -364,7 +364,7 @@ _format_message_dn(char *buf, size_t size, const_efidp dp)
                               dp->infiniband.port_gid[1],
                               dp->infiniband.port_gid[0]);
                        format_guid(buf, size, off, "Infiniband",
-                                   (efi_guid_t *)&dp->infiniband.ioc_guid);
+                                   &dp->infiniband.ioc_guid);
                        format(buf, size, off, "Infiniband",
                               ",%"PRIu64",%"PRIu64")",
                               dp->infiniband.target_port_id,